目标:利用CH376 HOST来读、写U盘内的文件;
第一天:配置硬件和软件环境,初始化CH376并利用测试命令测试芯片;
1.DSP部分:
1)配置SPI接口;
2)配置片选信号;
3)配置GPIO用来读取INT;
2.CH376的硬件描述层:
1)修改SPI_HW.c中的接口函数;
3.初始化:
1)对376进行测试命令,返回值错误;
a.分析原因:未使用BZ引脚检测忙信号,而使用的for()循环延时,延时函数不满足376的操作条件,造成数据交换失败;
b.解决办法:经过测试延时,降低误差后,通信成功;
2)配置376为U盘模式;
经过以上步骤,DSP已经可以和376进行正常通信了;
第二天:检测U盘插入并MOUNT。
1.检测插入顺利通过;
2.个别U盘出现MOUNT失败的现象,这个可能和376芯片有关,后来换了一个新的376,之前失败过的U盘都成功MOUNT;这里所谓的“新”是新出厂的,可能前几批出厂的芯片这里兼容的不是很好;
第三天:文件的写入和读取
1.写入文件:
1)错误1:写入文件时出现乱码;
原因:官方的驱动中,函数CH376ByteWrite( );是按照ASCII码写入文件的,因此,要发送数字"1”,必须发送0x31才行;
2) 错误2:写入和读取文件正常,但是在电脑上却找不到U盘中的该文件;
原因:这个可能跟U盘有关,2G的U盘,格式化为FAT系统,一切都正常,但是格式化为FAT32之后,下位机读写正常,电脑却找不到文件,这个问题一直没有解决,希望解决了的朋友帮忙解答一下;4G、8G、16G的U盘格式化为FAT32也全部正常,分配单元的大小似乎没有影响(同是FAT32的两个U盘,在分配单元大小=8192和64的情况下都成功了);
也有人说在win7下格式化不管用,在XP下格式化管用,这个我没有验证,反正我的U盘都是在win7下格式化的;
几个需要注意的地方:
以上就是我在调试过程中遇到的问题,有不同意见的地方希望各位朋友提出,共同交流,共同进步;