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.

[参考译文] TMS320F28P550SG:为什么 ADC 转换超过其数据表规定的范围?

Guru**** 2837190 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1633011/tms320f28p550sg-why-the-adc-conversion-is-more-than-its-data-sheet-specified

器件型号: TMS320F28P550SG
主题: C2000WARE 中讨论的其他器件

尊敬的专家:

为了验证 ADC 模式(12 位)的转换时间、我使用 C2000ware 5.02 中的 ADC_ex2_SoC_EPWM 示例并进行修改。 现在、AdcaRegs.ADCCTL2.PRESCALE = 0;ClkCfgRegs.SYSCLKDIVSEL.BIT.PLLSYSCLKDIV = 1;AdcaRegs、ADCSOC0CTL.ACQPS = 9;

从 osscillscope 开始、PWM 触发 (SOC) 到 adcA1ISR ()(结束转换)之间的总时间约为 1us。 同时、是 PWM 寄存器 在 adcA1ISR () 开始时测量 TBCTR 大约为 145。  因此、其持续时间为 145 x 6.67ns = 967nS。

删除 ADC S/H (10 x 6.67=66.7nS) 和 adcA1ISR () 函数调用时间约为 0.2uS 后、700 nS 是 ADC 转换时间的估算值。

数据表中显示模数转换器 (ADC)(12 位)的典型值为 187ns。  

为什么我测试中的 ADC 转换超出了其数据表指定的值?  如何减少转换时间?  请提供建议。  

谢谢、

Jeffrey Jin

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

    您好:

    我认为要点是、您的示波器测量不仅仅是测量 ADC 转换时间。 从 PWM SOC 到 adcA1ISR () 开头所看到的 1µs 不仅包括 ADC 内核转换,还包括 PWM 触发到 ADC 包装器/SOC 处理 、采样保持窗口、 ADC 转换结束/ 中断生成 、PIE + CPU 中断延迟、ISR 进入开销、 任何 GPIO 切换或寄存器读取代码 ,如果代码从闪存而不是 RAM 运行,用于测量和额外延迟。

    要缩短观察到的延迟、如果您想要真正的 ADC 转换时序、可以测量 ADC EOC / ADCINT 时序而不是 ISR 进入。  将 ISR 放在 RAM 中而不是闪存中、并保持 ISR 极短、并切换 GPIO 作为第一条指令。

    此致、

    Masoud