CH552的SPI的手册说有一个发送fifo
我想用spi发送连续不断的数据流。
这样测试发现只能发送0x12,不能吧0x34发出来(理论上12进了移位寄存器,应该34能写入fifo吧?)
如果等待spi总线空闲,则数据会断流(如发送0x56 0x78)
SPI0_STAT寄存器有一个fifo计数
换汇编仔细测试
先写一个数据到数据寄存器
然后循环读取SPI0_STAT,读取速度保持在个位数的主时钟内,小于spi发送要的16个主时钟,从而保障不丢状态
先读取到内存,读128次,再串口发送
读取结果如下
00 00 00 00 00 00 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18
可见整个过程中,fifo计数器没有任何变化
8个NOP后,再写仍然只发一字节,0x56发不出来
之所以加NOP是怕没写进去,流水线写进去有延时
逻辑分析仪抓包 ,没有0x56
所以我想是不是没有发送FIFO,总线写进移位,移完之前锁死
类似74HC165的结构,只有8个D触发器,没有一级锁存?
所以想请问下,我用如何操作才能使用上发送fifo,并且能发送连续不断流的spi数据流?