完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,
我正试图让我的设计,包含一个SPI主控制器,来访问我板上的SPI闪存。 我无法理解FPGA上的哪些引脚应该在用户设计中连接我的SPI主控。 该板是ML501,但是从XAPP974(http://www.xilinx.com/support/documentation/application_notes/xapp974.pdf)我知道有一种通过SPI总线访问这些闪存的标准方法。 ML501上的SPI闪存(M25P16 2MByte / 16Mbit闪存)看起来只需要4个信号 - 这是SPI的常见疑点; 时钟,主机输出/从机输入(mosi)数据,主机输入/输出输出(miso)数据和低电平有效从机选择。 我遇到的问题与时钟和味噌数据线的放置有关。 以下JPEG是ML501原理图的相关部分(http://www.xilinx.com/support/documentation/boards_and_kits/ml501_20061010_bw.pdf)。 从外观上看,mosi数据连接到名为FLASH_OE_B的行,slave选择在SPI_CE_B / FLASH_CE_B上,时钟在FPGA_CCLK线上,miso数据在SPI_DIN / FPGA_DIN上。 我没有发现SPI_DIN或SPI_CE_B线连接到FPGA上的存储区。 我不确定这是否是原理图中的错误遗漏。 slave select和mosi数据线不是问题 - 我发现它们映射好了。 我遇到的两个问题是时钟(FPGA_CCLK)线和味噌数据。 在原理图中,您可以看到FPGA_CCLK连接回J10上的FPGA,而FPGA_DIN线(也连接到miso数据)返回到K11。 在UCF中使用这些会导致映射期间出现以下错误: 错误:MapLib:30 - spi0_miso_i上的LOC约束K11无效:没有此类网站 装置。 要绕过此错误,请设置环境变量 'XIL_MAP_LOCWARN'。 错误:MapLib:30 - spi0_sck_o上的LOC约束J10无效:没有此类站点 装置。 要绕过此错误,请设置环境变量 'XIL_MAP_LOCWARN'。 根据XAPP974,第5页和第5页 6,FPGA_CCLK线在配置后成为有效的用户I / O焊盘,与DIN相同。 鉴于这是针对Spartan 3,看起来ML501 / Virtex 5看起来应该以类似的方式运行,但是我在映射期间得到这个错误,表明引脚甚至不存在! 我真的很感激有人纠正我的错误,或者我正在做的任何不正确的假设。 能够读取SPI闪存是我非常想做的事情。 提前致谢。 |
|
相关推荐
8个回答
|
|
现在论坛中的图像存在问题,主持人知道并试图修复,但我看不到您发布的原理图部分。
电路板上的SPI器件(U5B = M25P80)就像这样连接 SPI M25P80 PCB Net FPGA ---- -------- ---------- ----- SCK = CLOCK = FPGA_CCLK = J10 - 专用引脚CCLK MOSI = DATA_IN = FLASH_OE_B = AA9 MISO = DATA_OUT = SPI_DIN = K11 - 专用引脚DIN SS = SELECT_B = SPI_CE_B = AC14 由于ML501实现使用专用引脚(以这种方式支持SPI配置),因此连接到SPI存储器需要额外的应用程序设计步骤。 XAPP1020,使用Virtex-5 FPGA对SPI闪存进行配置后访问,介绍了如何在设计中实现这一点。 ------您是否尝试在Google中输入问题? 如果没有,你应该在发布之前。太多结果? 尝试添加网站:www.xilinx.com 在原帖中查看解决方案 |
|
|
|
现在论坛中的图像存在问题,主持人知道并试图修复,但我看不到您发布的原理图部分。
电路板上的SPI器件(U5B = M25P80)就像这样连接 SPI M25P80 PCB Net FPGA ---- -------- ---------- ----- SCK = CLOCK = FPGA_CCLK = J10 - 专用引脚CCLK MOSI = DATA_IN = FLASH_OE_B = AA9 MISO = DATA_OUT = SPI_DIN = K11 - 专用引脚DIN SS = SELECT_B = SPI_CE_B = AC14 由于ML501实现使用专用引脚(以这种方式支持SPI配置),因此连接到SPI存储器需要额外的应用程序设计步骤。 XAPP1020,使用Virtex-5 FPGA对SPI闪存进行配置后访问,介绍了如何在设计中实现这一点。 ------您是否尝试在Google中输入问题? 如果没有,你应该在发布之前。太多结果? 尝试添加网站:www.xilinx.com |
|
|
|
非常感谢。使用STARTUP_VIRTEX5块使得这些映射错误消失了。
我只是将我的设计放在电路板上,并通过iMPACT的直接SPI配置功能成功地读出了我放在SPI上的程序。 你提到ML501有一个M25P80闪存部件,但我的ML501(Rev。B)安装了M25P16(U5),它工作正常。 我可以成功地编程并验证包含我的(工作和测试的).bit文件的.mcs文件到SPI,但我不能通过SPI上的闪存映像进行FPGA配置。 我使用两种不同的方法创建了一个合适的.mcf文件; 一个通过使用iMPACT的“PROM File Formatter”功能,另一个通过命令行按照UG228: “promgen -spi -p mcs -o .mcs -s 16384 -u 0 .bit” 我能够下载并验证SPI闪存上的每个.mcs文件。 我甚至可以读出它们并在我的设计中通过SPI主机检查它(当通过iMPACT加载时)。 但是我不能让FPGA通过SPI从闪存中的这个图像自动配置。 有关配置DIP开关设置的信息,供FPGA自行配置(表1-15,第32页,UG226)表示在SPI闪存中使用图像的设置(模式[2:0] = 001),但 这是行不通的 - 我从来没有看到设计出现(我试图通过自定义JTAG TAP接口进行连接,而且从未在FPGA中进行配置。)正如我所提到的,单独下载.bit文件可以正常工作。 是否有可能与设计有关,而不是它的出现? 或者是最像我的电路板上发生的事情(某个地方的针脚/跳线/拨动开关不正确?) 我所能找到的让FPGA通过SPI在闪存中使用图像的方法就是使用dip开关,我尝试了很多配置都无济于事。 在此先感谢您的任何指示。 |
|
|
|
>你提到ML501有一个M25P80闪光灯部件,但我的ML501(Rev。B)有M25P16(U5)
原理图中列出了两个组件,我不记得目前的原因。 如果你的主板有M25P16,那就没关系了。 >但是我不能让FPGA通过SPI从闪存中的这个图像自动配置。 SPI线路上是否有任何事情表明它正在尝试加载设计? 在运行BITGEN时,您是否将STARTUPCLK选项设置为CCLK? ------您是否尝试在Google中输入问题? 如果没有,你应该在发布之前。太多结果? 尝试添加网站:www.xilinx.com |
|
|
|
再次感谢您立即正确猜测问题所在。
运行bitgen时我没有使用StartupClk设置。 我的设计现在从SPI闪存成功启动。 非常便利。 在满足我的所有启动要求之前,我有最后一个问题,而且我不确定这是否是要问的地方,但无论如何我都会把它放在那里。 一旦FPGA通过SPI从闪存配置自己,我的设计有一个uP,它有一些嵌入式引导加载程序代码(在门中,而不是BRAM),然后尝试使用设计的SPI主控制器通过SPI从同一个闪存读取。 我注意到它只读取0xFF。 引导加载程序将我的SPI主控通过的顺序是取消置位从属选择,然后在传递正确的读取命令和流式传输字节之前重新置位它(等等(我通过将其下载到板上运行相同的软件) 它似乎工作正常,以及以这种方式运行它,即从启动时的门,在其他FPGA技术和电路板上运行。)据我所知,这个程序应该工作。 但是,FPGA离开SPI闪存的状态是什么? 它是执行某种断电,还是重置? 在FPGA配置后,是否有关于访问闪存的推荐方法的指南? 我已经查看了XAPP1020中的代码(对SPI闪存的配置后访问),但目前还不清楚驱动程序调用的是XSpi_Initialize(),XSpi_SetOptions()和XSpi_SetSlaveSelect()(我找不到驱动程序源)。 我可以在FPGA配置后等待一段时间来访问SPI吗? 我现在正在重新设计我的设计,它将循环初始化过程,重试访问设备,直到它从SPI获得合理的值,但我很想知道之前是否经历过这种情况。 再次感谢您的帮助。 |
|
|
|
事实证明,我的init-until-something-sane-come-out方法可以解决问题。
我现在已经完成了配置FPGA的设置,然后通过SPI从同一个闪存中为uP加载软件。 非常感谢你的帮助。 |
|
|
|
|
|
|
|
第三只眼睛,
请开始一个新的主题来讨论这个无关的问题。 在您的新帖子中,请添加足够的详细信息,以便明确“内存映射”的含义。 - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 |
|
|
|
只有小组成员才能发言,加入小组>>
2389 浏览 7 评论
2805 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2272 浏览 9 评论
3346 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2440 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
770浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
552浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
393浏览 1评论
1977浏览 0评论
694浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 18:59 , Processed in 1.418188 second(s), Total 90, Slave 74 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号