ch32v305的sdio协议魔改应用中出现的问题

使用ch32v305的sdio和fpga进行通信,不理会命令通道的交互,只用sdio的数据通道对fpga进行读写操作

在1位数据线,stream模式,1MHz的时钟速率,进行以下初始化

image.png

image.png

image.png

向fpga进行写操作,用逻辑分析仪能够观察到正常的全部32字节的写入;

image.png

但是使用4位或者8位数据宽度,发出来的数据是错乱的,数据长度也不对,而且会“重发”。

如下图所示,预期发送的数据是32个0xf0f0f0f0,但是逻辑分析仪捕捉结果是:

image.png

这就是出现的数据重发的数据波形(上图是下图其中一段放大后的结果):

每两个数据发送之间的时间间隔就是代码中设置的“数据超时时间”,sdiodatatimeout,1000个sdio时钟周期,测出来是1ms左右。

image.png

是不是4位和8位数据模式需要有特殊的设置?

又或者是,即便在sdio主机在stream模式发送数据的过程中,也需要从机通过cmd或者data通道进行应答?

您好,可以具体看一下你芯片的丝印,对于CH32V30x系列,目前流传输的4位、8位总线模式仅支持批号倒数第六位不为0的产品。后续若有问题,可邮箱(lzs@wch.cn)和我沟通。若你不确定,也可芯片拍照发我看一下。


谢谢2楼的回复 踩到坑了 芯片丝印的批号倒数第六位正是0。。。


请问批次倒数第六位是0的芯片 还有其他坑吗 例如高速usb方面的?


楼主可以仔细翻一下“CH32FV2x_V3xRM”这个文档,大多数与特定批次相关的特殊情况都有标出。

不过还是希望WCH可以发布类似ST等厂商的Errata文档,标注特定版本或所有版本芯片存在的限制与可行的缓解措施等等。有时想用一款芯片,为了查这些批次相关的限制不得不整个手册全部细细读下来。。。。


“CH32FV2x_V3xRM”这个文档的更新记录都没有,其他的更不好说了


您好,@辉,高速USB是没有问题的。感谢@雨华YuHua的建议,这边会向相关同事反馈的


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