本帖最后由 ttjester 于 2015-7-13 01:55 编辑
各位大大好。小弟最近刚接手一个项目,遇到一个很急的问题。但小弟之前对CPLD没有多少了解。所以到此请教各位大大帮忙给了思路。谢谢了。
事情是这样的,公司一位同事离职,他手上的项目交到了我这。是一个控制器+触摸屏的方案。产品已经生产了一批,运行良好。目前生产了第二批,需要进行程序下载,但程序在第二步下载失败。
系统的构架如下图。程序下载分两步,第一步通过JTAG向STM32下载bootloader引导程序。第二步是通过外接U盘将system.bin和data.bin两个文件加载到Flash,此时在液晶屏上显示程序加载的进度条。此时整个系统可以正常运行。我们第一步下载正常,但第二步进行不下去了,直接是白屏。经过分析应该是CPLD没有正常运行。应该是程序没有烧录进去。
按照正常的思路应该是通过CPLD的JTAG向其烧录VHDL的程序。但我们问了此项目的开发者(整个项目都是他一个人负责),他说是在烧录data.bin文件时将这部分程序通过STM32向CPLD进行烧录的。STM32和CPLD是16位并口连接,通过FSMC方式读写。这样的方式能直接向CPLD烧录程序吗?
如果这种方式可行的(比如通过IO口模拟JTAG),这部分动作是在bootloader部分完成的,还是在后面data.bin里完成的。我看了bootloader里面与COLD有关的部分,主要就是做了FSMC读写方面的配置。如果是通过STM32向CPLD烧录程序的,能提供一些解决的思路吗。
另外可以排除硬件问题,因为我将一块正常运行的驱动板上的的CPLD换到新做的PCB上一切运行都是正常的。
不知道各位大大能给提供一些思路吗,现在不知道该从什么地方入手了。小弟万分感激。
硬件构架
CPLD部分原理图
|