打印

关于嵌入式CPLD烧录的求助

[复制链接]
3389|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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部分原理图

相关帖子

沙发
cliffboy| | 2015-7-17 08:43 | 只看该作者
1、STM32和CPLD是16位并口连接,通过FSMC方式读写。这样的方式能直接向CPLD烧录程序吗?
答案是可以的,不过一般STM32首先要工作起来
2、我怀疑是程序问题,试试你这程序在好的板子上能烧写成功吗。
3、补充一句,已经都成熟的产品还出现这种问题,可见你们公司的文档维护要多下功夫了

使用特权

评论回复
板凳
yulunna| | 2015-7-19 20:00 | 只看该作者
cliffboy 发表于 2015-7-17 08:43
1、STM32和CPLD是16位并口连接,通过FSMC方式读写。这样的方式能直接向CPLD烧录程序吗?
答案是可以的,不 ...

1、“直接向CPLD烧录程序”我的理解是向配置闪存烧录程序,于是有下面内容
2、一直用的JTAG配置,第一次看到可以这样并口配置的:lol,于是ALTERA的官网看了下,貌似没找到关于对CPLD通过外部并口对其进行配置的信息。但是看到条消息“用户不可以访问配置闪存,它被用于在内部存储编程设计信息,然后将这些信息装入到可编程逻辑中”,链接见https://www.altera.com.cn/produc ... ax-ii/overview.html特性一条,另CPLD作为主配置单元的却挺多,即CPLD作为主端向其他器件进行程序配置或烧录
3、如果真可实现并口对ALTERA的CPLD的配置,还请赐教,简要的说明下方法:lol

使用特权

评论回复
地板
cliffboy| | 2015-7-24 21:21 | 只看该作者
yulunna 发表于 2015-7-19 20:00
1、“直接向CPLD烧录程序”我的理解是向配置闪存烧录程序,于是有下面内容
2、一直用的JTAG配置,第一次 ...

CPLD配置分主动与被动,你再查查吧

使用特权

评论回复
5
yulunna| | 2015-7-25 09:16 | 只看该作者
cliffboy 发表于 2015-7-24 21:21
CPLD配置分主动与被动,你再查查吧

可否给个ALTERA CPLD的并行配置的相关链接

使用特权

评论回复
6
ttjester|  楼主 | 2015-7-27 10:55 | 只看该作者
cliffboy 发表于 2015-7-17 08:43
1、STM32和CPLD是16位并口连接,通过FSMC方式读写。这样的方式能直接向CPLD烧录程序吗?
答案是可以的,不 ...

我也刚进这个公司,文控管理的很混乱。。。做这个项目的人离职了,都行他都带走了,留给公司的都不知道是不是最新的程序...
我用Quartus II将CPLD里面的pof文件回读出来了,烧到新的片子里后整个系统就跑起来了。
我估计是之前开发的那个人没把新的程序留下来。

使用特权

评论回复
7
ttjester|  楼主 | 2015-7-27 11:02 | 只看该作者
yulunna 发表于 2015-7-19 20:00
1、“直接向CPLD烧录程序”我的理解是向配置闪存烧录程序,于是有下面内容
2、一直用的JTAG配置,第一次 ...

按照开发这个项目的那个人的说法是这样的。
CPLD内部有个Flash,它有自己的通信模式,然后stm32的并口配置成此通信模式和CPLD的Flash进行通信。然后将pof文件通过一种工具转换成bin文件挂在data.bin文件的后面合成一个data.bin的文件。在向stm32烧录程序时将CPLD部分的bin文件传到CPLD的Flash里面。完成对CPLD的烧录。
这个我还在查资料,找CPLD的Flash通信方式。

使用特权

评论回复
8
yulunna| | 2015-7-27 11:10 | 只看该作者
ttjester 发表于 2015-7-27 11:02
按照开发这个项目的那个人的说法是这样的。
CPLD内部有个Flash,它有自己的通信模式,然后stm32的并口配 ...

CPLD内部有块USER FLASH,这个区域支持I2C,以及ALTERA提供的原语并行操作。这样把CPLD作为一个主配置端像其他需要配置的器件进行配置,但是外部器件像CPLD内部用户存储区域进行配置的官网资料看了下,真木发现,关注中方法确定了求分享下:lol

使用特权

评论回复
9
cliffboy| | 2015-8-1 12:12 | 只看该作者
ttjester 发表于 2015-7-27 11:02
按照开发这个项目的那个人的说法是这样的。
CPLD内部有个Flash,它有自己的通信模式,然后stm32的并口配 ...

咨询下芯片技术支持,量下加载时信号就知道了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

13

帖子

0

粉丝