PowerPC和Dallas的时钟芯片接口设计
统定,但要保证A11=0,此时DS_RD、DS_WE、DS_CS均无效。DS1687的ALE信号在下降沿将AD0~AD7上的数据锁存作为地址,从ALE的表达式看到,ALE的下降沿正是WE的上升沿,而此时AD0~AD7上的数据也正是是指令写入的数0x55,也就是DS1687在ALE下降沿把0x55锁存作为地址。紧接着执行一条读取指令:
value=REG8(0x07160000)
应保证读操作地址的A11=1。由操作时序和逻辑表达式可知,此时
ALE=0
DS_CS=CS5
DS_RD=OE
在DS_RD(OE)的上升沿,将0x55单元处的数据锁存进MPC860的value单元。
当MPC860对DS1687进行写操作时(假设地址为0x55,写入的数据为0xaa),需要两条写指针,第一条与读DS1687操作时相同,目的是把地址写入DS1687:
REG8(0x07060000)=0x55
第二条同样是一条写指令:
REG8(0x07160000)=0xaa
但目标地址要保证A11=1,此时接口输出的信号值为:
ALE=0
DS_CS=CS5
DS_WE=WE
在DS_WE(即WE)的上升沿,将数据锁存进DS1687。
4小结
在实际使用过程中,可以将读写DS1687分别编成一个函数,简化编程。该方法不仅适合于MPC860和DS1687的接口,也适合其它的数据地址非复用的CPU和数据地址复用的外围芯片的接口。该接口设计在BNAS系统中成功使用之后,已陆续在公司其他部门得到了应用 《PowerPC和Dallas的时钟芯片接口设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/166819.html
value=REG8(0x07160000)
应保证读操作地址的A11=1。由操作时序和逻辑表达式可知,此时
ALE=0
DS_CS=CS5
DS_RD=OE
在DS_RD(OE)的上升沿,将0x55单元处的数据锁存进MPC860的value单元。
当MPC860对DS1687进行写操作时(假设地址为0x55,写入的数据为0xaa),需要两条写指针,第一条与读DS1687操作时相同,目的是把地址写入DS1687:
REG8(0x07060000)=0x55
第二条同样是一条写指令:
REG8(0x07160000)=0xaa
但目标地址要保证A11=1,此时接口输出的信号值为:
ALE=0
DS_CS=CS5
DS_WE=WE
在DS_WE(即WE)的上升沿,将数据锁存进DS1687。
4小结
在实际使用过程中,可以将读写DS1687分别编成一个函数,简化编程。该方法不仅适合于MPC860和DS1687的接口,也适合其它的数据地址非复用的CPU和数据地址复用的外围芯片的接口。该接口设计在BNAS系统中成功使用之后,已陆续在公司其他部门得到了应用 《PowerPC和Dallas的时钟芯片接口设计(第2页)》