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.

[参考译文] AFE11612-SEP:连续 ADC 读取失败

Guru**** 2539500 points
Other Parts Discussed in Thread: MSP430FR5969

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1561642/afe11612-sep-consecutive-adc-read-fails

器件型号:AFE11612-SEP
主题中讨论的其他器件:MSP430FR5969

工具/软件:

您好、

我正在使用 MSP430FR5969 设置 DAC 并从 V62/22614-01xe (AFE11612PAPSEP) 中读取 ADC。  AFE11612 作为独立器件通过 SPI 总线((2MHz 时钟)进行控制。 当我 连续读取 ADC 时、我会得到零、但如果我在每个 3 字节 SPI 事务结束时施加延迟、我会得到数据。 以下是 AFE 的设置:

/* AFE 配置命令*/
/* ADC 内部基准、CMODE 手册*/
const uint8_t AFE_AMC_0[]={0x4C、0x34、0x00};
/*误报保护位*/
const uint8_t AFE_AMC_1[]={0x4D、0x03、0x70};
/*DAC config — 通道异步输出*/
const uint8_t AFE_CONF_REG[]={0x58、0x00、0x00};//立即更新 DAC

/*启用 ADC 通道 0 - 6、8-9 和 12 */
const uint8_t AFE_ADC_EN[]={0x50、0x6D、0xD9};
const uint8_t AFE_PWR_DN[]={0x6B、0x7F、0x90};

我随意选择的延迟为 62.5usec(使用__delay_cycles (1000) 函数、并且 MSP 在 16MHz 下运行)。 我通读了数据表、看看是否有一些有关时序的文献、但找不到任何指向这个问题的文献。  可能是我的设置有问题、或者 AFE 需要读取之间的 T 差值。 您能提供帮助吗?

谢谢

Atma

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

    尊敬的 Atma:

    ADC 似乎处于直接模式。 读取 ADC 数据时、您是否给 ADC 时间来转换所有数据? 在读取 ADC 寄存器之前、您将需要一些延迟。 另一个问题是、如果您不包含延迟、您是否会看到 DAC 或其他写入命令有任何问题?

    谢谢、
    Erin

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

    尊敬的 Erin:

    几件事:

    *设置 CMODE 位、以便将 AFE 配置为自动模式(const uint8_t AFE_AMC_0[]={0x4C、0x34、0x00};)

    您建议我切换到直接模式吗?

    *对于 DAC 命令、如果我运行代码连续循环、该值不会更新、但读回 DAC 寄存器会显示正确的写入值。 如果我逐步浏览它、DAC 会更新其输出。 最后、在写入 DAC 之后、如果我 更新断电寄存器、这些值将更新。

    *由于我正在为空间应用编写软件,我不能任意选择延迟和希望最好。 是否有办法从 TI 获取特定的延时时间数字?

    谢谢

    Atma  

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

    尊敬的 Atma:

    啊,是的,代码确实说你在自动模式,我的道歉!  

    听起来有必要的延迟。 根据数据表、CS 所需的高电平时间为 30ns(第 13 页)。 您能否确认连续的写入/读取是否满足此要求?

    谢谢、
    Erin