前些日子做了一个小项目,通过单片机来控制CH376向U盘中写数据是其中的一个部分,用的是c8051f040单片机,单片机与CH376通过SPI总线相连接,在这个过程中,遇到一些问题,与大家共享,也许其中的一些问题只是个案,仅做参考。
首先要说明的是此单片机工作电压是3.3V,但是其IO是耐5V的,SPI总线和CH376输出的中断信号均采用查询方式。
起初,CH376采用的是5V供电,与ch376通讯及其中断输出均基本正常,只是基本正常,有时会遇到查询不到CH376的中断,因此问题出现的机率很小,没有放在心上,到向U盘中的TXT文档写数据时,出现大问题了,写入数据的前10多个字节是对的,其后的数据全为乱码,起初我以为是SPI总线速度较快(此时速度为100kbps),我将速率将至50k,情况依然没有改观,后我又在写字节过程中加入延时等,这些措施均没有效果,去wch的论坛上发贴求助,也没有解决。
这时我就想了,速度也降了,延时也加了,肯定不是速度的问题,应该是电平的问题,我将ch376的供电方式改为3.3V,上电通讯,测试命令都正常,但是不进中断了!我用表量了一下,其电平竟然是2V左右,这肯定进不了中断啊!电平拉不下来,可是在5V供电时,是可以进中断的啊,又切换至5V供电,测得其中断时的电平在1V左右,也不是0V,这就是5V供电时有时不进中断的原因。再切换到3.3V,我将中断方式改为查询CH376的SDO引脚模式,至此中断才正常,后又向TXT文档中写数据,全部正常,没有乱码,并且之前有时不进中断的问题,也没有遇到。应该就是电平不兼容的问题。
将CH376模块的电路传上来,有需要的拿去。
用户377235 2014-8-19 16:46
用户377235 2013-6-19 15:45
用户1605807 2011-8-5 10:23