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.

[参考译文] TMS320F2.8027万F:使用Instaspine-FOC配置低优先级ADC

Guru**** 2531950 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/641213/tms320f28027f-configuring-low-priority-adcs-with-instaspin-foc

部件号:TMS320F2.8027万F

您好,

我有一个关于如何在instaspin中正确配置低优先级ADC信道的问题。

HAL教程所说的实现低优先级ADC的方法是使其转换开始触发高优先级转换完成后触发的ADCINT。  这样,这些低优先级ADC的转换根本不会影响电机控制回路。  我认为这是合理的,但我对后台(异步)任务的情况有点担心。

如果我正在主循环中实现这些ADC的逻辑,是否有任何东西可以阻止我在结果寄存器更新时尝试读取其值?  HAL教程中提供的示例代码似乎不会检查转换完成标志或任何此类内容。

是否可以对我拥有的所有低优先级ADC实施单次激发转换,然后在后台循环中,我是否可以检查以确保转换完成,读取数据,然后在高优先级转换完成后启用另一个转换?

谢谢!
Jim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    可以将hal.c或hal.h中的HAL_initIntVectorTable(halHandle)和HAL_enableAdcInts()更改为目标ADC中断,中断向量和数字可以参考设备数据表或参考指南。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不完全确定这将如何解决问题,如果在更新结果寄存器时,Micro不允许读取结果寄存器(或相反),则可能不是问题。 我只是找不到这些信息。
    我担心的是,在高优先级ADC完成后,在维持低优先级ADC的SOC时,可能会发生同步读/写。 我正在尝试防止低优先级ADC延迟电机控制算法,同时保证异步后台任务不会因同时读取/写入结果寄存器而发生任何数据损坏。

    谢谢!
    Jim