This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LS1227:有关 MibADC 事件组采样电容放电和转换(采集)时间关系的澄清说明

Guru**** 2207170 points
Other Parts Discussed in Thread: HALCOGEN
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1473806/tms570ls1227-clarification-on-mibadc-event-group-sample-cap-discharge-and-conversion-acquisition-time-relationship

器件型号:TMS570LS1227
主题中讨论的其他器件:HALCOGEN

工具与软件:

尊敬的所有人:

撰写本文是为了方便您了解如何解读收集到的结果并确定 mibADC 软件可选的 Csamp 放电时间和转换时间以及产生的组转换时间和组周期时间之间的任何潜在关系。

输入:

"Csamp 放电时间"== td_discharge
"转换时间"=td_c_12b
"组转换时间"== td_total_group
"组周期时间"== t_group_cycle

TC_ADCLK = 0.1e-6;百分比以 s 为单位、f_vclk = 80 MHz、PS = 7;f_ADC = f_vclk /(PS+1)= 80 MHz / 8 = 10 MHz;

EV_ACQ = A;以 ADCLK 周期为单位的百分比;由 ADEVSAMP[11:0]寄存器位定义;TRM、SPNU515C、p 1007;
td_sh_group0 = tc_ADCLK *(ev_acq + 2);s 中的百分比;组0 ==事件组;sh =sample and hold;td == 时间延迟;

td_c_12b = td_sh_group0 + 12 * tc_ADCLK;以 s 为单位的百分比;12位精度转换;

EV_SAMP_DIS_CYC = B;以 ADCLK 周期为单位的百分比;由 ADEVSAMPDISEN [15:8]寄存器位定义;TRM SPNU515C、p 1039;
td_discharge = DISCTIME * tc_ADCLK;以 s 为单位的百分比

td_total_group =(td_discharge + td_c_12b)* 4 =C;in s;% 4是该组中已转换的通道数;MibADC、ADC 2、按软件分组用于顺序转换序列。 ADC2事件组由 RTO 比较0中断触发。
T_group_cycle = 34E-6;以 s 表示的百分比、事件触发的 ISR 周期。
在 ISR 中、会收集输出代码范围0..4095中的 ADC 转换值(并将其推送到缓冲器)、然后在单独的控制线程中转换为工程值并打包成消息、然后传输、解压缩并最终按照时间序列绘制、包括两个传感器"电机"和"总线"的电流与时间的关系。
这4个通道为:MOTOR_CURRENT/Ch10、MOTOR_VOLTAGE/Ch13、BUS_CURRENT/Ch14和 BUS_VOLTAGE/Ch15。

在 MCU 环境电子产品中、没有根据 SPNA118B (SPNU515C 中引用的 Hercules ARM 安全 MCU 的 ADC 源阻抗)选择使用适当的值 Cext、并且在这个阶段无法修改。

结果概述总结了详细的结果、突出显示了产生类似结果的三个子集 ADC 配置。 这些子集使用颜色编码方案在表和图之间直观地相互链接。 橙色表示最适合、绿色表示最适合。 最佳拟合与预期结果有关、即电机电流和总线电流应非常接近。

问题
您能不能帮助我了解一下为什么配置集采用不对称放电和转换设置—请参阅表格、例如、绿色:0E-6s 放电+ 4.6e-6s 转换和3.2e-6s 放电+ 1.5e-6转换—图中显示了类似的转换?
团队时间和团队周期的预期关系和/或设计良好实践是什么?

提前感谢您的支持。

此致、

Luis
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    勘误表:

    EV_SAMP_DIS_CYC = B
    错误:td_discharge = DISCTIME * tc_ADCLK;以 s 为单位的百分比
    正确:td_discharge = ev_SAMP_DIS_CYC * tc_ADCLK;%(以 s 为单位)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Luis:

    我对延迟响应表示歉意、但我对其他问题感到困惑。

    我对您的表有一些问题:

    你是如何获得这些读数的? 您是否正在进行任何实际测试、还是它们只是理论值?

    另外、我建议您参考以下主题、这里我提供了有关如何准确计算总转换的详细过程。

    (+) TMS570LS0714:其中一个输入信号的 ADC 采样时间-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    ——
    谢谢、此致、
    Jagadish。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jagadish:

    感谢您的答复。

    >>如何获得这些读数? 您是否正在进行任何实际测试、还是它们只是理论值?

    实际测试。

    我使用下面介绍的主题帖中所述的过程获得了结果、以便于访问:

    在 ISR 中、将收集输出代码范围0..4095中的 ADC 转换值(推送到缓冲器)、并在单独的控制线程中转换为工程值、然后打包成消息进行传输、解压缩并最终按照时间序列绘制、包括两个传感器"电机"和"总线"的电流与时间的关系。

    >>另外,我建议你参考下面的线程,这里我给出了详细的过程,确切的总转换应该是如何计算的。

    我进行了上述过程中的总转换计算(也使用我们的 HALCoGen 项目)和 我 在该线程中存在的计算(基于 SPNA118B)之间的映射。 可以从映射中获得以下注释:

    - 我不知道 tScan 值,因此我忽略了系统 tScan = 62.5e-9s 产生3*tScan 从4通道的总转换时间

    -表中的"放电时间"等于过程中的 tDischarge—两个结果都适用于单个通道

    -表中的"采样时间+转换"等于过程中的 tSample+tConversion -这两个结果都适用于单个通道;我使用了 tConversion (12位)= 12 * cycleTime、HALCoGen 计算使用 tConversion (12位)=(12 + 1)* cycleTime;cycleTime 等于 此线程中的 tc_ADCLK。

    -表中的"组时间"等于过程中的总转换时间;我使用以下重新排列的计算来使用过程中的术语:

     - totalTime = channels *(tExtended + tConversion)+(Channels - 1)* tScan with:Channels=4、tExtended = tSample+tDischarge and tScan=0s

    结论:如果我的理解和计算正确、除了由 tScan=0和乘以13引起的系统误差外、使用的计算在该过程中是正确的。 系统误差为 4*cycleTime + 3*tScan = 4*100e-9 + 3*62.5e-9=587.5e-9s

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Luis:

    实用测试。

    是否可以从您的末端设置一个实时调试会话

    我想查看您为找出这些结果而执行的过程。 如果我在程序中有任何其他疑问,那么我可以问你,并在那里得到澄清。

    ——
    谢谢、此致、
    Jagadish。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jagadish:

    感谢您的答复。

    我不确定我是否能够设置实时调试会话。 您能否说明一下它是什么?

    谢谢!

    此致、

    Luis

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不确定是否能够设置实时调试会话。 您能否说明一下它是什么?

    是否可以在电话中分享您的屏幕并向我解释您如何计算这些读数?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Jagadish:

    是的。 我在时区 UTC+1。 请告诉我设置通话所需的内容。

    总之、在调用之前、我想介绍一下用于生成之前文章中介绍的计算结果的代码、其中使用了 HALCoGen 中提供的信息 和您的说明

    我在下面共享脚本+函数、我使用这些函数来计算表中提供的信息(并在我之前的帖子中进行了介绍)。

    如果您要查找的计算结果有没有解释、请告诉我。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    % Script
    % Constants
    cycleTime = 100e-9; % In s; ADC cycle time from HALCoGen proj.; f_vclk = 80 MHz, PS = 7; f_adc = f_vclk / (PS+1) = 80 MHz / 8 = 10 MHz => 100e-9
    resolution = 12; % In bits; ADC data resolution
    channels = 4; % In channels; Number of ADC channels to be converted
    tScan = 62.5e-9; % In s; From HALCoGen proj.
    groupCycleTime = 34e-6; % ISR period; within the ISR handler the ADC group converted output codes and collected and pushed to buffer
    % Input values (just an example)
    EV_SAMP_DIS_CYC = 1; % Csamp discharge time, in ADC cycles
    EV_ACQ = 34; % Sample window, in ADC cycles
    tSample = f_calc_adcChSampleTime(cycleTime,EV_ACQ); % In s
    tConversion = f_calc_adcChConversionTime(cycleTime,resolution); % In s
    tDischarge = f_calc_adcChnCsampDischargeTime(cycleTime,EV_SAMP_DIS_CYC); % In s
    tExtended = tDischarge + tSample; % In s
    tTotal = f_calc_adcConversionTotalTime(tExtended,tConversion,tScan,channels); % In s
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX