msp430 ch376

请问如何提高ch376写U盘数据的速度,我用MSP430并行方式写2M数据到U盘,写了十几分钟,不知道如何去提速?

优化一下底层的接口函数。可能延时时间过长导致的。如果要求速度的话,建议用扇区的模式进行写操作


我直接用你们官方给的那个并口的C和文件操作的C,我看也没有多少延时啊


读写一个字节你用示波器看看需要多长时间。或者把你的程序贴出来看看。 UINT8 xReadCH376Status( void ) void xWriteCH376Cmd( UINT8 mCmd ) void xWriteCH376Data( UINT8 mData )


UINT8 xReadCH376Status( void ) /* 从CH376读状态,仅用于并口方式 */ { UINT8 mData; CH376_DATA_DIR_IN( ); /* 设置并口方向为输入 */ CH376_A0_1; CH376_CS_0; CH376_WR_1; CH376_RD_0; /* 输出有效读控制信号, 读CH376芯片的状态端口 */ _NOP(); /* 该操作无意义,仅作延时,CH376要求读写脉冲宽度大于40nS,强烈建议此处执行一条空指令延时以确保并口有足够时间输入数据 */ mData = CH376_DATA_DAT_IN( ); /* 从CH376的并口输入数据 */ CH376_RD_1; /* 输出无效的控制信号, 完成操作CH376芯片 */ CH376_CS_1; CH376_A0_0; return( mData ); } void xWriteCH376Cmd( UINT8 mCmd ) /* 向CH376写命令 */ { CH376_DATA_DAT_OUT( mCmd ); /* 向CH376的并口输出数据 */ CH376_DATA_DIR_OUT( ); /* 设置并口方向为输出 */ CH376_A0_1; CH376_CS_0; CH376_WR_0; /* 输出有效写控制信号, 写CH376芯片的命令端口 */ _NOP(); /* 该操作无意义,仅作延时,CH376要求读写脉冲宽度大于40nS */ CH376_WR_1; /* 输出无效的控制信号, 完成操作CH376芯片 */ CH376_CS_1; CH376_A0_0; CH376_DATA_DIR_IN( ); /* 禁止数据输出 */ mDelay0_5uS( ); mDelay0_5uS( ); mDelay0_5uS( ); /* 延时1.5uS确保读写周期大于1.5uS,或者用状态查询代替 */ }

void xWriteCH376Data( UINT8 mData ) /* 向CH376写数据 */ { CH376_DATA_DAT_OUT( mData ); /* 向CH376的并口输出数据 */ CH376_DATA_DIR_OUT( ); /* 设置并口方向为输出 */ CH376_A0_0; CH376_CS_0; CH376_WR_0; /* 输出有效写控制信号, 写CH376芯片的数据端口 */ _NOP(); CH376_WR_1; /* 输出无效的控制信号, 完成操作CH376芯片 */ CH376_CS_1; CH376_DATA_DIR_IN( ); /* 禁止数据输出 */ mDelay0_5uS( ); /* 确保读写周期大于0.6uS */ }


mDelay0_5uS( ); mDelay0_5uS( ); mDelay0_5uS( ); 延时这么长时间肯定不行。 测试一下mDelay0_5uS( );这个时间是多长。如果你用MSP430应该可以不加延时的


我已经去掉几个延时了,但是速度还是很慢,从你们的技术文档中看到,速度可以达到185k,是怎么做到的?


这几个函数中不要加延时就可以,因为你的MCU速度比较慢。速度慢你检查一下其他函数。读U盘的时候,正确的测试方法应该是死循环一直读,不做其他的事。而且读的时候要用扇区模式。


我是希望它写快点,我现在已经用12M晶振了,而且它是单周期指令,51都可以达到,430不应该达不到啊


楼主,我最近也在用430控制ch376,能不能把程序发一份给我?我只找到376的51的程序,改了半个多月还是没改成功,如果能发一份真的太感谢了!!邮箱:个人信息保护,已隐藏,


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