《安富莱嵌入式周报》第347期:分立元件自制14bit分辨率DAC,开源电池测试仪,大量位操作技巧,1000行C自制文本编辑器,ARM汇编入门教程,生动数学动画
周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104
视频版
https://www.bilibili.com/video/BV1SFq9YAE4j/
目录:
1、分立元件自制14bit分辨率DAC
2、开源电池测试仪
3、微软为VS Code制作的AI Toolkit插件
4、Zephyr相关
(1)好消息,IAR宣布2025年将原生支持Zephyr,同时加强对MPU的支持
(2)Arduino内核开始逐步从MbedOS过渡到Zephyr,已经发布beta版
5、有意思的字符树小软件
6、硬件资讯
(1)STM32N6单片机AI芯片发布
(2)树莓派单片机新品套件RP2350 Pico2 W发布,带了wifi蓝牙二合一模组
7、反汇编,二进制分析,逆向工程开发工具合集
8、大量位操作技巧,并且发现这些操作中bug的人,作者支付10美元
9、手把手1000行C代码自制文本编辑器,且支持语法高亮
10、手把手C语言编写哈希表
11、分享个简易的ARM汇编入门教程
12、ARM推出的CMSIS全家桶研讨会视频,已经录制发布了5期
13、Eclipse打算搞个具有物联网功能的CAN组件CANought来支持组装J1939,UDS , CANopen等
14、生动的数学动画视频
15、H7-TOOL本周进展
(1)开始H7-TOOL的2.27版本固件收尾工作,不出意外本周一定可以完成
(2)H7-TOOL的LUA API手册V1.0版完整目录,已经完成。
(3)H7-TOOL脱机烧录增加中微BAT32A233和泰为TAE32G5800支持
(4)H7-TOOL示波器自检CANFD/CANFD助手是否正常输出波形,单设备,无需外置CAN节点
(5)H7-TOOL自制Flash读写保护算法系列,为复旦微FM33LG和FM33LE制作使能和解除算法,支持在线烧录和脱机烧录使用
1、分立元件自制14bit分辨率DAC
https://sinelab.net/post/diy-14-bit-string-dac/
有几种不同的架构可以实现DAC。R-2R DAC 使用梯形排列的电阻,根据输入情况向输出添加或移除电压。Δ-Σ DAC 使用低位 DAC 和滤波器来实现精确的模拟输出。还有很多其他类型的 DAC,作者这里是采用带插值的串行DAC实现。
6-bit-string-dac.pdf (816.45 KB)
8-bit-interpolator.pdf (2.29 MB)
部分原理图
2、开源电池测试仪
https://hackaday.io/project/2018 ... tery-tester/details
这款电池容量测试仪是一款智能多用途电池测试仪,不限于评估电池的容量,还可以计算 IR 测试、分析测试和充电测试等多个参数。
3、微软为VS Code制作的AI Toolkit插件
AI Toolkit for Visual Studio Code 是一个扩展,旨在帮助开发人员和 AI 工程师轻松构建 AI 应用程序,通过本地或云端开发和测试生成式 AI 模型。AI Toolkit 支持市场上大多数生成式 AI 模型。
4、Zephyr相关
(1)好消息,IAR宣布2025年将原生支持Zephyr,同时加强对MPU的支持
Zephyr里面有很多好组件可以参考学习,但苦于编程环境对初学者不太友好。
IAR此举非常有意义。
https://www.presseagentur.com/iar/detail.php?pr_id=7205&lang=en
(2)Arduino内核开始逐步从MbedOS过渡到Zephyr,已经发布beta版
Mbed退出历史舞台后,Arduino使用MbedOS做内核的几款板卡GIGA, Nano 33 BLE, Nano RP2040 Connect, Portenta, Nicla family, and Opta开始过度到Zephyr上
https://github.com/arduino/ArduinoCore-zephyr
5、有意思的字符树小软件
大家有兴趣可以看看
https://github.com/Ben-Edwards44/PyBonsai?tab=readme-ov-file#tree-types-leaves
6、硬件资讯
(1)STM32N6单片机AI芯片发布
这款芯片是2022年7月份正式对外公布,历时2年半时间正式发布。
主频800M,4.2MB RAM,没有内置Flash,只有128KB的BOOT
NPU算力600GOPS,主频1GHz
如果是M85内核就爽了,M55和M85的内核性能有点差距,等ST基于M85内核的STM32V8芯片发布
(2)树莓派单片机新品套件RP2350 Pico2 W发布,带了wifi蓝牙二合一模组
https://www.raspberrypi.com/news/raspberry-pi-pico-2-w-on-sale-now/
售价仅为 7 美元, 板载英飞凌的CYW43439,提供 2.4GHz WiFi 和蓝牙 5.2 连接,支持 C 和 MicroPython
RP2040无线和RP2350无线比较
7、反汇编,二进制分析,逆向工程开发工具合集
https://github.com/mohitmishra786/reversingBits
8、大量位操作技巧,并且发现这些操作中bug的人,作者支付10美元
截至2005年5月5日,所有代码都经过了彻底测试。成千上万的人已经阅读过它。此外,卡内基梅隆大学计算机科学系主任Randal Bryant教授已经用他的Uclid代码验证系统亲自测试了几乎所有内容。
第一个向作者报告代码中合法错误的人,我将支付10美元的赏金(通过支票或Paypal)。如果捐给慈善机构,我将支付20美元。
https://graphics.stanford.edu/~seander/bithacks.html
9、手把手1000行C代码自制文本编辑器,且支持语法高亮
https://viewsourcecode.org/snaptoken/kilo/
这是一本指导手册,教你如何用C语言构建一个文本编辑器。
这个文本编辑器是antirez kilo,做了一些修改。它大约有1000行C代码,放在一个文件中,没有任何依赖项,实现了一个最小编辑器的所有基本功能,包括语法高亮和搜索功能。
这本手册将带你一步步构建编辑器,共有184个步骤。每一步,你都会添加、修改或删除几行代码。大多数步骤中,用户可以通过编译和运行程序立即观察到所做的更改。
作者会在每一步中进行解释,有时会非常详细。用户可以随意浏览或跳过这些解释,因为主要目的是让你从头开始构建一个文本编辑器!在此过程中学到的任何东西都是额外的收获,仅仅通过输入代码的更改并观察结果就能学到很多
10、手把手C语言编写哈希表
https://github.com/jamesroutley/write-a-hash-table
哈希表(Hash Table)是一种非常高效的数据结构,用于在常数时间内进行插入、删除和查找操作。它通过将键值对存储在一个数组中,并使用哈希函数将键映射到数组中的一个位置,从而实现快速访问
11、分享个简易的ARM汇编入门教程
https://azeria-labs.com/writing-arm-assembly-part-1/
打开后看右侧列表,一共做了7期
末尾他们还提供了一个ARM汇编指令高清壁纸
https://www.armbbs.cn/forum.php?mod=viewthread&tid=121001
常见的C编程语句在MDK中会被识别成的汇编指令汇总
12、ARM推出的CMSIS全家桶研讨会视频,已经录制发布了5期
https://www.arm.com/resources/webinar/cmsis-solution
原文如下,google翻译:
加入我们,参加一系列有见地的网络研讨会“CMSIS解决方案”,我们将深入探讨由Arm、NXP和STMicroelectronics领导的Open-CMSIS-Pack工作组所做工作的好处、开发流程和层次概念。
每个会议将帮助你加深对CMSIS解决方案的理解,涵盖以下关键主题:
1、好处和优势
2、开发和工具流程
3、在图形、工业连接、网络和AI/ML等领域的软件发现
4、高级用例
特邀嘉宾将分享CMSIS-Packs如何帮助工程师快速评估他们的软件解决方案。每个会议开始时有20分钟的演示或演示,然后是10分钟的问答环节,给你充足的机会与我们的专家互动并解答你的问题。
这一系列研讨会专为嵌入式软件开发人员和工程师设计,旨在增强他们对CMSIS在项目中应用的理解。许多最新的改进将使用Visual Studio Code进行演示。不要错过这个机会,深入了解并充分利用CMSIS在你的项目中的潜力。
13、Eclipse打算搞个具有物联网功能的CAN组件CANought来支持组装J1939,UDS , CANopen等
https://newsroom.eclipse.org/ecl ... -and-telematics-gap
CAN总线在过去的二十年里一直是车载硬件的关键组件,使车辆内的不同ECU能够相互通信。虽然这一点没有改变,但车辆架构已经演变,软件在其中扮演着越来越重要的角色。因此,现在有许多远程信息处理应用程序,能够实现边缘分析、预测和ECU软件更新等功能。然而,这些远程信息处理应用程序访问车载ECU时,没有标准/安全的应用程序编程接口(API)。
CANought 项目目前正在 Eclipse 基金会孵化,核心架构的开发工作正在进行中。对于 CANought 的前两个组件,即 CAN 客户端和 CAN 翻译服务器,工作进展顺利,计划在不久的将来发布 1.0 功能版本。同时,CAN 翻译服务器的工作重点是创建一个能够无缝集成不同 CAN 协议库的开源版本。
14、生动的数学动画视频
视频效果制作的非常棒,可能部分网友应该之前看过
作者:Alan Becker
地址:https://www.armbbs.cn/forum.php?mod=viewthread&tid=126847
15、H7-TOOL本周进展
H7-TOOL详细介绍:https://www.armbbs.cn/forum.php?mod=viewthread&tid=89934
1、开始H7-TOOL的2.27版本固件收尾工作,不出意外本周一定可以完成
本次升级增加了几十款脱机烧录芯片的支持,整合到新的2.27版本固件后,做最后一次的单路脱机,1拖4脱机和1拖16脱机验证,没问题后发布。
不出意外本周一定可以完成。
2、H7-TOOL的LUA API手册V1.0版完整目录,已经完成。
花了两周时间,终于把首版LUA API手册制作完成,将随2.27版本固件一起发布
功能简介
-- H7-TOOL的Lua小程序功能是一个非常重要的功能。用户编写Lua小程序并下载到H7-TOOL内部,之后就可以脱离PC机执行。
-- H7-TOOL的脱机烧录功能就是结合Lua小程序实现了复杂的业务逻辑。实现各种小程序,不再限制Flash里面已经下载的程序,就跟手机安装APP差不多,所以在H7-TOOL里面被广泛使用,支持在线调试运行,支持离线运行。
-- 支持USB,以太网和WiFi的在线控制运行和离线控制运行。且局域网和外网也可以控制。
应用场合
-- 生产线批量设置产品参数、成品检测
-- 研发人员验证电路板模块功能
-- 测试人员测试产品
-- 脱机产品检测,日志记录等
LUA API涵盖内容,还有几十个API,后面升级添加
(1) 系统控制函数
(2) 信号发生器
(3) 4-20mA输入输出
(4) GUI显示
(5) 文件系统
(6) 10路GPIO控制
(7) 4路PWM
(8) 脱机烧录控制
(9) I2C主机从机
(10) SPI主机从机
(11) 电压电流采集
(12) 串口/232/485/Modbus,支持离线日志
(13) CAN/CANFD/CANopen/UDS/J1939
(14) NTC热敏电阻
(15) 微型数控电源
(16) 支持IO扩展
(17) 支持传感器扩展
(18) 支持脉冲测量
(19) SWD调试接口函数,读写各种类型数据,内存和寄存器等。
(20) 支持串口,SPI,I2C和CAN的bootloader脱机更新
(21) 扩展驱动AD7606, ADS1256,MCP3421, 8路继电器和5路DS18B20
3、H7-TOOL脱机烧录增加中微BAT32A233和泰为TAE32G5800支持
中微BAT32A233
泰为TAE32G5800
4、H7-TOOL示波器自检CANFD/CANFD助手是否正常输出波形,单设备,无需外置CAN节点
详细介绍贴:https://www.armbbs.cn/forum.php?mod=viewthread&tid=126753
为了方便大家测试H7-TOOL的CAN硬件是否可以正常输出,这里提供一个仅需TOOL就可以方便测试方法。
同时开启TOOL的示波器和CANFD助手功能即可,方便大家做自检。
CAN上位机配置使用经典CAN,波特率50Kbps
启动循环发送:
然后启动示波器,默认1M采集即可
5、H7-TOOL自制Flash读写保护算法系列,为复旦微FM33LG和FM33LE制作使能和解除算法,支持在线烧录和脱机烧录使用
说明:
很多IC厂家仅发布了内部Flash算法文件,并没有提供读写保护算法文件,也就是选项字节算法文件,需要我们制作。
实际上当前已经发布的TOOL版本,已经自制很多了,比如已经支持的兆易创新大部分型号,新唐的大部分型号等。但是依然有些厂家还没自制,所以陆续开始为这些厂家提供读写保护支持。
近期已经自制了STM32H7全系列,N32G003,N32G031, STM32U5全系列和凌欧LKS32MC03X。
这次为复旦微FM33LE系列也提供支持。
实现效果:
从2.27版本开始将正式支持FM33LE系列,支持解除和使能。其中FM33LG系列,在当前已经发布的2.26版本里面已经支持了。
SWD接口保护后,读取出来的内容都是0x55