原创 st16c654调试总结

2012-4-19 15:47 2184 24 24 分类: 消费电子

其实从去年底至今年这会儿,我主要是折腾在两块板子上,一块是我自己画的跟smartfusion相对应的那块信号处理板,一块是基于powerpc的那块载板。两块板子的共同特点是都卡在st16c654这个芯片上。还是分开来说吧。

 

我自己的那块信号板,可以说在跟st16c654的原理连接上是完全错误的:

 

我选的st16c654是sop64封装的,这样它就只能是intel(16)mode 下,而我是把smartfusion的EMC直接连接在st16c654的引脚上的,这样首先没有写使能信号,其次通道使能cs信号相对于地址没有延迟,再次EMC是32位的,这样地址总线上的A0,A1是没法用的,最后,由于不熟悉芯片,直接把reset信号接到FPGA上,其实这样也可以,但是最好还是应该加一个RC复位信号,这样有一个短暂的脉冲,整个片子才开始启动。

 

后来经过无数飞线之后,终于调通。但是在芯片厂商的建议是自己在smartfusion芯片内部的FPGA部分做一个总线控制器,通过APB3总线来驱动st16c654芯片,这样会更好更灵活一些。而我则考虑到由于每个芯片均要4个通道使能信号,则两块芯片共需8个,显然如果用MSS内部的EMC总线,它只有2个片选段,这是无论如何都不够用的,所以只有自己写一个总线控制器,并参考官方给出的示例,写一个桥,把该控制器与APB3总线连接起来。后来用ModelSim进行仿真后,才完成一个初步,还需要进行更深的测试。

 

至于那块加载在自己所做载板上的powerpc的板卡,虽然在该最小系统板内部跑的是Vxworks,但是由于是以download app的形式进行调试,所以与Vxworks本身倒没有太大关系。反而由于是三个人都有在上面做工作,所以同样也走了不少弯路,:

 

首先要通过CPLD进行译码,对不同的地址进行翻译后输出不同的通道使能端。这里面有一个片选信号的使用,即用片选信号来进行锁定,否则容易造成混乱。其次同样是reset信号的问题,这里在CPLD内部产生一个脉冲信号,在芯片上电时候进行复位。最后是中断的使用,由于在Vxworks内部如果直接加中断的话,会造成系统紊乱,所以还是将串口最后封装在BSP里面,打包成为IO设备来进行操作。

 

另外的问题则是另外的一类了,在外部总线输出时,powerpc的数据总线是反的,这样高八位和低八位就成了颠倒的了,但是由于沟通上的错误,外部总线输出是16位的时候,我们接的是A0,A1,A2。这样A0没有用,但是还是可以操作ST16c654的,起码是在用查询方式的时候是可以的。当厂家采用硬连接的手段把POWERPC的数据总线反过来时,我们还是按照8位的方式来操作,这样我们操作的数据就是高八位的数据了,这样又造成了新的问题。所以带来了又一次的反复。

 

文章评论0条评论)

登录后参与讨论
我要评论
0
24
关闭 站长推荐上一条 /2 下一条