STM32
直播中

甘满盛

7年用户 1279经验值
擅长:386660
私信 关注
[问答]

AD7767如何用TIM外部触发模式,去触发SPI_DMA传输?

用在AD7767(ADC采集芯片)。这个芯片有个数据就绪引脚DRDY,DRDY为电平时,SPI可以读取AD7767数据。我原本用的是外部中断去检测DRDY引脚,在外部中断函数里触发SPI_DMA传输。但由于频率太高,进入外部中断太频繁。现在现在想改成把DRDY引脚接到tiM某个通道,用TIM外部触发模式,来触发SPI_DMA,请问这样行得通吗?如果不行,不用外部中断有什么好办法?
用的是STM32H743


回帖(1)

李明

2024-3-21 16:43:06
是的,你可以使用TIM外部触发模式来触发SPI_DMA传输。首先,你需要配置TIM为外部触发模式,将AD7767的DRDY引脚连接到TIM的输入端。然后,当TIM检测到外部触发事件时,它会生成一个触发信号,在触发信号上升沿或下降沿时,你可以在TIM的中断处理函数中触发SPI_DMA传输。

具体的步骤如下:

1. 配置TIM的外部触发模式:
   - 配置TIM的时钟源和分频系数。
   - 配置TIM的计数模式和重载值。
   - 配置TIM的外部触发输入源和极性。

2. 配置SPI的DMA模式:
   - 配置SPI的数据大小、数据方向和传输模式。
   - 配置SPI的DMA请求使能。

3. 编写TIM的中断处理函数,在函数中触发SPI_DMA传输。

需要注意的是,SPI_DMA传输可能会有一定的延迟,并且需要根据AD7767的时序和数据格式来正确的配置SPI和DMA。确保TIM的外部触发与AD7767的数据就绪时序相匹配。

如果你不想使用外部中断,并且频率太高导致进入外部中断太频繁,使用TIM外部触发模式是一种可行的替代方案。但是要注意确保TIM的中断处理函数能在AD7767的数据就绪后及时触发SPI_DMA传输,以避免数据丢失或错误。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分