关于烧录FPGA的疑问。
大致是这样的,。通过MCU配置PFGA。
FPGA是xilinx的Spartan 3E
首先我捕捉到了fpga配置芯片xcf02 的数据和时序。
然后我完全仿照该芯片的时序(SPI),用mcu发送数据,用逻辑分析仪看,数据和时序都正确。,可是烧录总是失败(数据发送后,fpga没运行程序)
我看手册上有个done引脚和 init_b引脚。
说INIT_B引脚在置高的时候检测M0 M1 M2然后确定FPGA模式。
FPGA配置完成后,DONE引脚会输出一个高电平。。
可是我用逻辑分析仪看了一下,DONE一直都是低电平,
用万用表测了一下,INIT_B是高电平。
不解,坛子有无前辈做过MCU配置FPGA 本帖最后由 路人甲被注册了 于 2014-9-5 20:27 编辑
................................ ISE 很烂我承认,但是时序应该没错吧? 呵呵,劳资用遍天下各种串行时序烧录,还没见过烧不进去的。LZ好好反省反省自身问题吧。 xilinx有mcu配置的文档,源码都提供了,自己去官网搜吧 1. PROG_B 先发一个低电平脉冲.'1' ->'0'->'1'. 10ms即可.
2. 把数据发给FPGA:clk上升沿有效,bit7还是bit0先发, 试试吧. 我的先发高位,可能和数据格式有关.
3. 发完后, 检测done.'1' OK.
(无视init_b) XAPP058 Xilinx In-System Programming Using an Embedded Microcontroller 上面文档没看,反正我是从外部FLASH中读出,然后用从串模式下载 本帖最后由 路人甲被注册了 于 2014-9-9 11:15 编辑
qinxg 发表于 2014-9-5 17:48
1. PROG_B 先发一个低电平脉冲.'1' ->'0'->'1'. 10ms即可.
2. 把数据发给FPGA:clk上升沿有效,bit7 ...
时序完全这样的,但是还是不行。检测不到done信号。
mcu做SPI主机,数据是从MCS里面取出来 末尾多余的补0xff(去掉地址和CRC位)。
时序参照配置芯片的时序。 捕捉到配置芯片的时序
可以烧录了,发现xilinx的烧录有两个坑,这两个坑,坑了我这么久。
1正常的发送数据是 8位 8位的依次发,我观摩 配置芯片时序发现第一帧明明是7位,所以之后就少了一位
2............. 第两个坑呢?
想起同事用2Byte来检错,数据手册明明写的是8位, 巧就巧在部分发送命令式对的, 呵呵
页:
[1]