图8. AD7768通过DOUT0和DOUT1将数据输出到STM32F429 MCU SPI连接。固件可以不使用中断模式,而使用轮询模式,以减少从DRDY上升沿触发到使能SPI接收数据的时间延迟。这样可以在DCLK为8MHz时实现32kSPS的ODR。图9. EXTI0处于轮询模式,SPI4和SPI5通过DOUT0和DOUT1接收AD7768数据位。解决方案3:MCU SPI作为从机通过...
将AD7768DRDY 连接到STM32F429外部中断输入引脚EXTI0和NSS (SPI CS) 引脚。DRDY 的上升沿将触发EXTI0处理例程,以使SPI从机能够在DRDY 变为低电平之后的第一个DCLK下降沿开始接收数据位。时序设计在这里至关重要。 接收到通道0至通道7的所有数据后,应禁用SPI以防止读取额外的无效数据,因为 DRDY 会使SPI从机 CS...
将AD7768DRDY 连接到STM32F429外部中断输入引脚EXTI0和NSS (SPI CS) 引脚。DRDY 的上升沿将触发EXTI0处理例程,以使SPI从机能够在DRDY 变为低电平之后的第一个DCLK下降沿开始接收数据位。时序设计在这里至关重要。 接收到通道0至通道7的所有数据后,应禁用SPI以防止读取额外的无效数据,因为 DRDY 会使SPI从机 CS...
ADC的复位信号引脚RST_1连接至MCU的GPIO28,而数据就绪信号引脚DRDY_1则连接至MCU的GPIO27。其余引脚则根据通用的SPI配置标准进行连接,其中MCU为主机,而ADC为从机。SDI_1接收MCU发送的ADC寄存器读/写命令,而DOUT_1则将ADC的输出数据发送至MCU。图4. AD7768-1和ADuCM4050的接口引脚连接。数据事务处理的实现 中...
DRDY高脉冲只是DCLK持续时间的一个周期,不是典型的CS。 DCLK连续输出,当所有通道数据位输出完成后,DRDY为低电平。 图6.AD7768数据位在时序解决方案中读取。 解决方案1:MCU SPI作为通过一条DOUT线与SPI主ADC接口的节点 配置其中一个STM32F429是SPI端口(如SPI4)作为节点,以在DCLK的MOSI上接收数据位。
如图7b所示,由于DMA的结构配置是在最后一个周期内完成的,因此在DRDY信号从ADC传送至 MCU后DMA数据事务处理可以被立即执行,使得CPU和DMA同时工作而无需等待。现在,ADC的ODR得到了提升空间,因为总的工作时间已大大缩短。 中断处理程序的优化 两次DRDY信号之间的时间间隔不仅包括了中断回调函数的命令执行时间,还包括了ADI...
而修改原始的中断处理函数只需要添加一个自定义的GPIO驱动程序。本文采用第二种方案修改原始的中断处理函数,如图8所示。该方案只将连接至DRDY的GPIO的引脚中断状态清零,并直接转到回调函数。请注意,这里需要通过取消选择build target中关于原始GPIO驱动函数的勾选框内容来隔离原始的GPIO驱动程序。
接收到通道0至通道7的所有数据后,应禁用SPI以防止读取额外的无效数据,因为 DRDY 会使SPI从机 CS 变为低电平,并且DCLK保持切换。 MCU固件开发注意事项 图7. 配置SPI4外设。 当软件处于中断模式时,DCLK运行速率可以高达4 MHz,实现8 kSPS的 ODR。软件应进入中断处理程序,在一个半DCLK周期(375 ns)内启动SPI。为...
MCU采用外部中断来接收DRDY下降沿信号,当DRDY信号下降沿来时进入中断,进入中断后先等待1个tclk,即上图中“tDS”,然后开启SPI,SPI每接收到1个字节就产生接收中断,接收中断将读到的这1个字节赋值到一个数组中,连续读取12个字节后关闭SPI(我试过让SCLK一直运行,也就是说不在外部中断中开启和关闭SPI,但是不管是高...
为实现连续数据事务处理,本文将MCU的GPIO27引脚(连接至ADC的DRDY_1引脚)用作中断触发引脚。ADC将数据就绪信号发送至GPIO27时会触发MCU包含数据事务处理命令的中断回调函数。如图5所示,数据采集必须在中断A和中断B之间的时间间隔内进行。 利用ADI的SPI驱动程序可以在ADC和MCU之间轻松实现数据事务处理。但是,由于驱动程序...