我用CH374T做的USB通信,实现单片机与PC的通信,在网上没有找到CH374T的参考电路,自己根据CH374S的电路,绘制的,不知道是否正确,现在传上来,请教各位高手予以指正。
CH374T与CH374的工作电路是一样的,这个电路是正确的
谢谢SCM { M } 我还有问题请教您: (1)、资料里说,在SPI通信方式下,管脚按上图连接,其他脚悬空,问题是:其他不用的脚接地可以吗?比如第4脚A0接地,可以吗? (2)、我用上面的电路,对其40H-7FH寄存器进行读写测试,按照论坛里的方法,直接调用读写寄存器的函数:Write374Byte、Read374Byte,只对40H进行读写,但不是对40H-7FH寄存器连续写,再连续读,结果读写不成功,请问必须连续读,再连续写吗?为什么?
干吗非要接地呢?按照说明书上说的,悬空,都接地可能会有问题的.最起码会有电流的. 可以用Write374Block,Read374Block这两个函数进行连续的读写测试.如果连续不成功的话,可能是SPI速度过快导致的,字节之间的延时多少?
字节之间的延时,是指在Write374Block中每Write374Byte写一个字节后,加延时吗? 哪么,字节之间应该延时多长时间? 我是直接移植DEVICE.C,只修改了接口,其他什么都没改,我采用是单片机集成的SPI通信模块,4MHz通信速率,采用通信时序如图:
(1)通常不需要加延时,CH374 SPI要求2次操作时间间隔不小于80nS (2)对于硬件SPI 接口,建议SPI 设置是CPOL=CPHA=0或者CPOL=CPHA=1,并且数据位顺序是高位在前MSB first
谢谢两位,可以读写寄存器了,原来是上电复位延时太短,CH374T没有复位成功,mDelaymS(50)移植后,时间不够长,增长延时后就好, 现在问题是;(1)采用中断函数方式,等待一会儿,电脑显示“无法识别”,而设置的中断标志LED灯,不亮,说明没有进中断; (2)然后,我改用查询CH374T内部中断寄存器REG_INTER_FLAG的方式,发现内部值不为0,但是此时并没有与电脑 相连,是不是初始化没有成功,REG_INTER_FLAG写1清0后,其内部值应该是0吧? 请问出现“无法识别”这种情况,可能的原因是什么?
(1)“无法识别”是因为描述符信息没能成功传给PC,导致PC不认识该设备,描述符通过USB_DeviceInterrupt传给PC (2)无法进入中断,检查中断配置是否正确,连接PC后测量INT脚电平 (3)REG_INTER_FLAG不为0,那么中断寄存器具体是产生了什么中断,写1即内部清0,设置模式应该成功了,否则PC不会发现设备
请问09H中断标志寄存器,写1清0后,其内部值是0,还是不为0;写1后,是不是要延时等待其完成清0动作,如果是,需要延时多长时间。
无法识别是374设备模式已经启用了,但是由于没有上传描述符导致主机识别不了设备. 你可以测试一下中断脚是否有低电平出现了.
不需要延时,写1就清除为0了.
谢谢各位,现在已经实现USB通信了,不过,是采用的查询的方式实现的,中断方式还是不行,可能是单片机中断没设置好。