- 博客(66)
- 收藏
- 关注
原创 我的创作纪念日
提示:你过去写得最好的一段代码是什么?提示:当前创作和你的工作、学习是什么样的关系。提示:可以和大家分享最初成为创作者的初心。提示:在创作的过程中都有哪些收获。提示:职业规划、创作规划等。
2025-04-03 12:55:26
135
原创 AG32的“万能管脚”
1. 可以节省大量引脚(开发者只需要配置自己使用到的外设引脚即可),比如,本来需要100脚的ST才能满足的外设需求,用AG芯片可能32脚的就够了。另外,不可配置的引脚(ADC、USB这些),在32pin/48pin/64pin/100pin上的对应是不同的。如果不用这些外设,其中的ADC和USB的管脚,如果不接ADC和USB,仍然是可以被用做普通IO的。除了GPIO,其他的很多外设(如spi,iic,can,uart等)都是需要配置引脚的。MCU里用到哪个信号就在VE里配置对应引脚,没用到的不用配置。
2025-04-03 12:39:01
256
原创 AG32:MCU和CPLD如何交互?
根据AHB时序,在一次传输中,cpld(slave端)会先拿到addr地址,读或写的标记,然后交互ready信号后,开始。样例展示到这里,mcu和cpld的交互上:交互信号、跟ahb交互数据、跟apb交互数据,基本的交互通路已经建立。当控制mcu的gpio4_1高低切换时,cpld中的iocvt_chn_out_data,会对应来变化。这里的iocvt_chn_out_data,就是对接到mcu的gpio4_1的信号。这里的iocvt_chn_in_data,就是对接到mcu的gpio4_2的信号。
2025-04-03 12:21:40
976
原创 FPGA与CPLD基本结构与区别
(1) FPGA采用SRAM进行功能配置,可重复编程,但系统掉电后,SRAM中的数据丢失,因此,需要在FPGA外加EPROM,将配置数据写入其中,系统每次上电自动将数据引入SRAM中。CPLD宏单元的与或阵列较大,通常不能完全被应用,且宏单元之间的主要通过高速数据通道连接,其容量有限,限制了器件的灵活布线,因此,CPLD利用率较FPGA器件低。CPLD由可编程逻辑的功能围绕一个可编程互连矩阵构成,由固定长度的金属线实现逻辑单元之间的互连,并增加了I/O控制模块的数量和功能。,但触发器资源相对较少。
2025-03-27 09:37:21
248
原创 【MCU内置FPGA/CPLD在触摸屏中的应用
传统的屏驱MCU常见应用于洗衣机、空调、空调面板、仪器仪表等人机交互界面显示场景中,通常是以段码的形式显示设备运转的时间、温度、测量结果等简单运行数据,随着人机交互需求丰富化,智能家居设备、摩托车、电动车等产品也逐步增加了屏幕显示功能,段码显示的方式也升级为显色内容更为丰富的TFT-LCD图形交互显示,以更丰富的颜色和生动的图像形式展示运行参数信息,甚至以屏幕操控代替部分机械按键功能。在触摸屏数据传输中,可以使用 DMA技术,通过DMA实现高效的数据传输,减少CPU的干预,提高系统的并发处理能力。
2025-03-27 09:05:46
407
原创 MCU内置FPGA/CPLD在触摸屏中的应用
传统的屏驱MCU常见应用于洗衣机、空调、空调面板、仪器仪表等人机交互界面显示场景中,通常是以段码的形式显示设备运转的时间、温度、测量结果等简单运行数据,随着人机交互需求丰富化,智能家居设备、摩托车、电动车等产品也逐步增加了屏幕显示功能,段码显示的方式也升级为显色内容更为丰富的TFT-LCD图形交互显示,以更丰富的颜色和生动的图像形式展示运行参数信息,甚至以屏幕操控代替部分机械按键功能。在触摸屏数据传输中,可以使用 DMA技术,通过DMA实现高效的数据传输,减少CPU的干预,提高系统的并发处理能力。
2025-03-27 08:44:50
319
原创 智能玩具的边缘推理场景:在线or离线?
智能玩具的隐私风险是客观存在的。我注意到,Ropet采用了离线方式的推理技术,将使用过程中所有的原始数据,都只通过端侧大脑处理,将数据矩阵变成一些简单的代码长时间储存至本地,并保证在断网环境下能够完成。最近卡西欧自主开发的小型宠物机器人“Moflin”也成为热门话题,可放在手掌上的可爱外观和动作加上合适的价格,使得这款首次发售的产品比预期更早售罄,颇受欢迎。智能玩具领域,如果是从儿童的隐私保护出发,可能要更关注离线边缘推理的方案,尤其是以欧美市场为目标的产品,带边缘推理的MCU可能是未来主流选择。
2025-03-14 12:04:34
738
原创 AG32VH407RC 驱动RGB屏
例程需要注意的是sysclk 150M, PSRAM 200M基本是该芯片的极限了。另外,在采用RGB888的时候,注意logic综合编译的时候Fmax有可能达不到约束条件,需要多编译几次试试。AGM推出的AG32VH407内置了64Mb的PSRAM, 读写速度可以达到惊人的200Mbytes/S。激动了一番,做了款开发板,测试测试PSRAM用于刷屏的速度。开发板采用了800x480的24bit RGB屏,对于我们普通的工业应用来说,16bit的色彩度也足够了,这样可以。有兴趣的开发者,可以试试。
2025-03-08 17:04:14
269
原创 推荐几个让人受益匪浅的FPGA开源项目
其核心是将电机的定子电流分解为磁通分量(d轴电流)和转矩分量(q轴电流),并通过Park和Clark变换将三相交流系统转换为直流系统(dq域),实现独立控制,其广泛应用于电动汽车、工业自动化、机器人等领域。本项目较全面实现了ISP的算法模块,并且这些模块在FPGA板上成功运行,利用FPGA的并行处理能力,显著提升了图像处理的效率和质量。涉及的处理模块包括坏点校正、黑电平校正、拜耳降噪、数字增益、去马赛克、白平衡增益、色彩校正矩阵、色彩空间转换、Gamma校正、2d降噪、边缘增强。
2025-03-04 10:42:21
831
原创 AGM芯片推出TensorLight框架,全面拥抱AI+边缘推理市场
伴随着AI技术的进一步深度赋能,以及汽车、工业、消费电子、物联网等领域的新一轮强劲需求,MCU行业将迎来技术革新与市场变革的关键节点。AGM推出自主研发的轻量级AI框架TensorLight,能够在有限的硬件资源下加速运行AI算法,降低了开发门槛,使得更多的MCU开发者能够将AI技术应用到自己的产品中,可以部署各种主流嵌入式机器学习模型如TinyML等,帮助开发者在云端构建专属的模型,并在本地边缘节点上完成部署。我们专注于开发多样化的AI解决方案,未来将推出更多参考设计,为智能应用开辟更广阔的空间。
2025-02-21 20:45:16
184
原创 Deepseek:DS不再是Diaosi的简称
同时,训练成本的下降也带动了推理成本的下降。例如,在智能工控领域,需要系统执行太阳能和储能系统中的电弧故障检测,以及用于预测性维护的电机轴承故障检测等功能,边缘AI帮助MCU对设备和传感器收集的数据进行实时分析和处理,提供更准确的决策,使系统实现更高的故障检测准确率。电脑、手机和互联网的发展历史基本上都是这么过来的,硬件和应用相互刺激,市场迅速扩大,用户普及下沉,增量市场蛋糕出现,比如前几年手机资费增速降费后,智能手机普及下乡,PDD和某音迅速从三四线城市和农村崛起,续写了当年淘宝弯道超车易趣的历史。
2025-02-20 09:51:52
617
原创 AG32VH407RC 驱动RGB屏
例程需要注意的是sysclk 150M, PSRAM 200M基本是该芯片的极限了。另外,在采用RGB888的时候,注意logic综合编译的时候Fmax有可能达不到约束条件,需要多编译几次试试。AGM推出的AG32VH407内置了64Mb的PSRAM, 读写速度可以达到惊人的200Mbytes/S。激动了一番,做了款开发板,测试测试PSRAM用于刷屏的速度。开发板采用了800x480的24bit RGB屏,对于我们普通的工业应用来说,16bit的色彩度也足够了,这样可以。有兴趣的开发者,可以试试。
2025-01-08 15:30:59
420
原创 AG32串口最高串口波特率(12M)
AG32官方文档中,串口最高波特率最高为460800,这个速率并不高,很多蓝牙芯片调试的时候都用到921600了。为此,特别验证一下,将一个串口的输出直接接到另一个串口的输入上,SYSCLK运行在200Mhz。当然,这个可能并不能完全说明什么,毕竟串口波特率是与时钟有关的,串口通讯属于异步通讯,波特率高了对时钟的要求也就高了。这里用同一个芯片进行收发测试,忽略了时钟的偏差。但是,不管怎么样,至少说明,在保证时钟精度的前提下,串口能达到12M的速率。串口1, 发送数据;2025年01月07日 16:07。
2025-01-08 13:56:08
661
原创 硬核来了!AG32芯片怎么用做纯cpld开发?纯cpld里怎么使用外部时钟和内部时钟?硬核ADC/DAC怎么应用起来?入门保姆级教程来了。
AG32芯片不止可以用做普通MCU,还可以用作MCU+cpld,还可以单独用作cpld。更深层次的,芯片内部的ADC/DAC怎么用起来?基础的时钟怎么用起来?单独用作cpld怎么用?
2025-01-07 14:54:17
362
原创 MCU+可编程逻辑:从Microchip、TI C2000到AG32
PIC16F13145 系列MCU的开发, 可以得到MPLAB® 代码配置器(MCC)的支持,MCC是Microchip的MPLAB X IDE中⼀个免费软件插件,为开发者提供了⼀个基于GUI的简便开发界面,用于配置器件和片上外设(包括CLB)。以上产品将可编程逻辑外设功能与MCU架构相结合,在继承MCU固有优势特性的同时,又带来了更佳的性能、低功耗特性和可扩展性,在实时控制、数字传感器节点,以及工业、消费和汽车等细分市场,为嵌入式开发者提供了全新的想象空间和开发体验。或四输入LUT构成。
2025-01-03 13:29:19
1345
原创 MCU芯片是什么意思_有哪些作用?
与MCU相比,SOC(System on Chip)是一种更高集成度的片上系统,它不仅包含了MCU那样的内置RAM、ROM,还集成了CPU、GPU等多种IC模块,能够处理更复杂的系统级代码。而SOC则是一种更高集成度的片上系统,它不仅包含了MCU的所有功能,还增加了更多的处理能力和系统级的编程能力,适用于更高端和复杂的电子设备。SOC通过集成更多的组件和更高的性能,能够更好地满足高端应用的需求,而MCU则因其成本效益高,在特定的应用场景中仍然占有一席之地。
2024-12-30 12:58:11
4609
原创 AG32 MCU AG32VH407RCT6更新RGB例程:HRAM_RGB例程
RGB支持888/565,支持16或24位数据,以及各种行列扫描参数,都可以在hram_ip.v 中修改。加入8位和16位支持。但是每读写一次,不论位宽,时间是基本一样的。所以还是建议使用32位读写。,使用HRAM的DMA(不是mcu的DMA)从HRAM向0x7000_0000搬运数据即可。加入了circular mode,可以自动不断运行。运行期间,可以使用直接读写,优先级在DMA之下。2024年12月25日 15:48。
2024-12-26 08:37:09
681
原创 AG32 离线烧录功能升级:加入下载器离线加密、限制下载次数
可输入英文字母或者数字的密码,存储在主控MCU中,同时离线烧录文件也用此密码加密。可以防止用户复制FLASH内容到其他设备使用。如果下面要限制次数,最好要配合这个使用。可以设置此离线烧录文件的烧录次数。每次烧录成功后,该次数会自动减一次。Check Limit 按钮可以查看当前剩余次数。LED D3 闪烁,烧录完成并验证成功后D1变亮(OK),烧录失败则D2变亮(NG)。2024年12月06日 16:48。设置框中,烧录离线文件时。
2024-12-25 11:17:20
542
原创 AGM CPLD悬空引脚的处理
但是该芯片没有复位引脚,那怎么办呢?最后我建议他将芯片程序擦除掉,这样CPLD就运行不起来。此时,功耗变小了,正常了。那看来还是那里没配置好,既然程序能正常工作,芯片也没短路,那问题很可能出在一些未使用的部分。应该是很多未使用的空PIN没有处理引起的。早上一个朋友问我,他在使用AG576SL100这颗CPLD。我一听,200mA明显不正常,除非被用来直接驱动LED点 阵了。因此,设计系统时一定不能忽略了一些未使用PIN的处理。安全起见,设置成输入,弱上拉。2024年12月18日 16:26。
2024-12-25 11:14:30
395
原创 AG32 MCU 的电机控制方案
利用 ADC 对电机电流进行实时采样,通过 FOC 算法中的电流环控制,根据设定的电流目标值,精确调整 PWM 信号的占空比,实现对电机电流的精准控制,进而实现电机转矩的精确调节。通过精心设计的硬件接口、先进的无感 FOC 控制算法以及完善的系统监测和保护机制,能够满足不同行业、不同应用场景下电机控制的多样化需求,为电机控制系统的高效、稳定、智能运行提供了可靠的解决方案。在风力发电系统中,AG32 控制的发电机电机实现了高效的电能转换,根据风速和负载情况自动调整电机的运行状态,确保风力发电系统的稳定输出。
2024-12-25 10:47:46
983
原创 AG32下使用cortex插件调试程序
功能上,cortex-debug在侧栏中增加了“CORTEX LIVE WATCH”以及“XPERIPERALS”菜单。“CORTEX LIVE WATCH”用于显示实时数据,是优于pio-debug的最主要的点。cortex-debug的功能相较platformIO自带的pio-debug更强大。两者的差异主要是在VSCode的界面上。体现在两个部分,一个是位于左侧的侧栏,一个是位于下面的面板。从SDK1.5.2开始,增加cortex-debug。这里新增的三项,就是cortex-debug。
2024-12-24 11:11:57
645
原创 AG32下使用os的参考
在SDK下已经有移植好的FreeRTOS Kernel V10.4.6 版本,可供用户使用。源码位于:\AgRV_pio\packages\framework-agrv_freertos\用户使用时,不必关注该源码,只需关注API使用即可。使用时,从VSCODE中直接打开工程:\AgRV_pio\platforms\AgRV\examples\freeRTOS打开工程后,可以先验证简单的运行情况。这个工程中,并没有ve文件(而是使用了默认的ve文件)。便于后续开发,可以先建立一份ve。
2024-12-24 11:09:49
795
原创 AG32下的分散加载与数组存放
那么你分散加载指定的这个地方,不能是0~128K之间的某个位置,必须要在128K以后。如果使用的芯片是256K的flash空间,那么就是156K程序+100K fpga,用户程序不能超过156K。实际操作时,代码些许的改动都会影响到bin的大小,所以这个指定的位置,往往会跟正常bin之间预留一些空间。在arm中,可以通过_attribute_( at(绝对地址) )的方式,把某个数组或某个函数强制编译到某个地址,并且不影响其他代码的编译。gcc使用ld指定的地址,不能在正常编译的code的区域内。
2024-12-24 11:07:50
967
原创 AG32 bootloader参考
这种场景下,设备连接到服务器,从服务器下载新版本的bin,然后设置好标记位,主动重启设备进入boot,判断到标记后,boot将下载好的新版本的bin覆盖掉本地的bin,从而完成版本的升级。---- 这个logic.bin,是在制作batch.bin时指定的logic,样例中,是app_loigc。C. boot代码最后跳转到app时,boot会再次释放app的logic,覆盖掉boot的logic;---- 所以,boot的代码真正跑起来,使用的是自己的logic(而不是app_logic);
2024-12-24 11:06:23
668
原创 参考其他样例
样例功能:把SDK整合到项目工程,把freeRTOS也整合到项目工程,增加了专门log输出。样例功能:工程中展示了bootloader的近端升级的样例(boot+app)样例功能:工程中展示了AG32下调用CPP代码的方法。点击查看说明 ->【详细说明】点击查看说明 ->【详细说明】点击查看说明 ->【详细说明】
2024-12-23 11:01:44
229
原创 联合编程样例
好消息是:所看到的cpld工程里的那么多的文件,其实在生成cpld空工程时,绝大部分都已经自动产生了。(因为最终编译时,会依赖alta_rv32.v这个库,这个库在本地SDK上路径不相同的),如果直接打开Quartus编译报错找不到alta_rv32这个文件,就是这个原因。的文档,自己在本地新建一个空的cpld工程,然后,再把样例中的cpld代码(使用到的“用户逻辑”)复制过去即可。样例功能:展示了如何用cpld中实现dma的流控,让mcu中配置的dma能正常从cpld中接收数据。正确的使用姿势是:参考。
2024-12-23 10:58:45
428
原创 四、spi样例
样例功能:该样例展示了spi全功能(带cpld)封装成普通函数的使用。样例功能:该样例展示spi(不带cpld)封装成普通函数的使用。点击查看说明 ->【详细说明】点击查看说明 ->【详细说明】
2024-12-23 10:55:16
236
原创 USB样例
样例功能:工程中cdc+msc+hid+midi四种全带。样例功能:在103工程上使用tinyUSB。点击查看说明 ->【详细说明】点击查看说明 ->【详细说明】点击查看说明 ->【详细说明】样例功能:枚举出U盘(msc)点击查看说明 ->【详细说明】点击查看说明 ->【详细说明】样例功能:双串口cdc。样例功能:单串口cdc。
2024-12-23 10:53:38
260
原创 ADC样例
alta_sim.v文件一般位于:C:/Users/[userName]/.platformio/packages/tool-agrv_logic/etc/arch/rodinia/如果直接打开样例工程,注意需要把Quartus工程里的alta_sim.v文件,替换成自己本地的alta_sim.v文件。样例功能:开启DMA来循环不间断读取ADC的多个channal的值。路径中的[userName],就是电脑的登录名。点击查看说明 ->【详细说明】点击查看说明 ->【详细说明】点击查看说明 ->【详细说明】
2024-12-23 10:52:20
406
原创 将SDK合并到工程的办法
在example工程下新建一个名为boards的文件夹,然后将\AgRV_pio\platforms\AgRV\boards\下文件copy过去(如用407,就copy文件夹agrv2k_407和407.json)。在example工程下新建一个名为framworks的文件夹,然后将\AgRV_pio\packages\下的framework-agrv_sdk 目录copy过去。另外,其实这里的inline_framework_dir方式,不止可以整合SDK到工程里,其他的。这里指定的路径下去找。
2024-12-20 11:57:24
826
原创 代码保护与加密
也就是说,同一个原始bin,通过downloader工具烧录到不同芯片时,最终烧录的内容是不同的。(这就保证,即使破解了某个芯片的bin,再烧录到其他芯片也是不能工作的。如果不使用VSCODE中的batch图标而是使用自定义batch命令(多个bin的情况),则是在命令后增加 --lock参数来使能。Lock flash是在烧录代码后,锁定flash,防止外部对flash中内容的读取。代码加密,会保证烧录到每颗芯片的内容,都是绑定自己的唯一ID的。两种加密方式是相互独立的,可以单独使用,也可以一起使用。
2024-12-20 10:54:18
307
原创 MCU驱动使用
上边章节“ADC/DAC的使用”部分,描述了使用默认logic的方法。默认logic中只包含了ADC/DAC/CMP的功能,如果有额外需求,则需要构建自定义logic。在自定义logic中,可以编写cpld,为芯片增加更多的功能支持。构建的详细流程,参考《AG32下fpga和cpld的使用入门.pdf》,或。
2024-12-20 10:46:49
1467
原创 将SDK合并到工程的办法
在example工程下新建一个名为boards的文件夹,然后将\AgRV_pio\platforms\AgRV\boards\下文件copy过去(如用407,就copy文件夹agrv2k_407和407.json)。在example工程下新建一个名为framworks的文件夹,然后将\AgRV_pio\packages\下的framework-agrv_sdk 目录copy过去。另外,其实这里的inline_framework_dir方式,不止可以整合SDK到工程里,其他的。这里指定的路径下去找。
2024-12-19 09:59:31
632
1
原创 AG32的程序烧录
这个时候是在VSCode下进行的。可以通过dap-link/JLink/uart烧录。code和logic是分开烧录的。修改哪个烧录哪个即可。这部分在“”中的“”章节已有介绍,这里不再赘述。batch.bin是二合一后的bin,通过downloader工具可以在线烧录。有关batch.bin的生成和烧录的操作,在“”中的“”章节也有介绍。这个时候,需要治具或者工具来方便的脱机烧录。AGM提供的dap-link烧录器,就是支持这种脱机烧录的。
2024-12-19 09:55:48
865
原创 纯粹使用CPLD
1.先使用Supra建立新cpld工程;首先是创建ve配置文件,然后再创建cpld工程模版,创建的该工程就是Quartus的空工程;2.用Quartus打开该工程并编写代码、综合;用Quartus来编写全部的代码,并且编译通过;3.最后再用Supra来编译出bin;这里编译出的bin就是要烧录到AGRV2K芯片的bin。
2024-12-19 09:49:26
885
原创 mcu+cpld 联合编程(概念及流程)
这部分和MCU使用是相仿的。在mcu里,都是mcu信号直接到PIN脚的映射。比如:那么,在使用cpld里,除了上述的“mcu信号到Pin脚”关联外,还允许“mcu信号到cpld信号”和“cpld信号到Pin脚”的两种关联。这里描述的三种关联,是常见的三种信号关联方式。详细使用方法,后续会介绍。这里需要知道的是,每次VE文件修改完以后,都要重新走一遍整个流程(从prepare LOGIC开始)。
2024-12-18 12:26:57
1290
原创 VSCode下的编译、调试、烧录
编译(debug):pio run -e dev -v#串口烧录ve配置:pio run -e serial -t logic#串口烧录code:pio run -e serial -t uploadjlink烧录ve配置: pio run -e release -t logicjlink烧录code: pio run -e release -t upload注:这里的烧录VE,其实是烧录logic。更多信息请参考后边描述。
2024-12-18 12:07:29
3560
原创 快速了解对标STM32可二次定制的芯片:AG32。AG32是什么?能做什么?超强性能体现点是什么?
也就是说,一颗AG32芯片,即包含一颗 mcu 的功能(最高 248M 主频),又包含了一颗 cpld(2K 逻辑单元)的功能。cpld可以辅助增加mcu无法实现的芯片功能(如:新增外设、实现高速逻辑)AG32芯片内置两部分硬核:MCU(risc-v)、cpld(2K)。同时使用 mcu 和 cpld(即:mcu 和 cpld 联合编程);通过cpld,还可以新增自己独有的功能。三种形式的使用方法各有不同,方案确定后请遵循各自的开发流程来进行。mcu部分可以平替市面上多数流行的芯片(如:ST系列)
2024-12-17 10:52:22
540
硬核来了!AG32芯片怎么用做纯cpld开发?
2025-04-03
(超硬核)【强烈建议收藏】在AG32开发板上实操:三种时钟晶振的使用、
2025-04-03
(珍藏版)AGM开发板 AG32VF407VGT6 超级详细的讲解视频,新手的入门宝典
2025-04-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人