主题中讨论的其他器件: ADS1278
MSP430FR5969-SP 的 UCA0RXBUF 只有8位大。
我需要从 ADC 读取24位数据。 我如何通过中断来实现这一点、因此我只能在所有数据就绪后读取寄存器? 我需要至少3个8位 Rx 缓冲器、但我只有1个8位。
此致
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.
MSP430FR5969-SP 的 UCA0RXBUF 只有8位大。
我需要从 ADC 读取24位数据。 我如何通过中断来实现这一点、因此我只能在所有数据就绪后读取寄存器? 我需要至少3个8位 Rx 缓冲器、但我只有1个8位。
此致
您好!
您需要逐8位读取数据。 这就是 SPI 或 UART 等的特性。
我认为 ADC (假设您正在讨论具有 SPI 接口的外部 ADC)按顺序传输24位数据无关紧要。 在前8位之后、MSP430侧的 SPI RX 缓冲器将满、并触发 RX 中断、当然、在 MSP430上正确配置模块后、 您有时间直到接收到下一个8位以将第一个字节存储在变量中。 与第二个和第三个的过程相同。 在第三个字节之后、甚至在第二个字节和第三个字节的接收期间、您可以将之前接收到的第一个字节和第二个字节移位各自的位数、并在接收到来自 ADC 的第3个字节的24位值后以这种方式进行汇编。
在我们的 Code Composer Studio 及其 TI Resource Explorer 中的代码示例中、您可以找到 SPI 示例、其中显示了如何配置 SPI 接口以进行接收。
此致
Peter
您好!
由于您使用的是 FR5969-SP、数据大小为24位、因此我认为 ADC 是 ADS1278-SP 是正确的吗?
Peter 提供了一个很好的解决方案、但我想如果你只想在读取24位后触发中断、我建议使用另一种技术。 FR5969具有一个3通道 DMA 控制器;可以在从 RXBUF 到存储器中某个位置的重复单字节到字节传输模式中进行设置。 传输的触发器将是相应的 eUSCI RX 标志。 设置一个3字节(或3个数字通道)的传输大小将只在所有数据被读取后触发 DMA 中断。
如果您使用的是 ADS1278、则该技术在您可能希望以的高 SPI 速度运行时也能正常工作。
此致、
Nathan