CH569W USB 到HSPI 上位机参考设计。

CH372SpeedTest.exe ,能提供一下这个软件的源代码吗??

icon_rar.gifUSB3.0TestDemo.zip

官网下载最新例程可找到次压缩包


这个配合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例程:

https://www.wch.cn/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。


只有登录才能回复,可以选择微信账号登录