记录Lattice FPGA iCE40 HX8K开发中遇到的那些坑

本文记录了在开发Lattice iCE40HX8K FPGA时遇到的两个主要问题:1) 烧写程序时的CHECK_ID错误,由于SPI数据线接反导致;2) FPGA无法自动从flash配置,原因是SPI接线与自动配置要求相反。作者通过检查电路、参考官方demo和手册,最终解决了问题。总结指出,iCE40系列FPGA的SPI接线设计与自动配置和编程有别,需要特别注意。

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

第一次开发Lattic FPGA,记录一下遇到的问题供大家参考

使用的芯片时iCE40HX8K,采用的是外接flash方式。

问题1:烧写程序时出错

ERROR - Function:CHECK_ID
Data Expected: h16 Actual: hFF
在这里插入图片描述
网上有人使用其他款FPGA的,说是要先擦除,再编程。经试验,我这不是这个问题。经查资料,每一款flash都有其对应的厂商和ID,应当是编程协议中需要进行识别的,我这款ID的确是0x16,而报错是说收到的是0xFF,那么很有理由怀疑就是信号线一直处于高电平,而得到0xFF。因此对线路进行检查,后发现SPI的数据线错了,错误图如下:
在这里插入图片描述
在这里插入图片描述

我的SDI应当为SPI协议中的MOSI,SDO应当为SPI协议中的MISO,而这里的flash作为SPI协议中的从端(slave端),那么SDI应当连接到DI(pin5)引脚,而SDO应当连接DO(pin2)引脚,也就是说FPGA的SDO应当连接flash的DO,FPGA的SDI应当连接flash的DI。于是我用飞线的方式将两根线交换了,再测试,结果对flash编程成功了。
然而,始终觉得不对劲,自己设计电路时,是参考了lattice官方demo板的,按说不应该会

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值