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.

[参考译文] TMS320F28335:CPU 对 ADCRESULT 寄存器的异步读取。

Guru**** 2611705 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/692731/tms320f28335-asynchronous-reading-by-the-cpu-of-the-adcresult-registers

器件型号:TMS320F28335

我需要对16个信号3进行采样、其中3个信号的采样频率约为50kHz (收集20ms 的结果以进行信号滤波)、其余信号的采样频率为低速率(1kHz)。

为了满足这一要求、我考虑在 ADC 以连续和级联序列发生器模式运行时使用 DMA。

ADC 每80ns 可采样一次(如 SPRU812A 中所述)。
通过将 ACQPS 设置为1111b、我可以在10 ^ 9 /(80 * 16 * 15)= 52083Hz 时对所有16个通道进行采样、对吧?

问题是、由于存储器空间的原因、DMA 无法保存所有16个信号、我不希望每50kHz 处理一次 EOC 中断、因此我想异步读取其余信号的 ADCRESULT。  ADC 写入和 CPU 异步读取之间是否会出现竞态条件?  

我已经阅读  过这篇文章 http://e2e.ti.com/support/microcontrollers/c2000/f/171/t/688392?TMS320F28035-ADC-result-register-read-write 、但在任何正式文档中都找不到有关 DSP 的信息。