CH372SpeedTest.exe ,能提供一下这个软件的源代码吗??
官网下载最新例程可找到次压缩包
这个配合CH569W的HSPI验证开发板,不能用啊。
iPipeNum 端点参数必须设置为1,HSPI的例子默认用的是端点1来做收发。
if (CH375ReadEndP(0, 1, mReadBuf, &mLength)) // 接收成功
if (CH375WriteEndP(0, 1, mWriteBuf, &mLength)) // 写入成功
为啥写过之后再读就失败了??
点测试发送前
======================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
点测试发送后
======================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
点测试接收后
======================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
您好。
可以看这个帖子的内容,帮助学习理解USB3.0的CH372例程:
/bbs/thread-86707-1.html
这个比较简单只是USB3.0的收发。我用HSPI这个测试的时候如果先做了下传,那么再做上传就会失败。跟了一下。是HSPI没有获取到数据了。HSPI_Rx_Data_RemainLen这个一直0。HSPI是做了下传,需要转换身份再做上传吗?所以HSPI的这个demo貌似有bug。
找到bug了
这个寄存器在手册中是RESERVED ,程序中被注释掉了。每次发送成功,低比特都会被置1,然后就进不去中断函数接收部分。
这个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
这个比特位在应用中不需要关心。
HSPI的传输,应当主要关心R8_HSPI_INT_FLAG中的RB_HSPI_IF_T_DONE、RB_HSPI_IF_R_DONE、RB_HSPI_IF_B_DONE。
分别对应发送完成、接收完成、突发完成。其中使用突发模式发送时,会进入多次发送完成中断。
HTCLK1和HRCLK1的时钟最高频率是多少?
HSPI的clk等同于芯片配置的系统主频,就是最大120MHz。