找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4088|回复: 2
收起左侧

CH376 USB接口芯片的编程指南与中文开发资料两则下载

[复制链接]
ID:344350 发表于 2018-6-4 01:13 | 显示全部楼层 |阅读模式
开发指南和中文资料
0.png 0.png
1、概述
        CH376 是文件管理控制芯片,用于单片机系统读写 U 盘或者 SD 卡中的文件。
    同时可以使用 CH376 操作 USB 键盘鼠标,以及打印机等各种 USB 设备。该文档主要是介绍 客户
端软件如何与 CH376 的固件程序通讯,实现对 U 盘以及SD卡的文件操作。
       CH376 支持三种通讯接口:8 位并口,SPI 接口或者异步串口;

2、硬件抽象层
2.1. 8 位并口        
并口信号线包括:位双向数据总线 D7~D0、读选通输入引脚 RD#、写选通输入引脚 WR#、片选
输入引脚 PCS#、中断输出引脚 INT#以及地址输入引脚 A0 对于类似 Intel 并口时序的单片机,
CH376 芯片的 RD#引脚和 WR#引脚可以分别连接到单片机的读选通输出引脚和写选通输出引脚。对
于类似 Motorola 并口时序的单片机,CH376 芯片的 RD#引脚应该接低电平,并且 WR#引脚连接到单
片机的读写方向输出引脚 R/-W。
并口读写时序如下:

  1. /* 往 CH376命令端口写入命令 */
  2. void    xWriteCH376Cmd( UINT8 mCmd )  /* 向CH376 写命令 */
  3. {   
  4. /*  (*(volatile unsigned char xdata *)0xBDF1) = mCmd ;  
  5. */ /* 通过51 单片外部并行总线接口操作向 CH376 写入命令 */
  6. CH376_DATA_DAT_OUT( mCmd );  /* 向 CH376 的并口输出数据 */
  7. CH376_DATA_DIR_OUT( );  /* 设置并口方向为输出 */
  8. CH376_A0 = 1;
  9. CH376_CS = 0;
  10. CH376_WR = 0;  /* 输出有效写控制信号, 写CH376 芯片的命令端口 */
  11. //CH376_CS = 0;  /* 该操作无意义,仅作延时,CH376 要求读写脉冲宽度大于 40nS */   
  12. CH376_WR = 1;  /* 输出无效的控制信号, 完成操作 CH376 芯片 */
  13. CH376_CS = 1;
  14. CH376_A0 = 0;
  15. CH376_DATA_DIR_IN( );  /* 禁止数据输出 */
  16. /*mDelay0_5uS( ); mDelay0_5uS( ); mDelay0_5uS( );*/  
  17. /* 延时 1.5uS 确保读写周期大于 1.5uS,或者用状态查询代替 */
  18. }   
  19.          
  20. /* 往 CH376数据端口写入数据 */
  21. void    xWriteCH376Data( UINT8 mData )  /* 向 CH376 写数据 */
  22. {   
  23. /*  (*(volatile unsigned char xdata *)0xBCF0) = mData ; */ /* 通过 51 单片机外
  24. 部并行总线接口操作向 CH376 写入数据 */
  25. CH376_DATA_DAT_OUT( mData );  /* 向 CH376 的并口输出数据 */
  26. CH376_DATA_DIR_OUT( );        /* 设置并口方向为输出 */   
  27. CH376_A0 = 0;
  28. CH376_CS = 0;

  29. CH376_WR = 0;  /* 输出有效写控制信号, 写CH376 芯片的数据端口 */
  30. //CH376_CS = 0;  /* 该操作无意义,仅作延时,CH376 要求读写脉冲宽度大于 40nS */
  31. CH376_WR = 1;  /* 输出无效的控制信号, 完成操作 CH376 芯片 */
  32. CH376_CS = 1;
  33. CH376_DATA_DIR_IN( );  /* 禁止数据输出 */
  34. //mDelay0_5uS( );        /* 确保读写周期大于 0.6uS */
  35. }
  36.         
  37. /* 从 CH376数据端口读取数据 */
  38. UINT8  xReadCH376Data( void )  /* 从 CH376 读数据 */
  39. {
  40. UINT8    mData;
  41. /*  mData  = (*(volatile unsigned char xdata *)0xBCF0) ; */ /* 通过 51 单片机外
  42. 部并行总线接口操作从 CH376 读取数据 */
  43. //mDelay0_5uS( );      /* 确保读写周期大于 0.6uS */
  44. CH376_DATA_DIR_IN( );  /* 设置并口方向为输入 */
  45. CH376_A0 = 0;
  46. CH376_CS = 0;
  47. CH376_RD = 0;  /* 输出有效读控制信号, 读CH376 芯片的数据端口 */
  48. CH376_CS = 0;  /* 该操作无意义,仅作延时,CH376 要求读写脉冲宽度大于 40nS*/
  49. mData = CH376_DATA_DAT_IN( );/* 从 CH376 的并口输入数据 */
  50. CH376_RD = 1;                /* 输出无效的控制信号, 完成操作 CH376 芯片 */
  51. CH376_CS = 1;
  52. return( mData );
  53. }

  54. /* 从 CH376命令端口读取状态 */
  55. UINT8    xReadCH376Status( void )  /* 从 CH376 读状态,仅用于并口方式 */
  56. {
  57. UINT8  mData;
  58. /*  mData  = (*(volatile unsigned char xdata *)0xBDF1) ; */ /* 通过 51 单片机外
  59. 部并行总线接口操作从 CH376 读取状态 */
  60. CH376_DATA_DIR_IN( );  /* 设置并口方向为输入 */
  61. CH376_A0 = 1;
  62. CH376_CS = 0;
复制代码

全部资料51hei下载地址:
CH376中文资料.pdf (5.05 MB, 下载次数: 51)
CH376编程指南.pdf (261.02 KB, 下载次数: 56)

评分

参与人数 1黑币 +10 收起 理由
多德 + 10 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:239620 发表于 2019-10-29 17:19 | 显示全部楼层
不错,下载下来看看
回复

使用道具 举报

ID:1119567 发表于 2024-5-24 17:13 | 显示全部楼层
命令端口和数据端口怎么求
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表