[Title]
[Message]
电子森林
文档
  • 平台
  • 器件
    • 传感器
    • 模拟链路
    • 数据转换
    • 逻辑器件
    • 微处理器/微控制器
    • 多媒体处理
    • 网络与通信
    • 接口与协议
    • 电源管理
    • 电机
    • 时钟/定时
    • 无线和射频器件
    • 分立器件
    • 连接器
    • 显示及驱动
    • 开发板/模块
  • 应用
    • 物联网
    • 通信
    • 工业控制
    • 智能电网
    • 安防监控
    • 人工智能
    • 交通运输
    • 医疗保健
    • 计算机及外设
    • 智能家居/家电
    • 可穿戴设备
    • 全国大学生设计竞赛
    • 智能车比赛
    • 硬禾实战培训
    • 毕业设计
  • 工具
    • PCB设计
    • 仿真工具
    • FPGA编程
    • 测试测量
    • 参考资源
    • 众筹产品
  • 招募
    • 人才招聘
    • 项目外包
  • 项目
  • 百科
  • 硬禾学堂
  • 电路仿真
  • 论坛
    • 发布项目
    • 登录
    • 注册
    电子森林
    • 登录
    文档
    项目
    百科
    硬禾学堂
    电路仿真
    适合电赛和RISC-V移植学习的、基于STM32G031 + iCE40UP5K的MCU/FPGA核心模块

    适合电赛和RISC-V移植学习的、基于STM32G031 + iCE40UP5K的MCU/FPGA核心模块

    获得支持
    4%

    目标 ¥10000.00

    更新9次

    2人

    硬禾发布

    更新

    2022年04月01日

    标签

    • 嵌入式系统
    • STM32
    • RISC-V
    • FPGA
    • ICE40UP5K
    ¥328.00

    获得支持

    2447

    基本信息

    项目进度

    案例

    内容介绍

    软件 & 硬件

    元器件

    ICE40UP5K

    超低功耗FPGA、5280 LUTs, 1024kbit SPRAM,1.2V、48-pin QFN (7 x 7 mm)

    MIC5504-3.3

    300mA的线性稳压器LDO,并有使能和自动放电的功能

    STM32G031

    ST的Arm Cortex-M0+微控制器,有64 KB Flash, 8KB RAM, 64MHz CPU, 2xUSART, timers, ADC, comm. I/F, 1.7-3.6V

    LPC11U35

    Arm Cortex-M0,64kB flash, 12kB SRAM, HVQFN32 package

    软件

    Verilog

    Verilog HDL是一种硬件描述语言,用于设计和归档电子系统。

    工具

    Radiant

    Lattice的FPGA开发环境,支持Windows/Linux操作系统,支持ICE40系列器件的开发。

    STM32CubeMX

    ST公司的图形化工具,可以非常方便地配置STM32微控制器和微处理器,以及相应的初始化C代码的生成。

    电路图

    物料清单

    附件

    • iCE40 UltraPlus Family Data Sheet.pdf

      ICE40 UP5K的数据手册(PDF)

    • iCE40UltraUltraPlusSG48PinMigration.xlsx

      ICE40UP5K的管脚分配表格(XLS)

    • UP5KMCU.pdf

    打样5块,下载成功 更新发布于 2020年11月12日

    2020年11月11日拿到加工好的5块样板,

    2020年11月12日焊接好一块,下载简单的测试程序,能够R、G、B三色灯同时以相同的频率闪动,得到一个白色的心跳灯效果。

    Fjs8nMO47BEIKL6MWq2mBZEXlz_ZFl1N2vgpMuMkaRxv86LI1iX4ZQA0Fsh26T5H06SakQBRMhMvyhQ2NaOX

    未来几天要做的事情:

    1. 基于这个板子做RISC-V的移植测试,
    2. 基于网上的开源工具链,而不是Lattice的Radiant做几个简单的项目
      1. LED呼吸灯
      2. PWM波形输出测试
      3. 加上R、C构成的LPF测试DDS信号发生器的效果

    由于时间关系,目前拿到的5块样板仅用于调试使用,需要改进的几个地方:

    • 目前36根管脚中有两根IO31、IO32没有连接,是因为ICE40UP5K已经没有多余的管脚,正式的版本需要改为32管脚的核心模块,其中的IO29和IO30可以留在模块上用作其它功能(待定)、或将连接到LPC11U35上的UART的TX、RX管脚连接出来?带RISC-V软核的测试完成后确定
    • 目前是2层板走线,性能未必理想,在正式的版本上可以使用4层板来走线,以提升性能,将所有的走线都在内层,Front层和Back层进行敷铜处理
    • PCB加工的时候采用邮票孔工艺

    改为40管脚的模块,补充4根信号,换4层板 更新发布于 2020年11月25日

    基于刚做的一些测试,改进如下:

    • 可以复用SPI Flash的SPI_SCK、SPI_SO两个管脚,完成FPGA代码的加载以后,这两个管脚就可以作为通用GPIO管脚;
    • 将UART的TXD、RXD也连接到DIP40的管脚上,在不需要跟PC进行串行通信的场景下,这两个管脚可以做为通用IO管脚来使用;

    这样就可以增加4根管脚,使用40Pin的模块可以尽可能跟原来的小脚丫FPGA兼容,只是还有两个管脚空着,正在考虑是将这两根管脚作为GND,还是将LPC11U35上的管脚引进来。

    FnMK5gfNa94Q1kaw3dXljfHk2QR_

    简单的布局调整,使用40Pin/15.4mm的模块

    出于性能的考虑,在供电方面做出的改进:

    • 原来使用的LDO为300mA的MIC5504-3.3和MI5501-1.2,都更换为支持500mA输出的国产器件,封装不变,都是SOT23-5。
    • 在VCCIO管脚增添2个0.1uF的电容,并在VCCPLL管脚上补充一个10uF的去耦电容

    为方便布线,且提升模块的性能,改用4层板设计(原来的2层快板设计用于基本连接功能的验证)

    • 顶层 -- 放置SMD的元器件,未连线的部分用作GND Plane
    • 中间1层 - 走线,在未走线的部分放置GND Plane
    • 中间2层 - 走线,在为走线的部分放置+3.3V、+1.2V和+5V的电源Plane,这三块不重叠
    • 底层 - GND Plane

    仍存在的问题:

    目前的RISC-V软核缺省使用的是内置的RC振荡器+PLL,由于RC振荡器的频率不精准会造成UART通信的误码,建议改为外部晶振作为时钟的方式。

     

     

    整理了与FPGA设计和使用相关的一些技术资源 更新发布于 2020年11月25日

    1. 开源FPGA设计工具链
    2. DDS的原理、技术文章及常用器件
    3. FPGA的主流开发学习平台及资源
    4. FPGA综合系统学习 - 如何玩转PWM?
    5. 电路城上发布的与FPGA/DSP相关的开发板和项目
    6. FPGA应用相关的资源网站
    7. FPGA的应用 - 学习资源
    8. FPGA的应用 - 开源项目参考
    9. Hackaday上的项目汇总-可编程逻辑项目
    10. 关于Verilog学习的文章 - 来自“不忘出芯”公众号
    11. FPGA在全国大学生电子设计大赛相关类别中的应用参考
    12. 用来实现DDS的常用元器件

    增加了一颗MCU,以方便各种项目中的控制功能 更新发布于 2020年12月07日

    鉴于很多实际的项目中都会用到输入(按键)、输出(LCD/OLED显示)等,而这些输入/输出的操作、界面的控制乃至数据流的处理使用MCU会比较容易,且MCU的价格也很低,因此考虑增加一个STM32G031的MCU,此MCU价格低廉,QFN28管脚,在DIP40的封装上放上没有问题。在40个引脚中做了调整:

    • 4个电源管脚不变 - 5V(Pin40)、3.3V(Pin1)、GND(PIN19)、GND(PIN20)
    • PIN2 - Pin8、PIN33为MCU的数字GPIO
    • PIN34 - P39为MCU的数字/模拟复用的GPIO,可以用作模拟信号的输入,比如ADC数据采集
    • PIN9 - PIN17,PIN23-PIN32为FPGA的GPIO管脚,共18根数字GPIO
    • PIN18、19、21、22为与板上四个LED等复用的IO管脚,如果FPGA的18根数字GPIO不够使用,则可以将板上的4个LED去掉,从而使用这4个管脚做为GPIO。

    调整后的板子元器件布局如下图:

    这次布线将采用4层走线。

    FgDVFuWfGwSGA0cGmEzVwh6i6zXc

    完成MCU+FPGA的布局布线,四层板 更新发布于 2020年12月13日

    今天完成了该板的布局和布线,可以投出去制板,四层板。

    FviGb-KTyk8aMlOtPn-EWy0hhgXF

     

    并计划做一个测试底板:

    • MCU输入/输出:
      • 128*64 OLED显示屏
      • 光电旋转编码器
      • 2个按键
    • FPGA:
      • 10位高速ADC采集
      • 10位高速DAC变换

    效果图如下:

    Fu25v2wXw5hW4Tv8gb3TFW9AfmqCFrbAJfZkJvf-sAcqFADr77PONt8Z

    FgDsDtJW0xzGZE4teBZZDC5jqAsg

    为该核心板设计了一块评估板 更新发布于 2020年12月15日

    设计了一块评估板:

    • MCU部分:
      • 128 * 64 OLED显示屏,SPI接口
      • 旋转编码器
      • 2个按键
    • FPGA部分
      • 10位/50Msps 高速ADC模块
      • 10位/125Msps 高速DAC模块

    本评估板也适用于小脚丫FPGA核心模块,采用全FPGA逻辑来实现所有的功能

    FmNbOjRLOk61dIqIbK-_2ASpzLpWFkp2zgMHDiHaqjL-CqeuZ2OslF5B

    FucHZK7XY37LpKSxI_puiob4fPJh

    测试新板子,发现了一个G0管脚的硬件限制 更新发布于 2020年12月25日

    在测试ADC + FPGA + DAC环路的时候,发现启动内部的PLL,接在Pin35管脚的AD_Data(6)在布局布线的时候会出现错误,不能用作输入管脚使用,可以用做输出。咨询了Lattice的FAE,说这是硬件底层的一个限制,在数据手册中也没有标记清楚,因此建议避开Global的管脚。由于UP5K管脚本来就少,如果不用这些管脚,将来的设计会受很大局限,因此我对其它的管脚也进行了测试,发现只有Pin35这一个用作G0 - 最重要的全局信号输入的管脚有此限制,因此把时钟管脚由原来的Pin44转移到Pin35,释放出Pin44来用做GPIO管脚,这样就没有问题了。

    在后面的测试中,我将DAC和ADC的位置做了呼唤,发现是可以工作的,原来的Pin35脚在DAC中用作了输出信号,所以避开了这个问题,可以进行ADC + FPGA + DAC的测试了。

    选用的ADC为标称50Msps/10位的高速并行ADC,DAC为125Msps/10为的高速并行DAC,而ICE40UP5K标称可以工作在48MHz,因此通过内部的PLL产生了48MHz的时钟用作ADC和DAC的CLK。结果见下图:

    FrpgEoZmUtE2LkYnmXl_pAjTbaj1

    使用48Msps采集口袋仪器送出的2MHz的正弦波信号,再通过DAC输出的2MHz的模拟信号波形,可以看出波形还是不错的。

    Fqqq7tFtqlOkAcp1h78HGjkA9taG

    48Msps的转换率采样5MHz的正弦波模拟信号,再通过DAC输出的信号波形,有一定的失真,一方面是采样率比较低导致的(一个模拟信号周期只有不到10个点),同时也可能是采用时钟的相位问题,需要做进一步分析

    FhawV-6Oq8VfRxbeK7-KNOYf_Knu

    试着把转换率提升到60Msps以后对2MHz模拟信号的采样结果,性能反而下降了,有可能是时钟的问题,也有可能是高速ADC的性能限制

    Fgtpns9OfY8WwVNaiOJP9RhoW3iW

    使用内部RC振荡器做时钟,设置为48MHz时ADC采集和DAC输出的波形,效果可以和晶振时钟相当

    新板测试 - G031的下载和FPGA的工作 更新发布于 2021年01月05日

    今天基于新版本的模块做了简单的测试

    STM32G031可以通过UART进行下载配置,并且通过点灯程序进行了测试,如下图

    FtP6fL50Qq4aKz5yvoDLLAzIKSX9

     

    另外将FPGA的逻辑配置好,通过10位ADC采集外部的信号,通过DAC输出信号,结果如下:

    Flxzukeh8rNSyRCFxSdiTvy0oltU

    FjYWdOY6WkLu4FqtUhDCaeojKlrJ

    评估板升级,支持全国大学生电子设计竞赛综合训练使用 更新发布于 2021年03月25日

    基于前期评估板的测试,进行了又一次升级,支持全国大学生电子设计竞赛的备赛训练。

    FkWWABu_qSzfM2uQE4pXV4TFcERvFsBzH7LFj7W0pzh-LHPaoNs7N0SF

    可以训练的技能:

    1. 用OLED显示信息,并掌握SPI总线以及显示屏的驱动原理
    2. 控制信息的按键输入以及按键消抖的软件/FPGA逻辑处理
    3. 旋转编码器的输入以及译码 - MCU软件实现/FPGA逻辑实现
    4. ADC高速数据采集以及缓存处理
    5. ADC低速数据采集以及数据处理、MCU的响应
    6. Sigma Delta ADC的实现(通过高速比较器)以及数字滤波器的使用
    7. 数字信号处理 - FFT以及数字滤波器,通过FPGA内部逻辑/乘法器实现,以及通过MCU的程序实现
    8. 频率计/计数器设计 - FPGA逻辑实现,以及MCU的定时器/代码实现方法
    9. 高速DAC以及DDS信号发生器的构成及参数控制
    10. 通过PWM构成DAC实现DDS 任意波形产生
    11. 姿态传感器的数据采集、处理以及信息显示
    12. UART的数据传输

    卷积神经网络(CNN)轻量化加速器IP 实现毫瓦级机器学习推理

    利用FPGA的并行处理能力实现轻量化CNN,包括二值化的BNN版本。该IP能让您在莱迪思iCE40 UltraPlus FPGA上实现CNN,功耗仅为毫瓦级。该IP使用iCE40 UltraPlus器件的片上DSP资源来实现CNN。加速引擎使用了11个嵌入式块存储器作为(EBR)工作存储器。用户可选择EBR或更大的单端口存储器(SPRAM)来存储引擎所使用的权重和指令。

    FEMTORV32 / FEMTOSOC: a minimalistic RISC-V CPU

    不到1000行Verilog代码的RISC-V软核设计,使用低于1280LUTS的资源

    运行开源RISC V、基于Intel Cyclone 10的FPGA开发平台

    这是一款基于Intel Cyclone 10 FPGA的平台开发的RISC V开源软核的项目,清华大学出版社并为之出版了教程。其RISC V软核和我们在ICE40UP5K上的都为同一作者构建并开源。

    关键词检测——莱迪思sensAI

    可客制化用以检测任意关键词 - 该参考设计不断通过数字MEMS麦克风连续搜索关键短语发音。通过使用深度学习框架(如Caffe、Tensorflow或Keras)更新训练数据集,设计工程师们可以向系统添加指令词唤醒功能。

    单线聚合

    在单个线路上聚合多个接口, 单线速率高达7.5 Mbps, 协议稳定可靠,支持错误检测和重试功能

    人员侦测

    根据客户要求可检测任何目标——该参考设计通过CMOS图像传感器持续感知附近是否有人在,并通过板上LED灯的闪烁得知检测结果

    二值神经网络(BNN)加速器IP

    可以利用FPGA的并行处理能力实现深度学习,实现毫瓦级功耗的二值神经网络

    人脸检测

    使用实时永久在线的图像传感器实现人工智能,工作功耗不足1mW, 帧率和功耗可根据系统的功耗要求进行调整

    UPDuino 3.0 - 基于ICE40UP5K、支持RISC-V

    此为TinyVision.Ai制作的一款经典的ICE40UP5K的开发板,连接一块带摄像头的扩展板就可以支持视觉识别方面的应用。

    Lattice官网上整理的一些用ICE40UP5K的开发板

    有10款来自Lattice官方以及第三方的基于UP5K制作的开发套件

    8:1麦克风聚合

    聚合8个PDM麦克风并通过I2S或SPI连接到处理器, 可在智能音箱中使用多个麦克风实现波束形成

    手势识别

    Implements a low power AI based system to detect hand gestures using an IR image sensor

    STM32G031 MCU + iCE40UP5k FPGA核心模块

    适用于学习单片机和FPGA的编程,以及同时使用MCU + FPGA的场合

    ¥249.00

    教程 - 基于FPGA与RISC-V的嵌入式系统设计

    2019年RISC-V官方CPU设计大赛冠军、FPGA与嵌入式系统开发专家撰写、清华大学出版社出版。包含多个RISC-V芯片设计实战项目及源代码,详细讲解RISC-V Soft CPU芯片设计的步骤以及如何在主流的FPGA架构的使用和移植。

    ¥106.00

    团队介绍

    • 硬禾工程师团队专注于基于FPGA和嵌入式系统学习平台的开发和生态系统的建设,在过去5年里成功推出的小脚丫FPGA学习平台被全国上百所高校采用于数字电路教学实践中,并一直积极推动开源、免费PCB设计工具KiCad在高校学生及硬件工程师中的应用。

    团队成员

    • 硬禾发布

    • 王安然

      资深硬件设计工程师、FPGA教学导师,12年硬件研发经验,主持开发了基于小脚丫FPGA的系列学习平台。

    • 陈强

      控制工程硕士,资深硬件研发工程师,丰富的嵌入式产品研发与技术支持经验,熟悉嵌入式系统编程、FPGA和数字系统设计。

    猜你喜欢

    基于RISC-V的低功耗蓝牙MCU核心控制模块,DIP16/邮票孔封装,内置BLE和ADC

    基于RISC-V的低功耗蓝牙MCU核心控制模块,DIP16/邮票孔封装,内置BLE和ADC

    基于内核为RISC-V的低功耗蓝牙MCU CH571F的最小系统模块,16管脚的DIP和邮票孔封装,支持最多14个数字I/O和最多6个模拟输入。

    • 硬禾发布
    • 1476
    • 21/01/22
    基于Intel Cyclone 10LP FPGA、支持开源RISC-V移植的FPGA学习板

    基于Intel Cyclone 10LP FPGA、支持开源RISC-V移植的FPGA学习板

    基于Intel Cyclone10LP系列的10CL016YU256C8G FPGA,16000逻辑单元(LEs),板上集成了编程器、SDRAM、FLASH等多种外设。并预留了PCIe子卡插座,可以方便地进行扩展。

    • 硬禾发布
    • 837
    • 21/08/21
    集成了STM32G031微控制器和ICE40UP5K FPGA的学习/开发板

    集成了STM32G031微控制器和ICE40UP5K FPGA的学习/开发板

    板上有STM32G031微控制器、iCE40UP5K FPGA、4个按键、4个单色LED、一个RGB三色灯,通过USB可以配置FPGA和STM32G031,并留有SWD调试接口,支持Arduino扩展板。

    • 硬禾发布
    • 901
    • 21/09/30
    @ 2022 电子森林   苏ICP备19040198号