AG32 MCU+FPGA 使用感受

前言:

笔者35+了,10多年前开始玩单片机/FPGA啥的,从现在回想过去,眼下真的是我们国家微电子发展的好时候。各种各样的国产单片机,FPGA啥的,想想本科的时候用的Freescale,后来用的STM32,真的感叹国家发展的很快,虽然差距还存在。

在找国产FPGA玩的过程中发现了AGM AG32系列的RISCV + FPGA的配合,断断续续把玩了两个星期,下面是使用感受和一些个人的看法。

AG32简单介绍

AG系列这个是RISCV+FPGA(2K LE,只能做简单点的逻辑)的配合方式,价格还算便宜(淘宝48PIN 7.5的样子),和某些FPGA里面内带硬核M3(高云)和或者M33(智多晶)实际上是比较像的。官方说CPU可以跑到200M。

这种架构与市场上的单片机+FPGA分立集成的开发板比起来,最大的优势是逻辑部分可以直接连单片机的总线,AG的是AHB总线,可以通过DMA搬运数据,甚至自己就可以做DMA主机。

芯片的RAM 128K,默认是MCU独占,但是可以划分一部分让逻辑部分通过AHB使用;FLASH的话100Pin以上1M,其他256K,但是后100K是用来配置LOGIC的,这样看来256K还是够呛,但是实际上用到了FPGA,基本都会上100PIN吧?

芯片只有一个PLL,这个PLL是LOGIC和MCU共用的,这样会有一个问题,这个MCU的时钟是无法动态配置的,基本就是锁定了的,功耗控制可能会是一个问题。

开发环境:

硬件方面:

产品与GD32/STM32的PIN脚完全一致,笔者就是直接把旧的开发板换芯:

买家还会推荐你买他们的下载器,基本上就是一个CMSIS-DAP + altera usb blaster + USB串口的大杂烩,如果没有其他下载器可以买一个,实际上JLINK啥的也能用,没啥必要,最主要这块下载器板子设计的比较丑,还没有外壳。AG32系列可以用JTAG或者SW下载。

开发环境方面:

软件是厂商自己魔改的vscode + platfromIO + sdk的方式。需要特别说明,用了他的SDK破坏platfromIO原来的工作环境,无法新建其他工程了,需要对c:\user\用户名\.platfromio 文件夹先进行备份,然后来还切换文件夹适应不同的使用环境,这个相当麻烦(毕竟没人只用你家单片机啊!),希望后续厂家改改。

Arduino:不支持

Micropython : 不支持。

FPGA开发:

实际上FPGA开发,是"借用"了Altrea quartus的开发环境。先在vscode里面新建工程,配置工程里面VE文件的FPGA、MCU、芯片PIN脚之间的连接信号,然后prepare logic ,就会生成一个quartus 工程,里面已经把所有的ve文件里面的信号,以及AHB总线信号给配置好了,然后就是自己写逻辑,然后编译生成。

之后在用厂家自己的supra软件,将东西转换一下,成为一个bin文件。

然后用烧录器吧这个bin文件烧录到FLASH的后100K。

"借用"这个事情不好评价啊,毕竟起步阶段,但是用下来还是熟手的。

MCU开发:

用的是官方自己写的SDK,和STM32和GD32差不多。不过与GD32基本照抄STM32的标准外设库的行为比起来,AG家的库写的还是挺不错的,看得出在让用户简洁编程上面下了不少的功夫,基本所有外设、Freertos、usb啥都写了库。另外还有非常有参考性的MCU+FPGA联合开发的库,里面通过AHB总线直接访问、或者是转APB之后访问低速外设。

总的来说,我觉得软件开发环境除了独占PlatfromIO之外,其他都还是不错的。

优缺点

这款芯片的价位和功能让我非常容易想起GD32/ESP32单片机。

|---------|-----------------|----------------------------|------------------------------------------|
|   | STM/GD32 | ESP32 | AG32 |
| 成本 | 4(C6t6) | 6.5(C3-FH4) 10(S3+8MFlash) | 7.5 (48pin) 13.9(100pin) |
| 硬件集成便捷性 | 差(指定IO/有限REMAP) | 好(IO交换矩阵) | 好 (FPGA交换PIN) |
| 开发环境 | 好 | 好 | 一般(独占platfromIO) |
| 开发难度 | 中 | 低(micropython有手就行) | 高(得配置的东西很多) |
| 支持力度 | 高(随便百度一大堆回答) | 中(arduino优秀,mp一般,idf地狱) | 低(只能问原厂,问多几句就会问你是哪个公司的,要用多少pcs,啥时候量产...) |

总结和建议:

1、东西还是不错的,不过比上手一般的单片机要难不少。

2、只用单片机,它的性价比比ESP32低,建议需要使用到FPGA等场合才使用。笔者读书时的一个项目就是用CIS扫描后做数字识别,为了满足CIS的严格时序用到了STM32 + CPLD的架构,现在可以芯片搞定。

3、如果能决定入手,因为原厂的资料比较散乱,请把原厂给你的文档全部看一遍再进行上机

4、SDK我发现还是有一些BUG的,需要有一定的动手能力才能解决,如果是初学者,劝退。

相关推荐
m0_疾风32 分钟前
STM32
stm32·单片机·嵌入式硬件
硬匠的博客1 小时前
C/C++基础
stm32·单片机·嵌入式硬件
LaoZhangGong1231 小时前
MCU屏和RGB屏
经验分享·stm32·单片机·嵌入式硬件·fsmc
格里姆肖1 小时前
LVGL源码(7):渲染
c语言·stm32·单片机
双叶8362 小时前
(51单片机)LCD显示日期时间时钟(DS1302时钟模块教学)(LCD1602教程)
c语言·开发语言·数据库·单片机·嵌入式硬件·mongodb·51单片机
Geek__19924 小时前
STM32并口屏应用实例:点亮你的显示世界之程序篇
stm32·单片机·嵌入式硬件
无际单片机编程5 小时前
嵌入式软件OTA升级,有哪几种Flash划分方式?
单片机·嵌入式硬件·学习·嵌入式
逼子格5 小时前
七种驱动器综合对比——《器件手册--驱动器》
单片机·嵌入式硬件·硬件工程师·驱动器·硬件测试·电机驱动·硬件笔试真题
Neil今天也要学习5 小时前
永磁同步电机控制算法--转速阻尼补偿和闭环调节电流给定IF控制
单片机·嵌入式硬件
come on world5 小时前
入门51单片机(1)-----点灯大师梦开始的地方
c语言·单片机·嵌入式硬件·学习·51单片机