将STM32 MCU与外部ADC连接并通过SPI读取数据

2019-07-14 17:18发布

我想使用STM32微控制器从多通道ADC读取数据。我打算使用的微控制器很可能来自F7系列(例如STM32F746ZGT),而我目前关注的ADC是ADI公司的LTC2358-18。我正在进行的项目要求我同时读取6个模拟通道(具有合理的数据速率)。据我所知,特定的ADC芯片可以在不同的串行数据输出(SDO)通道上输出其转换结果,这些通道可以并行读出(所有串行时钟都相同): 1.png 我想知道是否可以使用单个STM32 MCU通过SPI读取6通道输出数据(我真的不需要剩下的两个通道)。一般来说,我认为我需要配置STM32F746ZGT上可用的6个SPI接口,如下所示:
  • 其中一个SPI充当主设备,为所有从设备(STM32芯片和ADC上的5个剩余SPI)和ADC配置的串行数据输出(SDO)提供串行时钟(SCK)。主人(我猜)会拉下所有SPI从设备的CS。
  • STM32F746ZGT上剩余的5个SPI共用一条公共SCK线,每条线都连接到ADC上的SDO通道。
或者,换句话说,它看起来像这样: 2.png 这种配置是否真的有用,还是我哪个步骤出错了,劳烦大家指点一下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
lingjianghui
2019-07-15 16:18
您的STM处理器不是多线程的,不要忘记。您无法并行读取6行。一次只能使用一个通道ID,并将其全部连接到一行。ADC转换是过程中耗时最长的。命令ADC进行转换,然后单独读取输出。将所有这些放在同一行,然后说'第1行给我数据',现在'第2行给我数据',一个接一个。这就是Channel ID存在的原因,否则它们会浪费宝贵的比特。

一周热门 更多>