使用SPI驅動st7789v屏幕,按照i2s Demo寫了一個鏈式DMA發送SPI數據的Demo,實測傳一會SPI就停止了。看DMA的傳輸字節數寄存器,大概只傳了2042個字節SPI通道寄存器的bit0就清零了。想請教一下有人知道什麼原因嗎?
查看更多
DMA的鏈表模式使用可以看下這個簡單說明。http://ask.winnermicro.com/article/194.html其實SPI只有20M的時鐘,驅屏速度不夠快,驅屏可以參考這個SDK裡面的spi使用,用的是SDIO master的spi模式。https://gitee.com/beewu123/w80x-sdk-lcd
發布 問題
分享 好友
手機 浏覽
回到 頂部
好的,謝謝!我參考一下。
貌似是SPI收發一次最多只支持65535個clock的原因,一次傳輸的總clock超過通道寄存器CH_CFG[18:3]的值就停止了,需要鏈表DMA每次中斷的時候再重新配置SPI發送才行。這樣看好像SPI對超過65535/8≈8KB的數據不能實現DMA一次連續傳輸,需要分多次傳輸才行,不知道這樣理解對不對。
@hanks 是的,單次最多65535個clock。