完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
大家好,
因此,我的目标是使用JTAG接口对挂在Spartan 3AN上的SPI闪存器件进行编程,并让JTAG引擎将其转换为SPI信号。 显然这被称为间接编程。 所以我发现了一个漂亮的应用笔记,它解释了我正在尝试做什么,但它似乎是使用iMPACT 9.1编写的,我使用的是14.2 因此,在App Note的图12中,它显示应该有单选按钮指示设备通过JTAG引擎对SPI闪存进行编程,但是在iMPACT 14.2中,那些单选按钮不再存在,随后程序也没有 我尝试加载程序时检测不到任何外部SPI闪存。 还有其他人有这个问题吗? 以上来自于谷歌翻译 以下为原文 Hi All, So my goal is to program a SPI flash device hanging off a Spartan 3AN using the JTAG interface and have the JTAG engine convert this to the SPI signals. Apparently this is called indirect programming. So I found the nifty app note that explains exactly what I am trying to do , however it appers to be written using iMPACT 9.1, and I'm using 14.2 So in Figure 12 of the App Note, it shows that there should be to radio buttons to direct the device to program the SPI flash via the JTAG engine, however in iMPACT 14.2, those radio buttons are no longer there, and subsequently the program doesn't detect any external SPI flash when I try to load the program. Does anyone else have this issue? |
|
相关推荐
8个回答
|
|
|
我不确定问题是否已在14.x中得到解决,但似乎在12.4中,iMPACT无法检测Spartan-3AN中的外部SPI闪存。
我想有人认为每个人都会使用内置闪存。 无论如何,用户horkeltoward有一个解决方法,该线程结束:http://forums.xilinx.com/t5/Design-Tools-Others/Impact-12-4-adding-SPI-for-indirect-programming/mp/ 115972 /。 以上来自于谷歌翻译 以下为原文 I'm not sure if the issue has been resolved in 14.x but it appears that in 12.4, iMPACT wasn't capable of detecting external SPI flash in the Spartan-3AN. I suppose that someone assumed that everyone would just use the internal flash. Anyway, there's a workaround from user horkel toward the end of this thread: http://forums.xilinx.com/t5/Design-Tools-Others/Impact-12-4-adding-SPI-for-indirect-programming/m-p/115972/ . |
|
|
|
|
|
谢谢。
所以黑客很好地欺骗了iMPACT认为它正在与Spartan 3A而不是3AN交谈,但是我没有遇到通过总线发送的SPI流量问题(从JTAG转换后) 使用O-Scope,我已经验证了SPI流量如下 FPGA写入以下序列 1. 0x9F(读取标识) SPI Flash M25P64正确响应0x202017。 0x06(写入启用) 0x05(读状态寄存器) SPI Flash响应0x02。 写使能位设置,无硬件保护,无保护扇区。 然而它陷入了0x05的循环,然后是0x06(重复),但我从未看到过页面程序指令或其他数据被发送到SPI总线上。 当我回读SPI闪存的内容时,它将所有数据返回为0xFF,这是我在擦除周期后的预期。 所以....我有点坚持这个,因为我没有spi_core文件的verilog。 任何想法都会很棒。 谢谢 以上来自于谷歌翻译 以下为原文 Thanks. So the hack worked fine into tricking iMPACT to think it was talking to the Spartan 3A and not the 3AN, however I am not having an issue with the SPI traffic that is sent across the bus (after being converted from JTAG) With an O-Scope, I've verified that the SPI Traffic is as follows FPGA Writes The following squence 1. 0x9F (Read Identification) The SPI Flash M25P64 responds correctly with 0x202017. 0x06 (Write Enable) 0x05 (Read Status Register) The SPI Flash responds with 0x02. Write Enable Bit set, No Hardware protection, No Protected Sectors. However it gets stuck in a loop of 0x05, then 0x06 (repeatedly), but I never see a Page Program Instruction, or other data being sent out onto the SPI bus. When I read back the contents of the SPI flash, it returns all the data as 0xFF, which is what I expect after an Erase cycle. So.... I'm kinda stuck on this since I don't have the verilog to the spi_core file. Any ideas would be great. Thanks |
|
|
|
|
|
添加更多信息。
我已经验证了写保护(nWP)和保持(nHOLD)上的电压始终为3.3V,并且在整个程序尝试期间功率保持良好。 我用iMPACT中的'空白检查'和'擦除'命令解码了SPI总线,我看到正确的命令被发送到M25P64 SPI Flash。 我试图减慢配置速度,但这似乎没有任何影响。 以上来自于谷歌翻译 以下为原文 Adding more Information. I've verified that the voltages on the Write Protect (nWP) and Hold (nHOLD) are Always 3.3V, and the power remains good through the entire program attempt. I decoded the SPI bus with the 'Blank Check', and 'Erase' commands in iMPACT, and I see the correct commands being sent to the M25P64 SPI Flash. I attempted to slow down the configuration speed, but that didn't appear to have any impact at all. |
|
|
|
|
|
附件是ReadID的范围捕获
(命令0x9F) 设备响应0x202017 以上来自于谷歌翻译 以下为原文 Attached is a scope capture of ReadID (Command 0x9F) The Device Responds with 0x202017 |
|
|
|
|
|
然后SPI总线发送
WriteEnable(0x06) 以上来自于谷歌翻译 以下为原文 The SPI Bus then Sends WriteEnable (0x06) |
|
|
|
|
|
随后是读状态寄存器(0x05)
然后,器件在随后的8个时钟内以1字节状态寄存器的0x02响应 以上来自于谷歌翻译 以下为原文 Followed by Read Status Register (0x05) The device then responds with 0x02 for the 1 Byte Status Register in the subsequent 8 clocks |
|
|
|
|
|
我的另一个问题是MOSI线在没有有效时钟的情况下摆动是什么?
几乎看起来有些JTAG指令没有被正确解码。 以上来自于谷歌翻译 以下为原文 Another Question I have is what is up with the MOSI lines being wiggled without a valid clock? Almost looks like some JTAG instructions are not being decoded correctly. |
|
|
|
|
|
所有,
虽然我没有解决Spartan 3AN上明显缺乏间接编程的问题,但我能够对电路板进行蓝线连接并恢复到ISE 11.1以使用直接编程方法。 11.1和14.x工具链似乎同时安装,没有任何问题。 我强烈建议不要浪费时间使用Spartan 3 AN的间接编程方法。 以上来自于谷歌翻译 以下为原文 All, Though I don't have a resolution to the apparent lack of indirect programming on the Spartan 3AN, I was able to blue-wire the board and revert to ISE 11.1 to use the Direct Programming Method. The 11.1 and the 14.x tool chains appear to install concurrently without any issues. I would highly recommend not wasting your time with the indirect programming method for the Spartan 3 AN. |
|
|
|
|
只有小组成员才能发言,加入小组>>
3118 浏览 7 评论
3407 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2874 浏览 9 评论
3966 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
3057 浏览 15 评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
1325浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
1167浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 09:28 , Processed in 0.806218 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4039
