CH32V307EVT的SDIO官方例程的仿真问题。

目前在测试CH32V307读写SD卡的例程。

用以下硬件运行官方V1.9版的例程,发现无法仿真,能下载但串口输出异常。相关截图见下。

硬件平台:

https://detail.tmall.com/item.htm?spm=a230r.1.14.11.392c1289VDs56I&id=675794731693&ns=1&abbucket=1


仿真提示:

企业微信截图_16660641583527.png


固件下载后的串口输出

企业微信截图_16660642397157.png


补充:

以上硬件平台,可以正常下载并仿真例程中的GPIO固件,也可以单步调试。


end

您好,这个提示表示编译生成的二进制文件没有自动刷新成功,这时直接在文件资源区按F5手动刷新即可。


谢谢!手动刷新后,仿真的问题解决了。

但读写SD卡的例程,还是无法正常跑起来。请问有什么办法可以解决?

=====================================

通过仿真可知,固件无法退出下面这个循环。

1667725190244.png

=====================================

另外,我用的SD卡是8G的Micro SD,以及开发板的实物如下:

a2320afeeb070bcb8f0f858d9c3fe7f.jpg

=====================================


上面的问题解决了。

仿真不过是因为硬件问题,SD卡的IO与网口的IO冲突了。断开网口IO就能正常运行了。

请问,SDIO的读写速度,最大能到多少啊?

根据初步测试结果,写2M Byte 大约需要6秒,读2M大约需要2秒。

即:读=340 (KByte/s)? , 读 = 1024 (KByte/s)。

这与规格书上描述的“SDIO 的时钟最快可达到 HCLK 的一半”相差较远啊。

是不是我又搞错了什么?

企业微信截图_16696926482400.png


您好,

        SDIO操作TF卡的速率,有多个方面的因素影响,比如卡本的速度等级,测试的文件大小等。

        规格书描述的是,片内的SDIO这个控制器,时钟最高可以达到HCLK的一半,并不是所有的卡都支持这么高的速度。SDIO对卡读写的时钟频率,是卡在初始化时,读取到卡的相关寄存器决定的。从我自己实际测试的情况看,品牌16G、32G容量的卡能够支持更高的时钟频率,市售的小容量如128M、256M、512M卡,往往只能支持较小的时钟频率。

        截图的测试数据,是从什么地方过来的呢?USB?SPI Flash?不管从什么地方搬过来的,除了要考虑最开始提到的影响因素外,还要考虑数据源传输时的瓶颈问题。如果可以,将逻辑分析仪挂在SDIO上,方便更直观的看到卡片的工作情况。


您好,看您最后的解决方案是断开网口IO,问一下具体是怎么操作呢,在官方例程中好像并没有使用网口呀


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