我是使用dsp芯片vc33与ch372v直接相连,没有经过地址译码,给的程序例子中的 CH375_CMD_PORT EQU 0BDF1H; 它是经过地址译码,后使WR=1,CS=0,RD=1,A0=0,是这样的吗? 我的程序是不是应该分别使WR=1,CS=0,RD=1,A0=0,就行了?其中为使A0=0,只要满足A0=0的地址就可以了? 呵呵菜鸟一个,多多帮忙~~~~~~~[Emot]5[/Emot]
你如果采用总线方式的话,其实命令口和数据口的地址只与片选CS#和A0有关,当CS#=0,A0=1时为命令端口,当CS#=0,A0=0时为数据端口。不用考虑WR、RD信号线。具体根据你的连线来计算这两个I/O地址。 你也可以采用模拟并口来操作,这样的话得你自己通过控制A0、WR、RD、CS信号线来模拟并口读写时序。
才接触这个,呵呵,总是怕出错。我的连接方式是ch372v的d0~d7与dsp的d0~d7分别相连,ch372v的a0与 dsp的a0相连,dsp的r/w分成两路(其中一路接个非门),分别与ch372v的rd、wr相连,ch372v的cs与dsp的cs连接。 我理解你的意思是:控制wr=0,rd=1,通过dsp的cs选上ch372v的cs(cs#=0),这样只要满足a0=1的地址就可以作为命令端口地址了,数据端口地址也是这个逻辑。 我的理解对吗?有不对的地方请仔细说明一下~~~~
我的理解对吗?请大侠们指教~~~~
你直接挂在总线上,只要计算出命令口地址和数据口地址就可以了,再向指定的地址送数据和命令.不需要控制wr=0,rd=1的.
你的意思是把WR RD也接在地址总线上,然后根据它们的逻辑要求分别算出命令口地址和数据口地址,是吗?
将CH372的RD接在dsp的RD,WR接DSP的WR,算命令口地址和数据口地址是根据CS和A0来计算的.
例如CH375评估板的地址计算方法为: 按测试电路的接法,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) 数据端口: x x x x x x 0 0 x x x x x x x x (Bin) 满足上述组合的端口地址有N种之多,但是命令端口只能是 X1XX,X5XX,X9XX,XDXX (Hex) 数据端口只能是:X0XX,X4XX,X8XX,XCXX (Hex)。
要是CH372的信号线不是挂在dsp的总线上,那只能用模拟并口读写时序
明白了,非常谢谢大侠们的帮助,赞一下~~~~~~~