CH552的SPI的發(fā)送FIFO使用問題

CH552的SPI的手冊說有一個發(fā)送fifoQQ截圖20180420004714.jpg


我想用spi發(fā)送連續(xù)不斷的數(shù)據(jù)流。

這樣測試發(fā)現(xiàn)只能發(fā)送0x12,不能吧0x34發(fā)出來(理論上12進了移位寄存器,應(yīng)該34能寫入fifo吧?)

1.JPG

2.JPG

如果等待spi總線空閑,則數(shù)據(jù)會斷流(如發(fā)送0x56 0x78)

3.JPG


SPI0_STAT寄存器有一個fifo計數(shù)

QQ截圖20180420010230.jpg

換匯編仔細測試

先寫一個數(shù)據(jù)到數(shù)據(jù)寄存器

然后循環(huán)讀取SPI0_STAT,讀取速度保持在個位數(shù)的主時鐘內(nèi),小于spi發(fā)送要的16個主時鐘,從而保障不丟狀態(tài)

先讀取到內(nèi)存,讀128次,再串口發(fā)送

QQ截圖20180420010600.jpg

讀取結(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是怕沒寫進去,流水線寫進去有延時

QQ圖片20180420010136.png


邏輯分析儀抓包 ,沒有0x56

QQ圖片20180420010803.png


所以我想是不是沒有發(fā)送FIFO,總線寫進移位,移完之前鎖死

類似74HC165的結(jié)構(gòu),只有8個D觸發(fā)器,沒有一級鎖存?


所以想請問下,我用如何操作才能使用上發(fā)送fifo,并且能發(fā)送連續(xù)不斷流的spi數(shù)據(jù)流?



這個芯片發(fā)送SPI數(shù)據(jù)是有間隔的,但也可以適當(dāng)降低頻率,使數(shù)據(jù)看上去像連續(xù)的。


? ? ? ? ? ? ? ? ? ? ? ? ? ?

這個芯片發(fā)送SPI數(shù)據(jù)是有間隔的,但也可以適當(dāng)降低頻率,使數(shù)據(jù)看上去像連續(xù)的。

? ? ? ? ? ? ? ? ? ? ? ?

請問下那么是不是不存在發(fā)送FIFO?總線寫進移位,移完之前鎖死?


FIFO是有的,只是無法直接訪問,實際直接訪問的都是移位寄存器,SPI有個快速收發(fā)的模式,讀寫都啟動一次讀操作,也就意味著必須緩存2字節(jié),這個地方是要用到FIFO的,但是代碼是不能直接訪問到這個FIFO的。


我覺得這個FIFO就不是給用戶編程快速傳輸用的,是僅僅給芯片內(nèi)部SPI快收快發(fā)使用的


和你遇到同樣的問題,請問您是怎么解決的?


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频