MCU固件开发注意事项
当软件处于中断模式时,DCLK运行速率可以高达4 MHz,实现8 kSPS的ODR。软件应进入中断处理程序,在一个半DCLK周期(375 ns)内启动SPI。为使软件更轻松地进入中断例程,MCU可以在DCLK上升沿读取数据,从而提供额外的半个DCLK周期时间。但是,t5 DCLK上升到DOUTx无效最小值为–3 ns(IOVDD = 1.8 V时为–4 ns),因此DOUTx上的传播延迟(>|t5| + MCU保持时间)应通过PCB布线或缓冲增加。
图7.配置SPI4外设
解决方案2:MCU SPI作为从机,通过两条DOUT线与SPI主机ADC接口
在第一种解决方案中,仅使用DOUT0来输出所有8通道数据。因此,数据读取将ADC吞吐速率限制为8 kSPS。如图1所示,在DOUT0上输出通道0至通道3,在DOUT1上输出通道4至通道7,可以减少数据传输时间。串行线的连接如图7所示。通过这种改进,在DCLK为4 MHz时,ODR可以轻松达到16 kSPS。
图8.AD7768通过DOUT0和DOUT1将数据输出到STM32F429 MCU SPI连接
固件可以不使用中断模式,而使用轮询模式,以减少从上升沿触发到使能SPI接收数据的时间延迟。这样可以在DCLK为8 MHz时实现32 kSPS的ODR。
解决方案3:MCU SPI作为从机,通过DMA与SPI主机ADC接口
直接存储器访问(DMA)用于在外设与存储器之间以及存储器与存储器之间提供高速数据传输。DMA可以迅速移动数据而不需要任何MCU操作,这样可以腾出MCU资源用于执行其他操作。下面是MCU SPI用作从机通过DMA接收数据的设计说明。
解决方案4:MCU SPI作为主机和从机,通过两条DOUT线读取数据
高吞吐量或多通道精密ADC为SPI端口提供两条、四条甚至八条SDO线,以在串行模式下更快地读取代码。对于具有两个或更多个SPI端口的微控制器,这些SPI端口可以同时运行以加快代码的读取。
图9.EXTI0处于轮询模式,SPI4和SPI5通过DOUT0和DOUT1接收AD7768数据位。
图10.EXTI0处于轮询模式,SPI4 DMA通过DOUT0接收AD7768数据位。