|
開發(fā)指南和中文資料
0.png (84.32 KB, 下載次數(shù): 56)
下載附件
2018-6-4 02:25 上傳
0.png (36.06 KB, 下載次數(shù): 42)
下載附件
2018-6-4 02:25 上傳
1、概述
CH376 是文件管理控制芯片,用于單片機(jī)系統(tǒng)讀寫 U 盤或者 SD 卡中的文件。
同時(shí)可以使用 CH376 操作 USB 鍵盤鼠標(biāo),以及打印機(jī)等各種 USB 設(shè)備。該文檔主要是介紹 客戶
端軟件如何與 CH376 的固件程序通訊,實(shí)現(xiàn)對(duì) U 盤以及SD卡的文件操作。
CH376 支持三種通訊接口:8 位并口,SPI 接口或者異步串口;
2、硬件抽象層
2.1. 8 位并口
并口信號(hào)線包括:位雙向數(shù)據(jù)總線 D7~D0、讀選通輸入引腳 RD#、寫選通輸入引腳 WR#、片選
輸入引腳 PCS#、中斷輸出引腳 INT#以及地址輸入引腳 A0 對(duì)于類似 Intel 并口時(shí)序的單片機(jī),
CH376 芯片的 RD#引腳和 WR#引腳可以分別連接到單片機(jī)的讀選通輸出引腳和寫選通輸出引腳。對(duì)
于類似 Motorola 并口時(shí)序的單片機(jī),CH376 芯片的 RD#引腳應(yīng)該接低電平,并且 WR#引腳連接到單
片機(jī)的讀寫方向輸出引腳 R/-W。
并口讀寫時(shí)序如下:
- /* 往 CH376命令端口寫入命令 */
- void xWriteCH376Cmd( UINT8 mCmd ) /* 向CH376 寫命令 */
- {
- /* (*(volatile unsigned char xdata *)0xBDF1) = mCmd ;
- */ /* 通過51 單片外部并行總線接口操作向 CH376 寫入命令 */
- CH376_DATA_DAT_OUT( mCmd ); /* 向 CH376 的并口輸出數(shù)據(jù) */
- CH376_DATA_DIR_OUT( ); /* 設(shè)置并口方向?yàn)檩敵?*/
- CH376_A0 = 1;
- CH376_CS = 0;
- CH376_WR = 0; /* 輸出有效寫控制信號(hào), 寫CH376 芯片的命令端口 */
- //CH376_CS = 0; /* 該操作無意義,僅作延時(shí),CH376 要求讀寫脈沖寬度大于 40nS */
- CH376_WR = 1; /* 輸出無效的控制信號(hào), 完成操作 CH376 芯片 */
- CH376_CS = 1;
- CH376_A0 = 0;
- CH376_DATA_DIR_IN( ); /* 禁止數(shù)據(jù)輸出 */
- /*mDelay0_5uS( ); mDelay0_5uS( ); mDelay0_5uS( );*/
- /* 延時(shí) 1.5uS 確保讀寫周期大于 1.5uS,或者用狀態(tài)查詢代替 */
- }
-
- /* 往 CH376數(shù)據(jù)端口寫入數(shù)據(jù) */
- void xWriteCH376Data( UINT8 mData ) /* 向 CH376 寫數(shù)據(jù) */
- {
- /* (*(volatile unsigned char xdata *)0xBCF0) = mData ; */ /* 通過 51 單片機(jī)外
- 部并行總線接口操作向 CH376 寫入數(shù)據(jù) */
- CH376_DATA_DAT_OUT( mData ); /* 向 CH376 的并口輸出數(shù)據(jù) */
- CH376_DATA_DIR_OUT( ); /* 設(shè)置并口方向?yàn)檩敵?*/
- CH376_A0 = 0;
- CH376_CS = 0;
- CH376_WR = 0; /* 輸出有效寫控制信號(hào), 寫CH376 芯片的數(shù)據(jù)端口 */
- //CH376_CS = 0; /* 該操作無意義,僅作延時(shí),CH376 要求讀寫脈沖寬度大于 40nS */
- CH376_WR = 1; /* 輸出無效的控制信號(hào), 完成操作 CH376 芯片 */
- CH376_CS = 1;
- CH376_DATA_DIR_IN( ); /* 禁止數(shù)據(jù)輸出 */
- //mDelay0_5uS( ); /* 確保讀寫周期大于 0.6uS */
- }
-
- /* 從 CH376數(shù)據(jù)端口讀取數(shù)據(jù) */
- UINT8 xReadCH376Data( void ) /* 從 CH376 讀數(shù)據(jù) */
- {
- UINT8 mData;
- /* mData = (*(volatile unsigned char xdata *)0xBCF0) ; */ /* 通過 51 單片機(jī)外
- 部并行總線接口操作從 CH376 讀取數(shù)據(jù) */
- //mDelay0_5uS( ); /* 確保讀寫周期大于 0.6uS */
- CH376_DATA_DIR_IN( ); /* 設(shè)置并口方向?yàn)檩斎?*/
- CH376_A0 = 0;
- CH376_CS = 0;
- CH376_RD = 0; /* 輸出有效讀控制信號(hào), 讀CH376 芯片的數(shù)據(jù)端口 */
- CH376_CS = 0; /* 該操作無意義,僅作延時(shí),CH376 要求讀寫脈沖寬度大于 40nS*/
- mData = CH376_DATA_DAT_IN( );/* 從 CH376 的并口輸入數(shù)據(jù) */
- CH376_RD = 1; /* 輸出無效的控制信號(hào), 完成操作 CH376 芯片 */
- CH376_CS = 1;
- return( mData );
- }
-
- /* 從 CH376命令端口讀取狀態(tài) */
- UINT8 xReadCH376Status( void ) /* 從 CH376 讀狀態(tài),僅用于并口方式 */
- {
- UINT8 mData;
- /* mData = (*(volatile unsigned char xdata *)0xBDF1) ; */ /* 通過 51 單片機(jī)外
- 部并行總線接口操作從 CH376 讀取狀態(tài) */
- CH376_DATA_DIR_IN( ); /* 設(shè)置并口方向?yàn)檩斎?*/
- CH376_A0 = 1;
- CH376_CS = 0;
復(fù)制代碼
全部資料51hei下載地址:
CH376中文資料.pdf
(5.05 MB, 下載次數(shù): 51)
2018-6-4 01:13 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
CH376編程指南.pdf
(261.02 KB, 下載次數(shù): 56)
2018-6-4 01:13 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|