我是使用dsp芯片vc33與ch372v直接相連,沒(méi)有經(jīng)過(guò)地址譯碼,給的程序例子中的 CH375_CMD_PORT EQU 0BDF1H; 它是經(jīng)過(guò)地址譯碼,后使WR=1,CS=0,RD=1,A0=0,是這樣的嗎? 我的程序是不是應(yīng)該分別使WR=1,CS=0,RD=1,A0=0,就行了?其中為使A0=0,只要滿足A0=0的地址就可以了? 呵呵菜鳥(niǎo)一個(gè),多多幫忙~~~~~~~[Emot]5[/Emot]
你如果采用總線方式的話,其實(shí)命令口和數(shù)據(jù)口的地址只與片選CS#和A0有關(guān),當(dāng)CS#=0,A0=1時(shí)為命令端口,當(dāng)CS#=0,A0=0時(shí)為數(shù)據(jù)端口。不用考慮WR、RD信號(hào)線。具體根據(jù)你的連線來(lái)計(jì)算這兩個(gè)I/O地址。 你也可以采用模擬并口來(lái)操作,這樣的話得你自己通過(guò)控制A0、WR、RD、CS信號(hào)線來(lái)模擬并口讀寫(xiě)時(shí)序。
才接觸這個(gè),呵呵,總是怕出錯(cuò)。我的連接方式是ch372v的d0~d7與dsp的d0~d7分別相連,ch372v的a0與 dsp的a0相連,dsp的r/w分成兩路(其中一路接個(gè)非門(mén)),分別與ch372v的rd、wr相連,ch372v的cs與dsp的cs連接。 我理解你的意思是:控制wr=0,rd=1,通過(guò)dsp的cs選上ch372v的cs(cs#=0),這樣只要滿足a0=1的地址就可以作為命令端口地址了,數(shù)據(jù)端口地址也是這個(gè)邏輯。 我的理解對(duì)嗎?有不對(duì)的地方請(qǐng)仔細(xì)說(shuō)明一下~~~~
我的理解對(duì)嗎?請(qǐng)大俠們指教~~~~
你直接掛在總線上,只要計(jì)算出命令口地址和數(shù)據(jù)口地址就可以了,再向指定的地址送數(shù)據(jù)和命令.不需要控制wr=0,rd=1的.
你的意思是把WR RD也接在地址總線上,然后根據(jù)它們的邏輯要求分別算出命令口地址和數(shù)據(jù)口地址,是嗎?
將CH372的RD接在dsp的RD,WR接DSP的WR,算命令口地址和數(shù)據(jù)口地址是根據(jù)CS和A0來(lái)計(jì)算的.
例如CH375評(píng)估板的地址計(jì)算方法為: 按測(cè)試電路的接法,P2.1(A9)接CH375片選引腳,P2.0(A8)接CH375的A0腳,因此: 51地址引腳: A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 A02 A01 A00 命令端口可以是: x x x x x x 0 1 x x x x x x x x (Bin) 數(shù)據(jù)端口: x x x x x x 0 0 x x x x x x x x (Bin) 滿足上述組合的端口地址有N種之多,但是命令端口只能是 X1XX,X5XX,X9XX,XDXX (Hex) 數(shù)據(jù)端口只能是:X0XX,X4XX,X8XX,XCXX (Hex)。
要是CH372的信號(hào)線不是掛在dsp的總線上,那只能用模擬并口讀寫(xiě)時(shí)序
明白了,非常謝謝大俠們的幫助,贊一下~~~~~~~