我用c8051F020單片機(jī)+CH375來(lái)讀寫(xiě)U盤(pán),我測(cè)了一下CH375的D0-D6的腳都正常,可是D7一直是0,晶振12Mhz,14腳為5V,13腳為2.6V,芯片初始化通不過(guò)初始化程序用 UINT8 mCH375Init( ) { UINT8 i; UINT8 c; CH375_WR_CMD_PORT( CMD_CHECK_EXIST ); /* 測(cè)試工作狀態(tài) */ CH375_WR_DAT_PORT( 0x55 ); /* 測(cè)試數(shù)據(jù) */ c = CH375_RD_DAT_PORT( ); /* 返回?cái)?shù)據(jù)應(yīng)該是測(cè)試數(shù)據(jù)取反 */ if ( c != 0xaa ) { /* CH375出錯(cuò) */ for ( i = 100; i != 0; i -- ) { /* 強(qiáng)制數(shù)據(jù)同步 */ CH375_WR_CMD_PORT( CMD_RESET_ALL ); /* CH375執(zhí)行硬件復(fù)位 */ c = CH375_RD_DAT_PORT( ); /* 延時(shí) */ } mDelay100mS( ); /* 延時(shí)至少30mS */ } CH375_WR_CMD_PORT( CMD_SET_USB_MODE ); /* 設(shè)置USB工作模式 */ CH375_WR_DAT_PORT( 6 ); /* 模式代碼,自動(dòng)檢測(cè)USB設(shè)備連接 */ for ( i = 0xff; i != 0; i -- ) /* 等待操作成功,通常需要等待10uS-20uS */ if ( CH375_RD_DAT_PORT( ) == CMD_RET_SUCCESS ) break; /* 操作成功 */ if ( i != 0 ) return( 0 ); /* 操作成功 */ else return( 0xff ); /* CH375出錯(cuò),例如芯片型號(hào)錯(cuò)或者處于串口方式或者不支持 */ } 請(qǐng)好心人幫幫我吧!急!謝謝先!
你的CMD_CHECK_EXIST命令寫(xiě)的數(shù)據(jù)是0x55,那你看下返回的數(shù)據(jù)是多少啊?正常的應(yīng)該是0XAA,你的XI2.6V應(yīng)該是正常的
返回?cái)?shù)據(jù)要怎么看?。课抑恢牢矣脗€(gè)指示燈,再把程序變成如下 CH375_WR_CMD_PORT( CMD_CHECK_EXIST ); /* 測(cè)試工作狀態(tài) */ CH375_WR_DAT_PORT( 0x55 ); /* 測(cè)試數(shù)據(jù) */ c = CH375_RD_DAT_PORT( ); /* 返回?cái)?shù)據(jù)應(yīng)該是測(cè)試數(shù)據(jù)取反 */ if ( c != 0xaa ) { /* CH375出錯(cuò) */ for ( i = 100; i != 0; i -- ) { /* 強(qiáng)制數(shù)據(jù)同步 */ CH375_WR_CMD_PORT( CMD_RESET_ALL ); /* CH375執(zhí)行硬件復(fù)位 */ c = CH375_RD_DAT_PORT( ); /* 延時(shí) */ } mDelay100mS( ); /* 延時(shí)至少30mS */ } else LED_OUT_ACT( ); 燈一直沒(méi)亮。我用的是C8051020仿真器,用Silicon Laboratories IDE V1.9軟件。一直不知道左面看返回?cái)?shù)據(jù)……請(qǐng)告訴我,謝謝?。。?/p>
你那上面帶串口調(diào)試嗎? 有的話直接在c = CH375_RD_DAT_PORT( );后面加上printf("%02x ",(unsigned int)c); 直接,看返回的數(shù)據(jù)
好像沒(méi)有帶串口調(diào)試的,不知道可不可以用單獨(dú)一個(gè)串口調(diào)試工具呢?該怎么編程呢?謝謝?。。?/p>
晶振肯定沒(méi)起振,,正常情況下晶振引腳應(yīng)該是2V左右,所以先排除你的硬件故障在查程序吧
我再測(cè)了下晶振14腳為2.3v,13腳為2v,估計(jì)是剛才改動(dòng)了一些程序,這算不算起振了呢? 還有串口我看SCON0的數(shù)據(jù)是52,真不知道錯(cuò)哪里了……謝謝?。?!
假如D7一直為低那麼測(cè)試命令+55應(yīng)該返回2A才對(duì),你檢查一下是不是你的CPU將該引腳的電平控制住了.振蕩沒(méi)問(wèn)題
這樣應(yīng)該是起振了,如果不放心的話用示波器看看 你的子程序應(yīng)該沒(méi)問(wèn)題的,最好用串口工具看一下到底返回了什么數(shù)據(jù),如果返回的數(shù)據(jù)有共性,那么問(wèn)題就比較好解決了
我就是用示波器測(cè)的了。 現(xiàn)在波特率的設(shè)置也有問(wèn)題了,我用的這仿真器只提供38400,57600,115200三種,而這塊芯片則是為9600, 該怎么辦?。窟x哪個(gè)好?謝謝各位了?。。?/p>
按照手冊(cè)CH375的波特率可以修改的
你用的是模塊還是用了我們的375的芯片?
把CHECKEXIT返回的值從串口輸出,用ACCESSPORT抓下來(lái),常用的波特率都支持的