3252|5

87

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

这个,你做过吗?100分 ,在线等 [复制链接]

哪位高手做过CH375芯片的U盘通讯卡程序,求一CH375芯片初始化的程序!
哪位有,100分全部送上

最新回复

做过,给你参考一下 void CH375_WR_CMD_PORT( unsigned char cmd ) {  /* 向CH375的命令端口写入命令,周期不小于4uS,如果单片机较快则延时 */         delay2us();         CH375_CMD_PORT=cmd;         delay2us(); } void CH375_WR_DAT_PORT( unsigned char dat ) {  /* 向CH375的数据端口写入数据,周期不小于1.5uS,如果单片机较快则延时 */         CH375_DAT_PORT=dat;         delay1us();  /* 因为MCS51单片机较慢所以实际上无需延时 */ } unsigned char CH375_RD_DAT_PORT() {  /* 从CH375的数据端口读出数据,周期不小于1.5uS,如果单片机较快则延时 */         delay1us();  /* 因为MCS51单片机较慢所以实际上无需延时 */         return( CH375_DAT_PORT ); } /* 等待CH375中断并获取状态 */ unsigned char mWaitInterrupt() {  /* 主机端等待操作完成, 返回操作状态 */         while( CH375_INT_WIRE );  /* 查询等待CH375操作完成中断(INT#低电平) */         CH375_WR_CMD_PORT( CMD_GET_STATUS );  /* 产生操作完成中断, 获取中断状态 */         return( CH375_RD_DAT_PORT( ) ); /*        c = CH375_RD_DAT_PORT( );   返回中断状态 */ /*        if ( c == USB_INT_DISCONNECT ) ?;   检测到USB设备断开事件 */ /*        else if ( c == USB_INT_CONNECT ) ?;   检测到USB设备连接事件 */ } /* 设置CH375为USB主机方式 */ unsigned char        mCH375Init( ) {         unsigned char        i; #ifdef        TEST_CH375_PORT         unsigned char        c;         CH375_WR_CMD_PORT( CMD_CHECK_EXIST );  /* 测试工作状态 */         CH375_WR_DAT_PORT( 0x55 );  /* 测试数据 */         c = CH375_RD_DAT_PORT( );  /* 返回数据应该是测试数据取反 */         if ( c != 0xaa ) {  /* CH375出错 */                 for ( i = 100; i != 0; i -- ) {  /* 强制数据同步 */                         CH375_WR_CMD_PORT( CMD_RESET_ALL );  /* CH375执行硬件复位 */                         c = CH375_RD_DAT_PORT( );  /* 延时 */                 }                 mDelaymS( 50 );  /* 延时至少30mS */         }  详情 回复 发表于 2009-10-10 11:56
点赞 关注

回复
举报

86

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
官方网站上有很全面的资料啊!
http://winchiphead.com/download/index.htm
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
o xuexi
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

4
 
tong xuexi
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 
http://www.ilib.cn/A-zdhyb200502011.html
来这里,肯定有,给我分吧
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

6
 
做过,给你参考一下
void CH375_WR_CMD_PORT( unsigned char cmd ) {  /* 向CH375的命令端口写入命令,周期不小于4uS,如果单片机较快则延时 */
        delay2us();
        CH375_CMD_PORT=cmd;
        delay2us();
}

void CH375_WR_DAT_PORT( unsigned char dat ) {  /* 向CH375的数据端口写入数据,周期不小于1.5uS,如果单片机较快则延时 */
        CH375_DAT_PORT=dat;
        delay1us();  /* 因为MCS51单片机较慢所以实际上无需延时 */
}

unsigned char CH375_RD_DAT_PORT() {  /* 从CH375的数据端口读出数据,周期不小于1.5uS,如果单片机较快则延时 */
        delay1us();  /* 因为MCS51单片机较慢所以实际上无需延时 */
        return( CH375_DAT_PORT );
}

/* 等待CH375中断并获取状态 */
unsigned char mWaitInterrupt() {  /* 主机端等待操作完成, 返回操作状态 */
        while( CH375_INT_WIRE );  /* 查询等待CH375操作完成中断(INT#低电平) */
        CH375_WR_CMD_PORT( CMD_GET_STATUS );  /* 产生操作完成中断, 获取中断状态 */
        return( CH375_RD_DAT_PORT( ) );
/*        c = CH375_RD_DAT_PORT( );   返回中断状态 */
/*        if ( c == USB_INT_DISCONNECT ) ?;   检测到USB设备断开事件 */
/*        else if ( c == USB_INT_CONNECT ) ?;   检测到USB设备连接事件 */
}

/* 设置CH375为USB主机方式 */
unsigned char        mCH375Init( )
{
        unsigned char        i;
#ifdef        TEST_CH375_PORT
        unsigned char        c;
        CH375_WR_CMD_PORT( CMD_CHECK_EXIST );  /* 测试工作状态 */
        CH375_WR_DAT_PORT( 0x55 );  /* 测试数据 */
        c = CH375_RD_DAT_PORT( );  /* 返回数据应该是测试数据取反 */
        if ( c != 0xaa ) {  /* CH375出错 */
                for ( i = 100; i != 0; i -- ) {  /* 强制数据同步 */
                        CH375_WR_CMD_PORT( CMD_RESET_ALL );  /* CH375执行硬件复位 */
                        c = CH375_RD_DAT_PORT( );  /* 延时 */
                }
                mDelaymS( 50 );  /* 延时至少30mS */
        }
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表