我在使用CH432T芯片的時(shí)候,需要移植到嵌入式linux上,CH432T的四線與CPU相連,中斷腳為GPIO腳,請(qǐng)問(wèn)能否提供一下,CH432T相關(guān)的驅(qū)動(dòng)代碼和dts配置嗎?
您好,驅(qū)動(dòng)參考:https://github.com/WCHSoftGroup/ch432ser_linux
https://github.com/WCHSoftGroup/ch432ser_linux找到的ch432t的驅(qū)動(dòng)中,ch43x_handle_rx接口有fifo溢出的可能。
當(dāng)我使用串口測(cè)試工具給串口發(fā)送數(shù)據(jù)時(shí),當(dāng)發(fā)送數(shù)據(jù)慢時(shí),ch43x_handle_rx正常接收,應(yīng)用層的read函數(shù)也正常讀取到數(shù)據(jù)。但是當(dāng)我快速發(fā)送數(shù)據(jù)時(shí),ch43x_handle_rx也有被觸發(fā)處理,但是并不是通過(guò)接收中斷進(jìn)入到ch43x_handle_rx函數(shù),而是一直在ch43x_handle_rx函數(shù)中沒(méi)有退出,感覺(jué)就是do-while中的“l(fā)sr & CH43X_LSR_DR_BIT”一直有效,此時(shí)會(huì)出現(xiàn)overrun detect的打印,fifo表現(xiàn)為溢出。
當(dāng)overrun?detect之前,port->icount.rx進(jìn)行++的操作,但為何在出現(xiàn)overrun?detect了,port->icount.rx不需要進(jìn)行--來(lái)修正嗎?
FIFO溢出結(jié)果為串口接收丟失數(shù)據(jù),port->icount.rx變化不會(huì)對(duì)串口實(shí)際接收產(chǎn)生實(shí)質(zhì)影響;需要提高SPI主機(jī)的處理效率才能解決該問(wèn)題。
實(shí)際上我們想要增加spi的頻率來(lái)測(cè)試是否可以解決這類問(wèn)題的,但是我們?cè)跍y(cè)試過(guò)程中發(fā)現(xiàn),在5MHz頻率下,與ch432t的通信仍然存在問(wèn)題,詳細(xì)請(qǐng)見(jiàn)以下描述:http://m.findthetime.net/bbs/thread-124899-1.html