使用CH375HF9.LIB库时初始化成功,也能读U盘大小,就是在使用函数CH375FileOpen打开文件时不成功,返回值0x1F,请问是什么问题?
CH375DiskReady( )命令有没有通过. USB口的供电要确保为5V
CH375DiskReady( )命令一次通过,USB口的供电为5V。我用的是LPC2104芯片,工作时钟频率44MHz,程序用的是例子程序。原例程用的是LPC2114,我改了命令、数据读写程序,因为例子程序用的是端口0,而LPC2104只有一个端口。即IODIR、IOSET、IOCLR,原来是IO0DIR、IO0CLR、IO0SET。难道是指令与指令之间延时不够,不知你们以前遇到类似的问题吗?另外,开发环境是ADS1.2。
LPC2114 44MHZ,VPB=Fcclk,模拟I0,速度比较慢,读写自函数之间的延时可以没有 LPC2114参考程序,查询方式,ADS1.2: 传不上来,请把邮箱留下发给你
返回0x1F可能原因如下: (1)DiskBaseBuf缓冲区不够大或存在问题,对缓冲区做读写测试 (2)接口子程序问题。需要查WriteData/ReadData接口子程序是否太慢,导致U盘睡眠。写命令后延时1.5uS,读写数据后延时0.6uS。 (3)干扰、时钟问题。需要查USB干扰和12MHz时钟同步,导致USB传输不了大数据包。 (4)大小端问题。需要查大端/小端格式,防止小端LBA地址当成大端LBA地址导致溢出。 (5)检查USB口与芯片供地好不好,多连接几根地线,若通过延长线连接,那么需要屏蔽线,且屏蔽层要接地
这个问题其实很简单的,我碰到过的。DISKBASEBUF地址不够,或者内存在程序中定义有错误。还有如果文件打开时被其他中断服务程序打断,中断不能过于长。
目前也遇到此类问题,使用CH375HF5.LIB库时初始化成功,也能读U盘大小,使用函数CH375FileOpen打开文件时返回值为0x1F,测试金士顿2GB、8GB以及16GB优盘现象一致。单片机采用MSC210,使用单片机内部1KBRAM,此类问题如何解决?
文件、磁盘缓冲区大小配置是否正确?把数据的复制方式换一下看
文件、磁盘缓冲区大小配置是否正确?把数据的复制方式换一下看
由于MSC1210内置的外部RAM只有1KB,磁盘缓冲区配置为512,没有定义文件缓冲区,与CH375连接采用非总线方式,用普通I/O引脚P0口模拟8位并行总线读写,与CH375之间采用并口连接,INT采用查询方式。在WIN7的磁盘格式化选项中FAT32格式最小分配单元大小为4096,是不是因为磁盘缓冲区小于U盘扇区大小造成,难道必须外接RAM?
帮顶,我也遇到这种情况了,而且我连U盘大小都不能读出来
帮顶,我也遇到这种情况了,而且我连U盘大小都不能读出来
多半是读写的时候被中断打断了