SPI怎样传输24bit/帧的数据
因为我要用到AD5663, 这个芯片有3个数据pin, 分别是CS(低电平有效)
MOSI: 24bit/帧, 也就是每次MCU要连续发送24bit数据给AD5663
CLK: 从第一个时钟的下降沿开始传数据, MSB先.
但是我看SPI库里面是16bit/帧, 请问一下有什么高招, 也不是一定要用SPI, 用同步串口也行, 有例程参考最好.
为何不用模拟SPI, 是因为感觉模拟的好慢, 照理240MHZ不应该慢的. 知道的请指教一下?
本帖最后由 muyichuan2012 于 2025-8-11 09:39 编辑
SPI的结构体配置时,选择8bit,分三次发得到24bit,可以吗?
如下spi_init_struct.frame_bit_num = SPI_FRAME_8BIT;
本帖最后由 xch 于 2025-8-11 16:00 编辑
那就用它的库初始化。之后你修改 SPI_CTRL1 的 FBN 位改成0。
这样就变成一次传8位。 分3帧传,用DMA,几千几万bit都是小事。 coody 发表于 2025-8-11 23:32
分3帧传,用DMA,几千几万bit都是小事。
有例程参考吗? 一次发送24bit 240MHZ应该是你的主频吧,实际SPI的速度还是有很大限制的,不会达到那么大的 每一次发送一个24位数据,将其拆分成3个8位的就可以发送了 硬件SPI可以跑10M20M,模拟的1M都跑不到 多数 MCU 的硬件 SPI 支持 “可变帧长” 或 “连续传输”,通过配置 SPI 控制器发送多帧数据(如先 16bit + 再 8bit),拼接成 24bit 完整帧。关键是确保 CS 信号在整个 24bit 传输期间保持低电平,避免中途失效。
页:
[1]