我用375V,庫5的模擬總線模式。 執(zhí)行CMD_CHECK_EXIST命令時(shí)總是不能讀到取反的數(shù)據(jù),只能讀到0xFF,這是我送完測(cè)試數(shù)據(jù)后給總線置的,不知道是不是芯片沒有響應(yīng)我的命令呢。但是如果我執(zhí)行RESET_ALL命令,375可以完成復(fù)位,我是通過它的復(fù)位輸出引腳觀察到的,也就是說375接受到命令并完成了軟件復(fù)位,說明我的硬件應(yīng)該沒問題,請(qǐng)哪位大俠指教一二。 我的讀寫時(shí)序是按照按照命令數(shù)據(jù)間2uS,數(shù)據(jù)數(shù)據(jù)間2uS編的代碼。MCU是C8051F120,25M。
測(cè)試命令和接受數(shù)據(jù)的代碼如下:
char mData;
//寫命令 mDelaymS(3); //延時(shí)1uS P3 = 0x06; //向CH375的并口輸出數(shù)據(jù),測(cè)試命令 CH375_A0 = 1; //寫命令 nop_(); CH375_WR = 0; //輸出有效寫控制信號(hào), 寫CH375芯片的命令端口 _nop_(); //延時(shí),CH375要求讀寫脈沖寬度大于100nS _nop_(); _nop_(); _nop_(); CH375_WR = 1; //輸出無效的控制信號(hào), 完成操作CH375芯片 _nop_(); CH375_A0 = 0; P3 = 0xFF; //禁止數(shù)據(jù)輸出 mDelay1_2uS( ); //延時(shí)2uS
//寫數(shù)據(jù) P3 = 0x57; //向CH375的并口輸出數(shù)據(jù),測(cè)試數(shù)據(jù) CH375_A0 = 0; _nop_(); //延時(shí)一個(gè)機(jī)器周期 CH375_WR = 0; /* 輸出有效寫控制信號(hào), 寫CH375芯片的數(shù)據(jù)端口 */ _nop_(); //延時(shí),CH375要求讀寫脈沖寬度大于100nS _nop_(); _nop_(); _nop_(); CH375_WR = 1; /* 輸出無效的控制信號(hào), 完成操作CH375芯片 */ P3 = 0xFF; /* 禁止數(shù)據(jù)輸出 */
//讀返回?cái)?shù)據(jù) mDelay1_2uS( ); //至少延時(shí)2uS P3MDOUT = 0x00;P3 = 0xFF; //將P3置為輸入 CH375_A0 = 0; //讀數(shù)據(jù) _nop_(); CH375_RD = 0; //輸出有效寫控制信號(hào), 讀CH375芯片的數(shù)據(jù)端口 mData = P3; //從CH375的并口輸入數(shù)據(jù) _nop_(); //延時(shí),CH375要求讀寫脈沖寬度大于100nS _nop_(); _nop_(); _nop_(); _nop_(); CH375_RD = 1; // 輸出無效的控制信號(hào), 完成操作CH375芯片 P3MDOUT = 0xFF; //將P3置為輸出
我讀到FF,讀不到A8。