总线技术|接口技术
直播中

wangka

13年用户 5636经验值
擅长:基础元器件 模拟与电源 操作系统/软件
私信 关注
[讨论]

CH375和CH372常见问题的解决

1:问:U盘插在板子上,然后上电,工作正常。板子先上电,然后插U盘,板子检测不到U盘插上和拔除。
   答:该问题是由于U盘插上时,电源U盘供电,电源电压产生波动,导致CH375复位,不产生中断引起的。可以在USB口上的电源和地之间接一个大于200UF的电解电容。

2:若要使用3.3V电压对CH375供电,要求VCCV3引脚接3.3V,与CH375相连的处理器的电压也要是3.3V,除USB口的D+D- 外,任何与CH375相连的引脚都必须是3.3V的。

3:问:当在我没启动CH375设备模式时居然插在算计上能找到USB设备,不过不能装驱动。
答:如果这种情况属实则是CH375没有正常复位。

4:问:我用LPC单片机作模拟IO口时做输入时不正确。
答:用模拟IO时序要掌握好,IO口作输入时要往口上写入1

5:问:C8051F单片机可不可以用你们的U盘读写的库函数,
答:可以,不过C8051F大部分是单周期指令,所以要考虑速度,应用的时候要注意MOVX指令的时间周期,(61就可以了);或者用我们的第5个库,读写CH375靠用户自己设定。

6:问:是不是可以用CH375作主机CH372作从机进行通讯,并且不处理描述符?
   答:可以。

7:问:直接写入U盘的数据为何不能格式化掉?
     答:这牵扯到文件格式,对于现代格式化都是高级格式化(软盘除外),格式化就是将引导区的文件信息删除,对于存在存储器的具体文件可能还在原处。用 一些工具是可以看到文件的存在的。 所以对于直接写入的数据计算机就有可能不理会。这就是你所说的删除不掉。这不会对使用U盘有影响。如果想格式化掉可能 需要重新分区。

8:问:我的U盘插上为什麽出现错误91
答:这是因为库不支持你的U盘格式建议你重新格式化。格成FAT16或者FAT12

9:问:我的U盘写入时为什麽在写入64K是可以,写入90K时长度变成20K呢,
答:我们定义的长度是16位的,当自动修改长度时只能识别64K之内,当长度超过64K时要手动修该长度,或者重新定义长度为32位。

10:问:下位机每次通过端点2上传4字节,为什麽上位机有时候会收到一串其他数据?
答:这要看你写的具体程序。下位机每次发过一组数据后,没有查看上位机是否接收就发第2组。假如第一次还没被上传就写入了第二组,数据被覆盖掉。

11:问:为什麽我在用CH375直接读取U盘设备描述符时会读取不成功,而其他向U盘初始化等命令能成功。
答: 第一是否设置模式。第二是否设备插上来延时充分。第三在给U盘操作时要对U盘复位一次,再操作。因为有的USB设备自己没有复位功能,要依靠外界各其复位 后才能工作。PC机给所有刚插上来的USB设备都是先复位总线再操作的。CH375中的初始化U盘命令也是先复位总线再操作的。

12:问:在用CH375HOST,使用内部U盘读写固件操作U盘进行扇区操作均正常,但是当用程序进行SETUP过程时出现问题,程序执行过程:
a.初始化CH375芯片:复位芯片,发送测试命令,发送设置工作模式(0x06)命令,等待USB设备连接。

b.USB设备连接产生中断后,发送获取设备描述符命令,此时CH375返回中断状态字为0x20,无论USB设备是U盘还是摄像头均出现此错误,运行环境:CPU:89S52 ,11.0592Mhz,附源程序。
答:错误码20H说明目标USB设备应答超时,可能原因有:
a、目标设备尚未正常工作,例如未连接,或者已连接但未初始化好
   解决方法,确认连接后再延时数百毫秒
b、通讯错误,例如,晶振频率不准(电容不符),非标准USB信号线
   解决方法,1、调整硬件,2、用SET-RETRY命令带参数25H8FH增加重试次数
c、目标USB设备连接时瞬时电流太大(降低了电源电压),导致CH375不正常,
   解决方法:分开供电,或者为USB设备串入限流电阻或者电感
dCH375操作时序不佳,导致数据不稳定,例如CMDDATA之间不足2.5uS
另外,您若是用I/O引脚模拟并口读写的,要考虑在模拟到一半时出现中断的情况,
如果关中断,又会影响速度。如果是51单片机,想省点I/O引脚,可以用 MOVX @R0,A MOVX A,@R0,这样P2口只用两个:CSA0,其它随便用。
顺便unsigned char u1_read_data(void)
{
unsigned char ch;
U1_A0 = 0
U1_CS = 0
P0 = 0xff   // 放在RD=0之前更安全,否则如果之前P0输出0CH375输出1会短路

RD = 0      // CH375开始输出数据
P0 = 0xff    // 原来的这一行就当延时吧,因为RD=0CH375输出数据要20纳秒
ch = P0
RD = 1
U1_CS = 1;
return ch
}

13:问:341可以单独控制外部设备吗?
答:341的开发就是考虑在没有处理器使用的,假如要控制剧电器或者发光管,只要用CH341+74HC273就可以了。

回帖(1)

张先生

2017-8-8 17:12:19
举报

更多回帖

发帖
×
20
完善资料,
赚取积分