今天再看CH376DS1.pdf的时候发现8.4快速应用参考中有写到CH376可以自动检测U盘是否连接并返回中断给单片机,这个怎么设置啊???? 我用的是msp430f149的SPI通信 msp430 CH376 MISO SDO MOSI SDI SCK UCLK0 SCS P1.5 INT P2.2 BZ P2.1 连线是否有错误啊?还有对于BZ的工作原理不是很清楚求指教
默认的只要初始化好芯片同时给CH376设置成模式6的话,那么你插入U盘之后INT引脚就会拉低通知你U盘插入。这个时候读取中断状态为0X15设备已连接的中断状态。
设置好了。。。ch376芯片初始化已经完成。。。但是还是不识别u盘。。。一直停在下面这个循环中没有检测到中断还是什么原因呀? s=CH376_DiskConnect(); while(s!= USB_INT_SUCCESS)/* 检查U盘是否连接,等待U盘插入,对于SD卡,可以由单片机直接查询SD卡座的插拔状态引脚 */ { P2OUT&=~BIT0; Delayms( 100 ); }
你看下单片机和CH376之间的硬件连线是否有问题。也就是做测试命令来测试下。如果测试命令通过的话,那么插入U盘之后CH376的中断引脚就会拉低。
已经检测到了。。。但是检测响应时间很长。。。U盘插上大约有近一分钟的等待时间才能检测到。 下面的函数是否可以改动啊。。。5000000对检测时间有影响吗?hcn兄指教指教啊 volatile UINT32 j= 0; for ( j = 0; j < 5000000; j ++ ) /* 计数防止超时,默认的超时时间,与单片机主频有关 */ { if ( Query376Interrupt( ) ) { return( CH376_GetIntStatus( ) ); }/* 在等待CH376中断的过程中,可以做些需要及时处理的其它事情 */ } return( ERR_USB_UNKNOWN );
还有个问题CH376_DiskMount( )这个函数的返回值是0x22对通信有影响吗?
USB通讯有问题,把你的电路图传上来看看,硬件有问题
你好,红桃六,我使用的是msp430f149单片机开发板和你们的CH376模块做的实验,用的是SPI通信,没有电路图,我跟你说下连线方式吧。。。 单片机 CH376 VCC VCC GND GND P5.0 SCS P5.1MOSI SDI P5.2MISO SDO P5.3UCLK SCK P2.7 INT# P1.4 RST 返回值是0x22,但是创建文件的时候是可以的,只不过程序里创建的文件里没有写入任何值的时候创建的TXT或是C文件总有一个字母,不知道是为什么
还有就是我前面提到的检测响应时间很长。。。U盘插上大约有近一分钟的等待时间才能检测到。 下面的函数是否可以改动啊。。。5000000对检测时间有影响吗? volatile UINT32 j= 0; for ( j = 0; j < 5000000; j ++ ) /* 计数防止超时,默认的超时时间,与单片机主频有关 */ { if ( Query376Interrupt( ) ) { return( CH376_GetIntStatus( ) ); }/* 在等待CH376中断的过程中,可以做些需要及时处理的其它事情 */ } return( ERR_USB_UNKNOWN );
U盘供电是多少?一定要5V,另外在你的MCU的电路板和评估版之间要多供几个地线。
谢谢。。。已经调通了。。。我想问一下。。。CH376的INT可否直接给MCU中断而不是定时查询。。。换句话说就是是否可以MCU不进行延时等待查询,而来信号的时候INT直接通知MCU
这不是取决于软件设计吗?和CH376不相关