你好,我現(xiàn)在作了一塊板子,它的連接是這樣子的。 CH341的D0-D7連接CH421的XD0-XD7,加4.7k的上拉排阻; CH341的A0連接CH421的XA0,加4.7k上拉電阻; CH341的RD#連接CH421的XRD,加4.7k的上拉電阻; CH341的WR#連接CH421的XWR,加4.7k上拉電阻; CH421的XALE和XCS接地。 然后又用一塊8051與CH421連接: CH421的YD0-YD7連接8051的AD0-AD7,加上拉排阻; CH421的YWR連接8051的WR; CH421的YRD連接8051的RD; CH421的YCS連接8051的P2.5/A13; CH421的YA0連接8051的T1/P3.5; 我用MEMWriteAddr0寫入地址,MEMWriteAddr1寫入數(shù)據(jù),8051自動(dòng)循環(huán)從CH421讀取數(shù)據(jù),在將讀到的數(shù)據(jù)原封不動(dòng)的將數(shù)據(jù)傳回給CH421,并且讀取的地址與寫入的地址是一樣的。我再?gòu)腗EMWriteAddr0寫入地址,MEMReadAddr1讀取數(shù)據(jù)。 現(xiàn)在碰到兩個(gè)問(wèn)題(以下所有值為十六進(jìn)制): 1、我從CH341端向地址“3F”寫入數(shù)據(jù)“3F”,其他地址的數(shù)據(jù)為非“FF”的任意值(而后不再變動(dòng)數(shù)據(jù),只是讀取),再多次讀取全部地址數(shù)據(jù)時(shí),除3F地址的數(shù)據(jù),有幾個(gè)地址(不一定)讀出來(lái)的數(shù)據(jù)會(huì)跳動(dòng)變化,大多變成“FF”,有時(shí)又正常,00地址讀出的數(shù)據(jù)總是會(huì)變化,大多變成“FF”。如果再?gòu)腃H341端將地址“3F”的數(shù)據(jù)改成非“FF”與“3F”的值,再讀取任何一地址的數(shù)據(jù)就正常了(與原本輸入的值相等,可見8051向CH421寫入的值時(shí)并沒有出錯(cuò),只是用CH341讀取后顯示在電腦上就錯(cuò)了)。剛開始在連接CH341的D0-D7與CH421的XD0-XD7間沒有接上拉4.7k排阻時(shí),有很多地址的址會(huì)變化,加上排阻有,有較少地址的值會(huì)變化,大多只有地址“00”的值會(huì)變化。若在地址“3F”數(shù)據(jù)為“3F”時(shí),改變?nèi)我獾刂返臄?shù)據(jù),那個(gè)數(shù)據(jù)值(Y)只要超過(guò)某值(X),那個(gè)數(shù)據(jù)將被自動(dòng)降低,低于X的值(Z)。不同地址的X值不同。若,將地址“3F”的數(shù)據(jù)數(shù)據(jù)改成非“FF”與“3F”的值,那個(gè)改動(dòng)數(shù)據(jù)的地址的數(shù)據(jù)值為Z而非Y(說(shuō)明,此期間,無(wú)法從CH341正常寫入數(shù)據(jù))。 2、我從CH341端向任意地址寫入大于“F9”的數(shù)據(jù),其他地址數(shù)據(jù)為小于的等于“F9”的任意值(而后不再變動(dòng)數(shù)據(jù),只是讀?。?,在多次讀取全部地址數(shù)據(jù)時(shí),數(shù)據(jù)值小于“FA”的有些地址讀出的數(shù)據(jù)值為“FF”而非小于“FA”的的值,數(shù)據(jù)為大于“F9”的地址的往下一個(gè)地址的數(shù)據(jù)大多會(huì)被讀成“FF”。如果寫入數(shù)據(jù)的值為“FF”,大部分地址的數(shù)據(jù)會(huì)被讀成“FF”,若將那個(gè)數(shù)據(jù)值大于“F9”的地址的數(shù)據(jù)改為小于“FA”的值,全部地址說(shuō)讀取的數(shù)據(jù)將恢復(fù)正常(可見8051向CH421寫入的值時(shí)并沒有出錯(cuò),只是用CH341讀取后顯示在電腦上就錯(cuò)了)。CH341的D0-D7與CH421的XD0-XD7間加不加排阻的情形一樣。地址“00” 的數(shù)據(jù)若大于“F5”將出現(xiàn)上述情況。

已經(jīng)研究了好幾天了,還是沒有解決問(wèn)題,望貴公司多多幫忙。


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634