關(guān)于CH375的問題

我初始化CH375的返回值總是0X81,在初始化之前也將CH375復(fù)位了(將RSTI引腳加高實現(xiàn))。我使用的是并口連接電路,不知如何解決,謝謝

使用的初始化程序是調(diào)用的貴公司的庫,我用的是AVR單片機(jī)


庫初始化返回0X81的話,說明你的硬件上還存在問題。你先檢查一下晶振是不是正常起振了(可用示波器觀察波形),CH375芯片是不是正常復(fù)位了(可查看25腳,26腳電平,正常復(fù)位的話25腳應(yīng)該為低電平,26腳應(yīng)該為高電平),此外仔細(xì)對照我們說明文檔上的電路圖檢查你的硬件連線,如工作在并口方式下TXD沒有接地等。


我用示波器看了,在RSTI為高電平的時候25為高,26為低;在RSTI為低電平時25為低,26為高。晶振也是其振的。硬件方面:TXD也接地了,除了2號腳的0.47U電容沒接外,其他的CH375的周邊電路是和[CH375DS1。PDF]上的并口連接是一樣的。就是不知道什么原因,很是郁悶。。。


先做測試命令,只有測試命令通過之后,才能正常的操作375芯片


現(xiàn)在又有問題了,程序初始化部分已經(jīng)通過。但現(xiàn)在我要打開U盤里的一個文件,返回值是0x23退出。我用的是你們的AVR庫函數(shù)和例程,只修改了控制端口和數(shù)據(jù)端口


查信息得知#define CMD_UNLOCK_USB 0x23 /* 設(shè)備方式: 釋放當(dāng)前USB緩沖區(qū) */ 但讀寫U盤CH375應(yīng)該是初始化為主機(jī)狀態(tài)吧,是不是你們提供的例程我們還需要修改什么東西啊


你用的是CH375LIB/FILELIBB的例子程序,只要根據(jù)你的硬件連接改下定義就可以了


提供的例子程序,可能客戶需要修改的就是三個接口子函數(shù)以及中斷線的定義,如果DISK-READY函數(shù)通過了的話,那么,打開文件也應(yīng)該沒有問題的,你是用仿真器調(diào)試的嗎?如果是的話,那么,建議你將你的仿真器的速度調(diào)到最快,還有就是三個讀寫子函數(shù)的速度上面也要盡量的快,如果可以的話,你可以將三個讀寫子函數(shù)帖出來看下,或者發(fā)到tech@wch.cn這個郵箱


#define CH375_A0 2 #define CH375_CS 5 #define CH375_WR 4 #define CH375_INT 6 #define CH375_RD 7

void xWriteCH375Cmd( UINT8 mCmd ) /* 外部定義的被CH375程序庫調(diào)用的子程序,向CH375寫命令 */ { mDelay1uS( ); mDelay1uS( ); /* 至少延時1uS */ /* *(volatile unsigned char *)CH375_CMD_PORT_ADDR = mCmd; 通過并口直接讀寫CH375而非普通I/O模擬 */ // PORTB |= 0x08; /* 輸出A0=1 */ PORTE |= (1< PORTA = mCmd; /* 向CH375的并口輸出數(shù)據(jù) */ DDRA = 0xFF; /* 并口D0-D7輸出 */ // PORTB &= 0xF9; /* 輸出有效寫控制信號, 寫CH375芯片的命令端口, A0=1; CS=0; WR=0; RD=1; */ DDRA = 0xFF; /* 該操作無意義,僅作延時,CH375要求讀寫脈沖寬度大于100nS */ PORTE |= (1< PORTE &=~(1< PORTE &=~(1< NOP(); NOP(); // PORTB |= 0x07; /* 輸出無效的控制信號, 完成操作CH375芯片, A0=1; CS=1; WR=1; RD=1; */ PORTE |= (1< DDRA = 0x00; /* 禁止數(shù)據(jù)輸出 */ // PORTB &= 0xF7; /* 輸出A0=0; 可選操作 */ PORTE &=~(1< mDelay1uS( ); mDelay1uS( ); /* 至少延時2uS */ }

void xWriteCH375Data( UINT8 mData ) /* 外部定義的被CH375程序庫調(diào)用的子程序,向CH375寫數(shù)據(jù) */ { /* *(volatile unsigned char *)CH375_DAT_PORT_ADDR = mData; 通過并口直接讀寫CH375而非普通I/O模擬 */ PORTA = mData; /* 向CH375的并口輸出數(shù)據(jù) */ DDRA = 0xFF; /* 并口D0-D7輸出 */ // PORTB &= 0xF1; /* 輸出有效寫控制信號, 寫CH375芯片的數(shù)據(jù)端口, A0=0; CS=0; WR=0; RD=1; */ PORTE &=~(1< PORTE &=~(1< PORTE &=~(1< PORTE |= (1< DDRA = 0xFF; /* 該操作無意義,僅作延時,CH375要求讀寫脈沖寬度大于100nS */ NOP(); // PORTB |= 0x07; /* 輸出無效的控制信號, 完成操作CH375芯片, A0=0; CS=1; WR=1; RD=1; */ PORTE &=~(1< PORTE |= (1< DDRA = 0x00; /* 禁止數(shù)據(jù)輸出 */ mDelay1uS( ); /* 至少延時1.2uS */ mDelay1uS( ); }

UINT8 xReadCH375Data( void ) /* 外部定義的被CH375程序庫調(diào)用的子程序,從CH375讀數(shù)據(jù) */ { UINT8 mData; /* mData = *(volatile unsigned char *)CH375_DAT_PORT_ADDR; 通過并口直接讀寫CH375而非普通I/O模擬 */ mDelay1uS( ); /* 至少延時1.2uS */ mDelay1uS( ); DDRA = 0x00; /* 數(shù)據(jù)輸入 */ // PORTB &= 0xF2; /* 輸出有效讀控制信號, 讀CH375芯片的數(shù)據(jù)端口, A0=0; CS=0; WR=1; RD=0; */ PORTE |= (1< PORTE &=~(1< PORTE &=~(1< PORTE &=~(1< DDRA = 0x00; /* 該操作無意義,僅作延時,CH375要求讀寫脈沖寬度大于100nS */ mData = PINA; /* 從CH375的并口PA輸入數(shù)據(jù) */ // PORTB |= 0x07; /* 輸出無效的控制信號, 完成操作CH375芯片, A0=0; CS=1; WR=1; RD=1; */ PORTE &=~(1< PORTE |= (1< return( mData ); }


以上是三個讀寫函數(shù)的定義,請指教,謝謝


CH375DiskConnect( );這個是通過了,但是在這個地方CH375DiskReady( )沒有通過。5次循環(huán)以后進(jìn)入下面的程序,調(diào)用CH375FileOpen( )它的返回值是0x23


不是仿真調(diào)試,在硬件電路上直接加載程序的。各個引腳的連接應(yīng)該是沒問題的,我已經(jīng)查了很多遍 在上面hcn工程師有提到中斷線的問題,我想請問中斷線是那個定義?我一直沒有注意中斷線這個概念和與之對應(yīng)的程序,謝謝指導(dǎo)


#define CH375_INT_WIRE ( PINB & 0x10 ) /* PINB.4, CH375的中斷線INT#引腳,連接CH375的INT#引腳,用于查詢中斷狀態(tài) */


通過了,謝謝,是中斷線沒有修改


能提供一個CH375寫U盤追加數(shù)據(jù)的程序嗎?基于CH375HFB.A庫的應(yīng)用的程序。現(xiàn)在我們急需相關(guān)資料,謝謝


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频