CH372SpeedTest.exe ,能提供一下這個軟件的源代碼嗎??
官網(wǎng)下載最新例程可找到次壓縮包
這個配合CH569W的HSPI驗證開發(fā)板,不能用啊。
iPipeNum 端點(diǎn)參數(shù)必須設(shè)置為1,HSPI的例子默認(rèn)用的是端點(diǎn)1來做收發(fā)。
if (CH375ReadEndP(0, 1, mReadBuf, &mLength))? // 接收成功
if (CH375WriteEndP(0, 1, mWriteBuf, &mLength))? // 寫入成功
?為啥寫過之后再讀就失敗了??
點(diǎn)測試發(fā)送前
======================1
Dbg_USB_Down_TLen: 00
Dbg_HSPI_Tx_TLen:? 00
Dbg_HSPI_Rx_TLen:? 0c000
Dbg_USB_Up_TLen:? ?00
HSPI_Tx_Data_Len:? 0
HSPI_Rx_Data_Len:? c000
Endp1_Up_Status:? ?1
Endp1_Down_Status:? ?0
點(diǎn)測試發(fā)送后
======================1
Dbg_USB_Down_TLen: 06000000
Dbg_HSPI_Tx_TLen:? 06000000
Dbg_HSPI_Rx_TLen:? 0c000
Dbg_USB_Up_TLen:? ?00
HSPI_Tx_Data_Len:? 0
HSPI_Rx_Data_Len:? c000
Endp1_Up_Status:? ?1
Endp1_Down_Status:? ?0
點(diǎn)測試接收后
======================1
Dbg_USB_Down_TLen: 06000000
Dbg_HSPI_Tx_TLen:? 06000000
Dbg_HSPI_Rx_TLen:? 0c000
Dbg_USB_Up_TLen:? ?0c000
HSPI_Tx_Data_Len:? 0
HSPI_Rx_Data_Len:? 0
Endp1_Up_Status:? ?0
Endp1_Down_Status:? ?0
您好。
可以看這個帖子的內(nèi)容,幫助學(xué)習(xí)理解USB3.0的CH372例程:
http://www.findthetime.net/bbs/thread-86707-1.html
這個比較簡單只是USB3.0的收發(fā)。我用HSPI這個測試的時候如果先做了下傳,那么再做上傳就會失敗。跟了一下。是HSPI沒有獲取到數(shù)據(jù)了。HSPI_Rx_Data_RemainLen這個一直0。HSPI是做了下傳,需要轉(zhuǎn)換身份再做上傳嗎?所以HSPI的這個demo貌似有bug。
找到bug了
這個寄存器在手冊中是RESERVED ,程序中被注釋掉了。每次發(fā)送成功,低比特都會被置1,然后就進(jìn)不去中斷函數(shù)接收部分。
這個bit到底是做啥的???
R8_HSPI_RTX_STATUS
#define? RB_HSPI_RESERVED? ? ? ?0x01? ? ? ? ? ? ? ? ? ? ? ? // RO, data transmit OK (received ack)
#define? RB_HSPI_CRC_ERR? ? ? ? 0x02// RO, CRC error occur
#define? RB_HSPI_NUM_MIS? ? ? ? 0x04// RO, rx and tx sequence number mismatch
這個比特位在應(yīng)用中不需要關(guān)心。
HSPI的傳輸,應(yīng)當(dāng)主要關(guān)心R8_HSPI_INT_FLAG中的RB_HSPI_IF_T_DONE、RB_HSPI_IF_R_DONE、RB_HSPI_IF_B_DONE。
分別對應(yīng)發(fā)送完成、接收完成、突發(fā)完成。其中使用突發(fā)模式發(fā)送時,會進(jìn)入多次發(fā)送完成中斷。
HTCLK1和HRCLK1的時鐘最高頻率是多少?
HSPI的clk等同于芯片配置的系統(tǒng)主頻,就是最大120MHz。