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.

[参考译文] CCS/TMS320F2.8377万D:什么是ADC流程来为控制逻辑部件准备采样值?

Guru**** 2589280 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/657585/ccs-tms320f28377d-what-is-adc-process-to-get-the-sampled-values-ready-for-control-logic-part

部件号:TMS320F2.8377万D

工具/软件:Code Composer Studio

您好,

有人能帮我解决这个问题吗? 我真的读了很多ADC参考 ,但我仍然不知道ADC值是如何准备好使用的,也不知道如何检查它是否正确。 您能更正我理解的1,2,3吗?

ePWM2SOCA是0匹配时A0,A1,B0的触发器

ePWM3SOCA在期间匹配时触发B4

两个ePWM均为上行下行模式,两个均为系统模式(使用ePWM1)。

1. ePWM2SOCA和ePWM3SOCA同时到达。

2. A0+B0->A1->B4按顺序采样,还是实际A0-A15和B0-B15按顺序采样?  是否需要等待ePWM3的时间基准计数器到达周期,然后获得B4样本?

3.将EOC4设置为中断ADCB1的触发器,来自A0,B0,A1,B4的值 将传输到结果寄存器。 或者,我是否需要设置两个中断ADCA1和ADCB1,因为我使用两个触发源?

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

    你好,洪伟,

    请指出您所提到的3个项目的参考资料或文件。  这样,我们可以更好地解决您的问题。

    谢谢,此致,

    约瑟夫

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

    如果触发器始终同时到达,则您可能应该使用单个触发器。

    假设两者同时到达,将发生以下情况(假设SOC0对于ADCA和ADCB都是高优先级):

    为ADCA SOC0 (A0)和SOC1 (A1)设置SoC挂起标志,为ADCB SOC0 (B0)和ADCB SOC1 (B4)设置标志。

    两个ADC都开始进行其第一个转换,最高优先级= SOC0,因此A0和B0并行转换。 完成这些操作后,它们将分别执行SOC1,因此A1和B4将并行转换。 此时,基于任一ADC的EOC1的单个中断都可以收集数据。 完成此过程后,两个ADC的最高优先级SOC都将是SOC2。

    下次触发器进入时(假设再次发生的时间恰好相同),将导致两个触发器再次进入的SOC0。 这是因为SOC2是两者的最高优先级,其次是SOC3,然后是SOC4等等,直到它环绕到SOC0为止(因此SOC0将优先于SOC1)。

    您可能需要通读TRM中的"ADC转换优先级"一节: www.ti.com/.../spruhm8g.pdf

    请注意,如果触发器未在同一时间到达,则首先到达的任何触发器的SOC将首先转换,转换顺序将由当前RR指针状态决定。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢,Devin。
    这对我很有帮助。
    有15个SOC。 如果我只配置SOC0,SOC1,那么转换时间是否仅适用于SOC0和SOC1,还是仍应是总共15个SOC的时间,因为它会发生改变? 当设置EOC1并且中断开始时,ADC在ADC触发器到来之前仍会执行其他未使用的SOC?
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Hongmei,

    除非您为SOC配置触发器,否则SOC不会进行转换。 因此,如果SOC0和SOC1的触发器= ePWM,则当该触发器出现时,只有这两个将转换。

    唯一可以绕过的是优先级:如果SOC1是最后一个要转换的SOC,则它具有最低优先级,而SOC2具有最高优先级。 如果SOC0和SOC1出现另一个触发器,则SOC0将再次进入,因为此时的优先级为SOC2 > SOC3 > SOC4 >...>SOC15 > SOC0 > SOC1,因此SOC0具有两个待处理的优先级中的最高优先级。

    如果您触发SOC0和SOC1,您实际上可以从EOC触发ISR。 如果在EOC1上触发ISR,则两者都应完成(通常是您需要的)。 如果您在EOC0上触发ISR,则SOC1仍将转换,但在您尝试读取ISR中的结果时,它可能尚未完成。 如果只触发SOC0和SOC1并将ISR设置为发生在EOC2上,则不会访问ISR。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢Devin。