求助ch376初始化无法通过

使用stm32f103的SPI接口连接CH376评估板,原来测试时使用stm32f103的SPI1口曾经完成了读写u盘,现因需要改用了SPI2口与CH376评估板连接,接线和程序都做了相应的改动,但却无法读写u盘了,设置断点检查,发现CH376初始化无法通过,返回错误代码0XFA,用示波器查看CH376的SCK,DI,DO都有对应的波形出现,SCK是时钟波形,DI的波形数据是0X06,0X65两个字节, DO的波形数据是0XB0,0X87,0X67三个字节,不知什么地方出错误了.能通过CH376返回的 0XB0,0X87,0X67三个字节进行判断吗?请大家给予帮助,谢谢!

从你示波器抓到的数据看,你的测试命令没有通过。正确的DO上的波形数据是0X9A,主要检查你SPI2的接线和配置是否正确?


谢谢!我再查查看.


我试了多种方法都不能使用stm32f103的SPI2口读写u盘,感觉stm32f103的SPI2的设置应该没有问题,接线也没有问题,因为使用示波器既可以在ch376的DI上看到stm32发给它的输入数据(0X06,0X65),也可以在ch376的DO上看到它发给stm32的输出数据.时钟波形也正常.就是CH376初始化无法通过.设置断点检查,发现初始化时DO输出的数据经常变化,大多为0X65,0X67,0XE5等内容有时也有0X9A出现,多数在对CH376断电复位后首次进行初始化时出现0X9A,即使出现0X9A,也不能建立文件和读写u盘.CH376评估板的指示灯有时可以点亮,有时不能点亮.为验证ch376是否正常,我又在同一块板子,使用同一个程序(把配置和接线都改回SPI1接口)运行程序,SPI1口读写u盘建立文件正常.说明CH376评估板没有问题.真不知该如何处理才好.请大家给予帮助,谢谢!


这个时候建议你看下载你发送测试命令的时候,也就是在CS拉低之后到发送测试命令的时间是多少?还有单片机上电之后是否做了50MS以上的延时?


好的,我试试


在CS拉低之后到发送测试命令的时间是1.26us


上电之后的延时时间应该是足够,我一直在使用MDK进行复位,运行测试.ch376没有断电.


对不起,我看错了,应该是cs一直是高电平,初始化时cs先拉低17us后,又置高3us,再拉低1.26us后时钟脉冲出现.如果按第一次拉低算起,应该是21.26us后时钟脉冲出现. 我比较了一下spi1和spi2两个口的波形基本一致,spi2只是在cs脉冲第二次拉低后,1.26us左右出现时钟脉冲,而spi1口在cs脉冲第二次拉低后,0.9us左右就出现时钟脉冲.这点差距应该不会有影响吧.


好了,原因找到了,stm32的spi1和spi2的时钟频率不同,我没有修改spi2的时钟配置,这样虽然接线正确,时钟波形和输出数据都有,但ch376的初始化就是无法通过.修改spi2的时钟配置后,初始化通过,读写u盘正常.谢谢大家的帮忙!


在吗?? 联系我  加我QQ 994099840


你好:

TO ZHANGKAI:

看你好像有376的问题需要问,你可以单独发个帖子,将你的问题贴出来。



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