我基于CH432做了2块PCI的接口板(调试),现在发现有块板子的(2片CH432)的寄存器 出现异常,如下:
上电后可读出各个寄存器的值,而且与说明书一致; 然而只要我往寄存器写入一个控制字(控制字和DEMO程序无误,在另一块板卡上已证实),接着去读各个寄存器时,寄存器的值都是0XFF,除LSR外(但其值为随机数);而且两片CH432Q现象一致,是否是芯片已失效?
注:芯片采用直接地址方式.
我基于CH432做了2块PCI的接口板(调试),现在发现有块板子的(2片CH432)的寄存器 出现异常,如下:
上电后可读出各个寄存器的值,而且与说明书一致; 然而只要我往寄存器写入一个控制字(控制字和DEMO程序无误,在另一块板卡上已证实),接着去读各个寄存器时,寄存器的值都是0XFF,除LSR外(但其值为随机数);而且两片CH432Q现象一致,是否是芯片已失效?
注:芯片采用直接地址方式.
请您检查一下出问题的板子上是否有虚焊,短接现象。
楼上的,出问题的板子上没有虚焊,短接现象,不过还是谢谢提醒。 今天我仔细又查了一下,发现是数据驱动芯片54245的问题.因为装配的时候有快板子(可正常读写的)装的是54F245,另一块(不可正常读写的)装的是54LS245,只不过是延迟不一样(一个是4-5ns,另一个是12ns左右),吸入抽出电流有点不一样外,其他的都是一样的,PCI芯片是CH365,54245的控制信号由读写信号经GAL产生,而且奇怪的是,当我用54LS245时,在数据线上对82C55A和8259A等器件进行编程时,都是好的,为什么单单CH432Q不行呢? 而且我翻了CH432Q的技术资料,对数据的建立和保持时间应该和82C55A类似的,而82C55A都可以正常读写,为什么CH432Q会这样呢?
我们以前也用245控制过多CPU的数据总线,都没有过这种问题的. 难道CH432Q的 "写选通WR 前的数据输入建立时间 最小值=0" 导致了这一怪现象?
可能是吧,最好在数据输入建立一段时间后再写选通。
恩. 但是数据不是在读或写选通的上升沿被读走或写入的么? 只要将地址和片选信号建立在读或写之前就应该可以了啊,数据的建立应该是没有要求的啊,只要在读或写选通的上升沿前后各建立和保留一段时间(数据有效)就可以了啊, 如果对数据的要求那么严格的话,LS245怎么做8线驱动缓冲器啊(有延时存在)?多CPU的总线又如何隔离啊?
数据的建立和选通不会同时发生,它们之间有时延,时延的长短依不同芯片有所不同。