本人用Motorola單片機(jī)MC9S12D64和CH375A通信,調(diào)底層通信總是通不過(guò)。 有沒(méi)有人能夠指點(diǎn)一下。單片機(jī)采用模擬并口時(shí)序,三個(gè)讀寫子函數(shù)如下: void xWriteCH375Cmd( UINT8 mCmd ) /* 外部定義的被CH375程序庫(kù)調(diào)用的子程序,向CH375寫命令 */ { mDelay1uS( ); mDelay1uS( ); /* 至少延時(shí)2uS */ CS_HOST=0; A0=1; DDRA=0xFF; PORTA=mCmd; WR=0; DDRA=0xFF; WR=1; CS_HOST=1; DDRA=0x00; mDelay1uS( ); mDelay1uS( ); /* 至少延時(shí)2uS */ }
void xWriteCH375Data( UINT8 mData ) /* 外部定義的被CH375程序庫(kù)調(diào)用的子程序,向CH375寫數(shù)據(jù) */ { CS_HOST=0; A0=0; DDRA=0xFF; PORTA=mData; WR=0; DDRA=0xFF; WR=1; A0=1; CS_HOST=1; DDRA=0x00; mDelay1uS( ); /* 至少延時(shí)1.5uS */ }
UINT8 xReadCH375Data( ) /* 外部定義的被CH375程序庫(kù)調(diào)用的子程序,從CH375讀數(shù)據(jù),最小周期為1.5uS,否則之前延時(shí)1.5uS */ { UINT8 mData; mDelay1uS( ); /* 至少延時(shí)1.5uS */ CS_HOST=0; A0=0; DDRA=0x00; RD=0; DDRA=0x00; mData=PORTA; RD=1; A0=1; CS_HOST=1; return(mData); }
測(cè)試底層通信如下: unsigned char TEST_CH375_PORT( ) { unsigned char c,i; xWriteCH375Cmd( CMD_CHECK_EXIST ); xWriteCH375Data( 0x55 ); c =xReadCH375Data( ); if ( c != 0xaa ) { for ( i = 100; i != 0; i -- ) { xWriteCH375Cmd( CMD_RESET_ALL ); c = xReadCH375Data( ); } mDelaymS(30); } return c; }