《安富莱嵌入式周报》第312期:开源磁场照相机,仿生神经元PCB,开源无线耳机,手机系统PalmOS移植到各种单片机,开放系统组装协议OSAP
Posted 嵌入式系统
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《安富莱嵌入式周报》第312期:开源磁场照相机,仿生神经元PCB,开源无线耳机,手机系统PalmOS移植到各种单片机,开放系统组装协议OSAP相关的知识,希望对你有一定的参考价值。
周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104
更新一期视频教程:
BSP视频教程第26期:CAN/CANFD/CANopen专题,CANFD整个运行机制精讲,图文并茂,配合综合实战演练(2023-05-15)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=119189
视频版:
https://www.bilibili.com/video/BV1zL41167Ti
1、基于开放系统组装协议OSAP实现的简化硬件设计项目
软件开源:https://github.com/modular-things/modular-things
硬件开源:https://github.com/modular-things/modular-things-circuits
Web编辑器:https://modular-things.github.io/modular-things/
论文:https://dl.acm.org/doi/pdf/10.1145/3544549.3585642
开放系统组装协议OSAP是一种用于生成和集成模块化、可互操作硬件系统的新方法。这个设计更像是labwiew或者matlab的simulink,设计好各种工具组件,连接就可以添加使用。
当前提供了一个网页编辑器,可以JS,HTML/CSS编程控制设备。
Web网页:
2、8*8霍尔传感器阵列实现”磁场照相机“
https://github.com/sparkfunX/Magnetic_Imaging_Tile
这个设计很有创意, 64 个霍尔效应传感器阵列将磁场转换为”可见光谱“
3、超详细介绍移植早期的手机系统PalmOS到STM32F4,H7, 树莓派单片机等硬件
http://dmitry.gr/?r=05.Projects&proj=27.%20rePalm
有详细的目录,部分截图如下:
效果:
下面这个是移植到H7B0上的:
4、IDE相关:
(1)MDK的芯片软件包下载页面全面更改
https://www.keil.arm.com/packs/?page=2
更改后没有之前那种一目了然的感觉了,是否更新了也不知道了。主打一个难用。
(2)Embedded Studio升级至V7.20
https://www.segger.com/downloads/embedded-studio/
从更新记录来看,没更新什么东西,基本都是些版本更新。
(3)IAR Visual State 的最新更新增加了更好的跨平台支持和一系列新功能,并使大型分布式团队能够更有效地协同工作
5、教育用的神经元PCB--Lu.i
https://github.com/giant-axon/lu.i-neuron-pcb
https://github.com/giant-axon/lu.i-neuron-pcb
Lu.i是一个电子神经元电路,模仿真实生物神经元,有一串LED灯表示内部膜电位变化,每当膜电位超过预定义的阈值电压时,神经元就会发出短脉冲。多个板可以通过跳线连接以形成网络
示例网络效果:
6、开源入耳式无线耳机
https://github.com/teco-kit/open-earable
搭载6轴IMU,耳道压力和温度传感器,超声麦克风,喇叭等组成,主控采用nRF52840
框架:
效果:
7、GUI相关
(1)新唐和SEGGER加强合作,新唐所有单片机,MPU免费使用使用AppWizard和emWin
https://www.segger.com/news/segger-and-nuvoton-extend-emwin-gui-software-partnership/
(2)飞漫的MiniGUI 5.0.12 发布
依然在持续更新中
https://minigui.fmsoft.cn/download
8、IC新品
(1)ST推出STM32MP25
预计明年上半年上线
https://www.st.com/content/st_com/zh/campaigns/microprocessor-stm32mp2.html
(2)PIC32系列产品也出Cortex-M7内核单片机了,300M主频,8MB内部Flash, 汽车级AEC-Q100 Grade 2
(3)兆易创新推出的GD32H737/757/759系列Cortex-M7内核单片机今年10月起正式量产供货
https://www.gigadevice.com.cn/about/news-and-event/news/mcu-gd32h7
9、H7-TOOL本周进展
H7-TOOL详细介绍:https://www.armbbs.cn/forum.php?mod=viewthread&tid=89934
(1)脱机烧录
a、下次升级固件,脱机烧录增加芯圣8051(HC89、HC88、HC8M),当前已经完成
b、下次升级固件增加I2C EEPROM的脱机烧录功能,当前已经完成
c、H7-TOOL通过串口AT命令控制脱机烧录说明,含1拖4和1拖16
详细介绍帖子:https://www.armbbs.cn/forum.php?mod=viewthread&tid=111893
对于需要外置控制器控制TOOL,可以使用这种方案
(2)H7-TOOL信号发生器生成200Hz+5KHz调制波形方法
详细说明:https://www.armbbs.cn/forum.php?mod=viewthread&tid=119157
要求:
展示效果:
动态效果:
(3)H7-TOOL检索程序系统stak和heap使用情况,方便大家使用了malloc和中断嵌套情况的监测
详细操作说明:https://www.armbbs.cn/forum.php?mod=viewthread&tid=119024
(4)根据客户反馈问题,专门发了两期系统测评帖子
a、H7-TOOL测试8脚PY32F002的RTT,DAPLINK,脱机烧录和3.3V,5V供电的情况
详细介绍:https://www.armbbs.cn/forum.php?mod=viewthread&tid=119101
b、H7-TOOL测试N32G031的RTT,DAPLINK,脱机烧录和3.3V,5V供电的情况
详细介绍:https://www.armbbs.cn/forum.php?mod=viewthread&tid=119082
(5)H7-TOOL脱机读取目标板芯片内容存到eMMC里面LUA小程序实现
详细介绍:https://www.armbbs.cn/forum.php?mod=viewthread&tid=119124
(6)【原创】H7-TOOL的CANFD Trace操作说明,不需要目标板额外做任何代码, 支持在线和脱机玩法已经发布
详细介绍:https://www.armbbs.cn/forum.php?mod=viewthread&tid=118999
a、LUA小程序控制,使用灵活。
b、采用SWD接口直接访问目标板芯片的CANFD外设寄存器和CANFD RAM区实现,支持USB,以太网和WiFi方式以及内网和外网访问。
c、可以解析CANFD工作模式,波特率,采样点和是时钟误差率。
d、可以解析所有标准ID过滤器配置和所有扩展ID过滤器配置。
e、可以解析CANFD接收的Rx Buffer,Rx FIFO0和Rx FIFO1数据。
f、通过监测Tx Event FIFO解析Tx Buffer, TxFIFO/Queue的发送事件序列。
g、监测ECR错误计数器和PSR协议状态寄存器。
h、CANFD兼容经典CAN,CANFD用于经典CAN模式也是可以正常解析的。
i、CANFD基本都是采用博世的IP核,所以大家可以方便的修正移植到其他厂家的CANFD芯片监测。当前已经对STM32H7系列的CANFD1和CANFD2都进行了支持,后续会添加更多带CANFD芯片支持。当然,大家也可以自己修改添加。
《安富莱嵌入式周报》第298期:迷你火星探测器,开源单片机3D实时渲染库, 开源USB工业相机,VS2022开始支持MarkDown,PC-lint 2.0发布
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz!
上周更新一期视频教程:
BSP视频教程第25期:CAN/CANFD/CANopen专题,CAN知识点干货分享, 收发执行过程和错误帧处理(2023-01-03)
BSP视频教程第25期:CAN/CANFD/CANopen专题,CAN知识点干货分享, 收发执行过程和错误帧处理(2023-01-03) - STM32H7 - 硬汉嵌入式论坛 - Powered by Discuz!
视频版:
https://www.bilibili.com/video/BV1q44y1974V
《安富莱嵌入式周报》第298期:迷你火星探测器,开源单片机3D实时渲染库, 开源USB工业相机,VS2022开始支持MarkDown,PC-lint 2.0发布
1、迷你火星探测器
非常有意思的设计,作者从3D打印,硬件,软件设计一条龙,作者全部开源了,大家有兴趣可以看看
动态效果(末尾是小车带的摄像头拍的)
整体效果:
2、全开源的交互式动画可视数学组件mafs
https://github.com/stevenpetryk/mafs
Mafs: React components for interactive math
这个是基于React(用于构建用户界面的JS库)实现,方便大家构建自己可视化数学效果
比如这里向量场效果:
贝塞尔曲线
运动曲线
3、全开源单片机2D/3D渲染库EmberGL
https://github.com/EmberGL-org/EmberGL
EmberGL(Ember Graphics Library)是底层开源图形库,类似于OpenGL / DirectX / Vulkan,设计用于单片机和其他内存受限的非GPU系统上的实时2D / 3D渲染。图形 API 专为此类系统设计,利用现代技术能够在紧张的内存预算内最大限度地提高渲染性能,同时提供很大的灵活性和可定制性。
展示下DMA方式驱动ILI9341的效果:
4、总线接口知识点汇总
http://www.interfacebus.com/Interface_Bus_Types.html
网站还不错,汇总了一些常用接口知识点整理
比如I2C
5、ESP32+RP2040的二合一设计板
https://github.com/MDCservice/EsPiFF
大家可以看看有没有可以参考的,整体设计不错
规格:
效果:
6、飞漫的MiniGUI发布5.0.11
不容易,还在持续的更新中,我们上学那会就是用的这个还有uCGUI3.X
https://github.com/VincentWei/minigui/blob/rel-5-0/RELEASE-NOTES.md#whats-new-in-version-5011
这个应该是我们国内最早的GUI组件了。
7、PC-lint Plus 2.0发布
主要用于C/C++的静态代码分析。
8、微型发电机可以用一个雨滴点亮100个LED灯泡
一项非常有意思的研究,研究人员设计了一种微小但高效的发电机,可以产生足够的电力,只需一滴水,雨水或海水即可点亮100个LED灯泡
9、Creative Commons知识共享许可
Creative Commons — 署名-非商业性使用-禁止演绎 3.0 未本地化版本 — CC BY-NC-ND 3.0
非常好的许可协议,文档资料等开源,可以考虑下这种开源协议
10、CiA联盟分享的2023年CAN总线工作安排
CAN in Automation (CiA): CAN Info Mail
主要是一些文档的更新,设备测试,研讨会等。当前CiA整理的CAN文件有2万多页
11、VS2022 17.5开始支持MarkDown格式编写
Write markdown without leaving Visual Studio - Visual Studio Blog
这个功能更新很有意义,不需要再安装个别的软件做MD文件编写更新了。
12、开源的C口镜头USB工业相机
Embedded Engineering : Making Opensource USB C industrial camera with Interchangeable C mount lens, Interchangeable MIPI Sensor with Lattice Crosslink NX FPGA and Cypress FX3 USB 3.0 controller
https://github.com/circuitvalley/USB_C_Industrial_Camera_FPGA_USB3
效果
作者在自己的帖子里面进行了详细的设计介绍,当前测试的摄像头传感器如下:
13、H7-TOOL本周进展
(1)添加新的脱机烧录芯片支持
(2)H7-TOOL的RTOS Trace功能整理完毕FreeRTOS版就可以发布了,本周测试了以太网和WiFi接口方式
WiFi方式,测试1s刷新一次基本问题不大
以太网方式,可以250ms刷新
(3)纪念几套不断电的H7-TOOL第2轮测试已经整一年
两个测试贴,目的是长期开机不断电外网远程监控测试,以及意外断电后是否还可以正常启动,也方便我们测试下TOOL的耐操性。从而继续提升H7-TOOL的战斗力
H7-TOOL实战应用,两套WiFi方式的H7-TOOL布局到村里面,开启远程稳定性测评之旅(2023-01-05,已经不断电运行143 + 370天) - H7-TOOL开发工具 - 硬汉嵌入式论坛 - Powered by Discuz!
H7-TOOL应用实战,布局三套TOOL到村里各个地方,开启外网远程测监控之旅(2023-01-05,已不断电运行171 + 370天) - H7-TOOL开发工具 - 硬汉嵌入式论坛 - Powered by Discuz!
这几套TOOL已经不断电测量两轮,第2轮测试已经整一年不断电,纪念下,分别测试了WiFi版和以太网版。
当时用的还是2.11版固件,等2.20版固件发布后,继续开启第3轮测试。
(4) H7-TOOL的CAN/CANFD助手实现SWD接口方式读取目标板CAN错误状态监测
近期做CAN/CANFD/CANopen专题视频教程,正好研究下这个实现。起初是打算采用这个功能(直接读取各个IC厂家提供的CMSIS SVD文件生成LUA程序,像MDK,IAR在线调试那样实时检测外设状态)实现,只是当前还没有好点的LUA转换方案。
方便起见,准备先手动整理了,直接通过HAL库的寄存器定义整理就行了,也非常方便。
#define FDCAN1_BASE (D2_APB1PERIPH_BASE + 0xA000UL)
#define FDCAN2_BASE (D2_APB1PERIPH_BASE + 0xA400UL)
#define FDCAN1 ((FDCAN_GlobalTypeDef *) FDCAN1_BASE)
#define FDCAN2 ((FDCAN_GlobalTypeDef *) FDCAN2_BASE)
#define FDCAN_CCU ((FDCAN_ClockCalibrationUnit_TypeDef *) FDCAN_CCU_BASE)
/**
* @brief FD Controller Area Network
*/
typedef struct
__IO uint32_t CREL; /*!< FDCAN Core Release register, Address offset: 0x000 */
__IO uint32_t ENDN; /*!< FDCAN Endian register, Address offset: 0x004 */
__IO uint32_t RESERVED1; /*!< Reserved, 0x008 */
__IO uint32_t DBTP; /*!< FDCAN Data Bit Timing & Prescaler register, Address offset: 0x00C */
__IO uint32_t TEST; /*!< FDCAN Test register, Address offset: 0x010 */
__IO uint32_t RWD; /*!< FDCAN RAM Watchdog register, Address offset: 0x014 */
__IO uint32_t CCCR; /*!< FDCAN CC Control register, Address offset: 0x018 */
__IO uint32_t NBTP; /*!< FDCAN Nominal Bit Timing & Prescaler register, Address offset: 0x01C */
__IO uint32_t TSCC; /*!< FDCAN Timestamp Counter Configuration register, Address offset: 0x020 */
__IO uint32_t TSCV; /*!< FDCAN Timestamp Counter Value register, Address offset: 0x024 */
__IO uint32_t TOCC; /*!< FDCAN Timeout Counter Configuration register, Address offset: 0x028 */
__IO uint32_t TOCV; /*!< FDCAN Timeout Counter Value register, Address offset: 0x02C */
__IO uint32_t RESERVED2[4]; /*!< Reserved, 0x030 - 0x03C */
__IO uint32_t ECR; /*!< FDCAN Error Counter register, Address offset: 0x040 */
__IO uint32_t PSR; /*!< FDCAN Protocol Status register, Address offset: 0x044 */
__IO uint32_t TDCR; /*!< FDCAN Transmitter Delay Compensation register, Address offset: 0x048 */
__IO uint32_t RESERVED3; /*!< Reserved, 0x04C */
__IO uint32_t IR; /*!< FDCAN Interrupt register, Address offset: 0x050 */
__IO uint32_t IE; /*!< FDCAN Interrupt Enable register, Address offset: 0x054 */
__IO uint32_t ILS; /*!< FDCAN Interrupt Line Select register, Address offset: 0x058 */
__IO uint32_t ILE; /*!< FDCAN Interrupt Line Enable register, Address offset: 0x05C */
__IO uint32_t RESERVED4[8]; /*!< Reserved, 0x060 - 0x07C */
__IO uint32_t GFC; /*!< FDCAN Global Filter Configuration register, Address offset: 0x080 */
__IO uint32_t SIDFC; /*!< FDCAN Standard ID Filter Configuration register, Address offset: 0x084 */
__IO uint32_t XIDFC; /*!< FDCAN Extended ID Filter Configuration register, Address offset: 0x088 */
__IO uint32_t RESERVED5; /*!< Reserved, 0x08C */
__IO uint32_t XIDAM; /*!< FDCAN Extended ID AND Mask register, Address offset: 0x090 */
__IO uint32_t HPMS; /*!< FDCAN High Priority Message Status register, Address offset: 0x094 */
__IO uint32_t NDAT1; /*!< FDCAN New Data 1 register, Address offset: 0x098 */
__IO uint32_t NDAT2; /*!< FDCAN New Data 2 register, Address offset: 0x09C */
__IO uint32_t RXF0C; /*!< FDCAN Rx FIFO 0 Configuration register, Address offset: 0x0A0 */
__IO uint32_t RXF0S; /*!< FDCAN Rx FIFO 0 Status register, Address offset: 0x0A4 */
__IO uint32_t RXF0A; /*!< FDCAN Rx FIFO 0 Acknowledge register, Address offset: 0x0A8 */
__IO uint32_t RXBC; /*!< FDCAN Rx Buffer Configuration register, Address offset: 0x0AC */
__IO uint32_t RXF1C; /*!< FDCAN Rx FIFO 1 Configuration register, Address offset: 0x0B0 */
__IO uint32_t RXF1S; /*!< FDCAN Rx FIFO 1 Status register, Address offset: 0x0B4 */
__IO uint32_t RXF1A; /*!< FDCAN Rx FIFO 1 Acknowledge register, Address offset: 0x0B8 */
__IO uint32_t RXESC; /*!< FDCAN Rx Buffer/FIFO Element Size Configuration register, Address offset: 0x0BC */
__IO uint32_t TXBC; /*!< FDCAN Tx Buffer Configuration register, Address offset: 0x0C0 */
__IO uint32_t TXFQS; /*!< FDCAN Tx FIFO/Queue Status register, Address offset: 0x0C4 */
__IO uint32_t TXESC; /*!< FDCAN Tx Buffer Element Size Configuration register, Address offset: 0x0C8 */
__IO uint32_t TXBRP; /*!< FDCAN Tx Buffer Request Pending register, Address offset: 0x0CC */
__IO uint32_t TXBAR; /*!< FDCAN Tx Buffer Add Request register, Address offset: 0x0D0 */
__IO uint32_t TXBCR; /*!< FDCAN Tx Buffer Cancellation Request register, Address offset: 0x0D4 */
__IO uint32_t TXBTO; /*!< FDCAN Tx Buffer Transmission Occurred register, Address offset: 0x0D8 */
__IO uint32_t TXBCF; /*!< FDCAN Tx Buffer Cancellation Finished register, Address offset: 0x0DC */
__IO uint32_t TXBTIE; /*!< FDCAN Tx Buffer Transmission Interrupt Enable register, Address offset: 0x0E0 */
__IO uint32_t TXBCIE; /*!< FDCAN Tx Buffer Cancellation Finished Interrupt Enable register, Address offset: 0x0E4 */
__IO uint32_t RESERVED6[2]; /*!< Reserved, 0x0E8 - 0x0EC */
__IO uint32_t TXEFC; /*!< FDCAN Tx Event FIFO Configuration register, Address offset: 0x0F0 */
__IO uint32_t TXEFS; /*!< FDCAN Tx Event FIFO Status register, Address offset: 0x0F4 */
__IO uint32_t TXEFA; /*!< FDCAN Tx Event FIFO Acknowledge register, Address offset: 0x0F8 */
__IO uint32_t RESERVED7; /*!< Reserved, 0x0FC */
FDCAN_GlobalTypeDef;
以上是关于《安富莱嵌入式周报》第312期:开源磁场照相机,仿生神经元PCB,开源无线耳机,手机系统PalmOS移植到各种单片机,开放系统组装协议OSAP的主要内容,如果未能解决你的问题,请参考以下文章
《安富莱嵌入式周报》第298期:迷你火星探测器,开源单片机3D实时渲染库, 开源USB工业相机,VS2022开始支持MarkDown,PC-lint 2.0发布
《安富莱嵌入式周报》第243期:2021.12.06--2021.12.12
《安富莱嵌入式周报》第250期:2022.01.24--2022.01.30
《安富莱嵌入式周报》第244期:2021.12.13--2021.12.19