求助(CH376實(shí)現(xiàn)SD卡文件管理)

目前情況如下: 用的是CH376評(píng)估版,本實(shí)驗(yàn)采用PIC24FJ128GA010單片機(jī),用模擬并口的方式與CH376硬件鏈接,調(diào)試時(shí),只鏈接了D0-D7、A0、RD#、WR#、CS#以及GND,RST、INT沒連懸空, 測(cè)試單片機(jī)與CH376連接時(shí)一直通不過, xWriteCH376Cmd( CMD11_CHECK_EXIST ); /* 測(cè)試單片機(jī)與CH376之間的通訊接口 */ xWriteCH376Data( 0x65 ); res = xReadCH376Data( ); 程序運(yùn)行到這里返回值還是 0x65, CH376是晶振起振了的。 還有就是例程里 void xWriteCH376Cmd( UINT8 mCmd ) /* 向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_DATA_DAT_OUT( mCmd ); /* 向CH376的并口輸出數(shù)據(jù) */ CH376_DATA_DIR_OUT( ); /* 設(shè)置并口方向?yàn)檩敵?*/ 時(shí)序是不是有問題? 應(yīng)該先將方向設(shè)為輸出,再輸出數(shù)據(jù)吧?為何如此?

把寫函數(shù)的寫信號(hào)修改下,把延時(shí)加長(zhǎng)點(diǎn),先輸出數(shù)據(jù)在設(shè)置方向沒問題的,只要你單片機(jī)可以把這個(gè)數(shù)據(jù)輸出來就沒問題 void xWriteCH376Cmd( UINT8 mCmd ) /* 向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_WR = 0; /* 輸出有效寫控制信號(hào), 寫CH376芯片的命令端口 */ CH376_WR = 0; /* 輸出有效寫控制信號(hào), 寫CH376芯片的命令端口 */ 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)查詢代替 */ }


不是這里的問題,我采用的晶振是8Mhz 時(shí)序上都修改過,能夠滿足要求, 1、 CH376 INT一直為高,RST一直為低的狀態(tài),且晶振已經(jīng)起振,是否這樣情況可以確定CH376這邊是沒有問題的? 2、 單片機(jī)這邊連接CH376D0-D7的口還并連了一LCD的數(shù)據(jù)線。目前是將CH376的片選直接接GND,單片機(jī)的數(shù)據(jù)輸出是正常的,而讀不到CH376上的數(shù)據(jù), 輸出0x65,讀到的還是0x65。 是硬件上的原因嗎?


1.說明CH376是正常工作的。 2.CH376和LCD共用數(shù)據(jù)線,那么在同一時(shí)刻只能對(duì)一個(gè)器件進(jìn)行操作 3.單片機(jī)的端口配置是否正確?


#define CH376_DATA_DAT_OUT( d ) { CH376_DB0_DB7 = d; } /* 向并口輸出數(shù)據(jù) */ #define CH376_DATA_DAT_IN( ) ( CH376_DB0_DB7 ) /* 從并口輸入數(shù)據(jù) */ #define CH376_DATA_DIR_OUT( ) {CH376_DB0_DB7_TRIS = 0x00;} /* 設(shè)置并口方向?yàn)檩敵?*/ #define CH376_DATA_DIR_IN( ) { CH376_DB0_DB7_TRIS = 0xFF; } /* 設(shè)置并口方向?yàn)檩斎?*/

#define CH376_INT_WIRE INT0 /* 假定CH376的INT#引腳,如果未連接那么也可以通過查詢狀態(tài)端口實(shí)現(xiàn) */

void CH376_PORT_INIT( void ) /* 由于使用通用I/O模擬并口讀寫時(shí)序,所以進(jìn)行初始化 */ { CH376_WR_TRIS = 0; //將端口方向配置為輸出 CH376_RD_TRIS = 0; //將端口方向配置為輸出 CH376_A0_TRIS = 0;//將端口方向配置為輸出 CH376_CS_TRIS = 0; //將端口方向配置為輸出 // CH376_RESET_TRIS = 0; CH376_DATA_DIR_IN( ); } 這是端口方向配置,應(yīng)該是這樣配置吧。。 目前將LCD的供電斷開,且控制程序屏蔽,結(jié)果還是一樣沒有連接上CH376, 還有就是CH376與單片機(jī)的連接線一共可能有20CM,可能是因?yàn)檫@個(gè)的原因嗎?


CH376的RST引腳對(duì)電源接一個(gè)104的電容,讀的數(shù)據(jù)怎么會(huì)和輸入數(shù)據(jù)一樣呢,好像讀的不是單片機(jī)引腳上的狀態(tài)。


我換用 SPI模式測(cè)試了一下, 還是不行,返回值是0XFF。 對(duì)了 你提醒了我,我確實(shí)是讀的鎖存器的值,而不是引腳狀態(tài),我再去修改一下測(cè)試。


說明一下,找到原因了,是因?yàn)樽约憾丝谂渲玫膯栴},PIC里端口數(shù)據(jù)應(yīng)該讀PORT值,而不是讀LAT值,我這里搞錯(cuò)了,所以才會(huì)出現(xiàn)上面的問題, 感謝 _study_ { M }, hcn { M } 兩位的配合以及幫助。


需要實(shí)現(xiàn)功能如下: 將采集數(shù)據(jù)通過USB接口芯片CH376傳送給PC機(jī),相關(guān)例程和資料有嗎?


CH376做設(shè)備,與CH372完全兼容,資料和例程參考CH372 參考資料:CH372DS1.PDF,CH372EVT.ZIP


單片機(jī)有辦法知道 CH376 是否鏈接上了 PC機(jī),如何實(shí)現(xiàn)?


我這個(gè)用的是SPI模式,,發(fā)送的是 0X06號(hào)命令進(jìn)行測(cè)試,結(jié)果返回 的全是0xff


說明SPI時(shí)序有問題或者硬件問題。 查看25腳是否為低電平。 檢查是否在SPI模式下。 SPI模式是否符合?頻率是否在CH376的范圍之內(nèi)?


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

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