CH552的SPI的手冊說有一個發(fā)送fifo
我想用spi發(fā)送連續(xù)不斷的數(shù)據(jù)流。
這樣測試發(fā)現(xiàn)只能發(fā)送0x12,不能吧0x34發(fā)出來(理論上12進了移位寄存器,應(yīng)該34能寫入fifo吧?)
如果等待spi總線空閑,則數(shù)據(jù)會斷流(如發(fā)送0x56 0x78)
SPI0_STAT寄存器有一個fifo計數(shù)
換匯編仔細測試
先寫一個數(shù)據(jù)到數(shù)據(jù)寄存器
然后循環(huán)讀取SPI0_STAT,讀取速度保持在個位數(shù)的主時鐘內(nèi),小于spi發(fā)送要的16個主時鐘,從而保障不丟狀態(tài)
先讀取到內(nèi)存,讀128次,再串口發(fā)送
讀取結(jié)果如下
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計數(shù)器沒有任何變化
8個NOP后,再寫仍然只發(fā)一字節(jié),0x56發(fā)不出來
之所以加NOP是怕沒寫進去,流水線寫進去有延時
邏輯分析儀抓包 ,沒有0x56
所以我想是不是沒有發(fā)送FIFO,總線寫進移位,移完之前鎖死
類似74HC165的結(jié)構(gòu),只有8個D觸發(fā)器,沒有一級鎖存?
所以想請問下,我用如何操作才能使用上發(fā)送fifo,并且能發(fā)送連續(xù)不斷流的spi數(shù)據(jù)流?