CH375主机写U盘数据问题

我的硬件平台S3C44B0,主频50M,CH375挂于总线上,CH375 INT中断使能 我的程序流程如下: 1、检查U盘状态 CH375DiskReady() 2、动态生成要写的数据包,大小1K左右 得到文件长度与扇区数 3、在U盘根目录动态创建文件夹并打开 CreateDirectory() 4、再在刚创建的文件夹下创建二级文件夹 CreateDirectory() 5、在二级文件夹下创建一个文本文件 CH375FileCreate() 6、写数据 CH375FileWrite() 7、修改文件长度时间等信息 CH375FileModify() 8、关闭文件 CH375FileClose()

现发现第一次创建文件时写入的数据从PC上读出来有全是0X00,要不就是前一部分是0X00 但接下来重新再重写一次就没问题,问题出在第一次创建某文件和文件夹时 请帮忙分析下?谢谢! 是不是首次连续创建文件和文件夹之间要延时下?还是其他问题?

你在写入数据前检查缓冲区的内容是不是全是00,如果是的话可能是你缓冲区没有真确填入数据.不需要延时的. 你可以把全部程序贴出来看看.


缓冲区的内容肯定不是0的!我断点看过!还有把写U盘程序重复一次就对了!就是首次会出问题! 请问文件库是不是不调用CH375FileWrite()是不占用文件数据缓冲的吧? 因为文件数据缓冲我在没操作CH375时就已经填充好的!


我的软件平台是EWARM 5.20 库3.6版本,从ADS转过来的


刚做了实验发现我把文件数据在要调用CH375FileWrite()前填充就没问题了! 我想知道提供的库每个函数要占用哪些全部资源?希望贵司提供给我一份,可以不?


呵呵!知道原因了!是因为在创建文件夹时占用过数据缓冲区的原因,而第二次存储因为没有新建文件夹所以就没占用过缓冲区,所以就对了! 谢谢沁恒!!!


下载CH375EVT.ZIP,参考CH375HF.PDF关于各个函数的说明 另可查看库头文件中共用体说明


各位:请问CH375B为串行主机工作方式下,在UD+、UD-与外设U盘之间可不可以接其它电路?只要阻抗能匹配是不是就行呢? 还有UD+、UD-与U盘数据传输时,是不是也和单片机串行通信一样,是按照相同的波特率来进行数据传输的? 如果可以保证UD+、UD-与U盘的数据传输延时时间可以在1US以下,这样能行么?


怎么没有人回答???


可以不接其他电路.可以接一些抗干扰的电路,串接的电阻不要超过5欧姆.不是按照波特率来传输数据的.读写函数按照我们提供的时序写就可以了.


红桃六大哥:谢谢你!! 在硬件上必须要接其它电路,而且电路的电阻在400欧姆左右(一定得加此电路)。请问有没有什么好的解决方案?? 大于5欧姆是不是就会产生大的压降? 针对这个问题, 我是这样做的:在这个等效电阻为400欧姆左右电路的上,再加些电路来提升它的电平。使此电路最终得到的电平与TTL相同(即到达CH375B(U盘)的D+,D-还是与TTL电平相兼容)。而且这个电路的转换速度大于480M。这种做法是否可行?


怎么没人答复呀?


小弟我急用呀!! 谢谢各位大侠!!


小弟我急用呀!! 谢谢各位大侠!!


这样做也可以,但是保证电平要接近3.3V,波形不能失真.


为什么会是3.3V,呵呵!小弟有些不明; 不是TTL电平吗?


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