- 论坛徽章:
- 0
|
这几天在做XILINX SPARTEN XC3S100E的动态配置下载功能。linux内核驱动关于GPIO的读写驱动都没有问题,采用slave serial模式,ARM主频297MHz。将PROG_B先置低延时后拉高,立刻就能检测到FPGA INIT输出高电平,表明FPGA内部RAM初始化完成,可以进行配置数据的加载了。CCLK时钟保证在2uS之间,全部数据main.bin文件72,668字节。数据下载完后DONE管脚就是不能输出高电平。下载过程我也检测了INIT管脚,一直保持为高电平,这说明CRC没有错误。 困惑了几天了,一直没有成功。请教有个这方面经历的高手解答。顺便提一下,JTAG下载一直都正常,下载完毕DONE就输出高电平,而我在程序里头GPIO管脚一能读到这个高电平。
也尝试了MMAP方式直接在用户空间操作IO口,结果DONE管脚依然不能变为高。
还有一个问题,故意修改main.bin文件中间的几个字节,xilinx datasheet上说如果FPGA接收配置数据crc错误的话,INIT状态管脚会输出低电平,但用示波器看INIT在PROGB由低拉高后再没有变为低,不理解这里的CRC指什么,难道串行配置数据压根就没有输入进去? |
|