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.

[参考译文] TMS570LS1224:从 RAM 读取的 ADC 值-无法清除 GxINTFLG

Guru**** 2539500 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/1056204/tms570ls1224-adc-values-reading-from-ram--not-able-to-clear-the-gxintflg

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

 要读取 ADC1组1–一个通道配置为 ADC1组2–一个通道配置为 ADC2组2。

 

在 HALCOGEN 中配置的值是 FIFO 大小=0,因为我们不需要缓冲区,值 BNDB=1,这是最小值。 因此、RAM 大小将设置为2。

 

我已经定义了类似这样的宏、

 

#define adc1Group1_ReadFirst (*(volatile UINT32 *) 0xFF3E0000U)

#define adc1Group1_ReadSecond (*(volatile UINT32 *) 0xFF3E0004U)

#define adc1Group2_ReadFirst (*(volatile UINT32 *) 0xFF3A0000U)

#define adc1Group2_ReadSecond (*(volatile UINT32 *) 0xFF3A0004U)

#define adc1Group1FLAG (*(volatile UINT32 *) 0xFFF7C038U)

#define adc2Group1FLAG (*(volatile UINT32 *) 0xFFF7C238U)

 

 

在应用中、我可以在每个周期交替读取 RAM 地址、这在应用端工作正常。

 

从 RAM 中读取值后、我将设置 adc1Group1FLAG|=0x09U;、adc2Group1FLAG|=0x09U 的值。

 

问题是我从代码开始只能从 RAM 中获得两次值(我认为这是因为 RAM 大小2是通过 BNDB=1设置的)。 之后、0xFF3E0000、0xFF3E0004U、0xFF3A0000U 和0xFF3A0004U 处没有可用的最新值。

 

一旦代码开始的两个周期结束、0xFFF7C038U、0xFFF7C238U 就会设置为0xA。

 

随附的 Halcogen 项目和 DIL 供您参考。

 

谢谢

Sachin

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

    你好 Sachin、

    请设置 ADG1MODECR 寄存器的 OVR_G1_RAM_IGN、以允许 ADC 模块覆盖 ADC 转换结果 RAM 的内容。