有些同学在使用我们的AC620/ACX720 开发板时,会遇到如下问题:开发板在上电后,数码管会显示乱码,而且这些乱码没有规律,这是什么原因呢?
解答如下:我们的开发板,使用的是74HC595的SPI串行通信协议。74HC595芯片由于其控制简单,形成市场占有率高等优势,广泛应用在LED屏设计应用中。我们为了保证教学资源的社会适应性,所以采用了这款主流芯片驱动我们的LED数码管。FPGA对74HC595使用的是3pin的管脚控制,为了简化控制流程,74HC595在设计的时候,并没有设计输入/输出锁存控制引脚,导致74HC595在任意接收到FPGA的连接控制脚后,均会认为是串行的输入信号,并对其进行串并转换后输出。典型如FPGA上电过程的电平抖动,程序烧写过程中的电平抖动,或者紧前实验使用的74HC595驱动LED数码管控制,都会导致74HC595内部有我们未进行控制的寄存数据。所以,开发板在正常工作中,如果没有对74HC595提供驱动信号,就会看到74HC595出现未受控数据的乱码现象发生。
解决方案: 学习的过程中,如果不涉及到数码管的内容,就直接忽略就可以了,等学习了数码管的驱动后,如果做产品应用中也用到相同的电路,则在代码中将数码管的驱动加好,并将相应的待显示内容设为不显示的值即可(具体哪些值可以让其不显示,学会数码管驱动理论后就懂,比如将sel全部置1)
|