《安富莱嵌入式周报》第290期:开源静电便携测试仪,开源音频功放,CAN高波特率设计,超级铁电产品,小米Vela系统,65W USB PD充电器参考设计
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz!
上周更新了一期视频教程:
USB应用实战视频教程第4期:手把手玩转基于QT6.4的USB BULK上位机和下位机开发下篇(2022-11-07)
USB应用实战视频教程第4期:手把手玩转基于QT6.4的USB BULK上位机和下位机开发下篇(2022-11-07) - USB - 硬汉嵌入式论坛 - Powered by Discuz!
视频版:
https://www.bilibili.com/video/BV1CK411m7F7
《安富莱嵌入式周报》第290期:开源静电便携测试仪,开源音频功放,CAN高波特率设计,超级铁电产品,小米Vela系统,65W USB PD充电器参考设计
1、开源音频功放
Elektor "Fortissimo-100" Power Amplifier Kit | Elektor Magazine
帖子里面有详细的分析说明和测试参数报告
电源具有稳定的对称+/- 40 V,以确保最佳性能。
最大功率 (THD 1%) 在 8 Ω负载下接近 100 W,在 4 Ω负载下接近 190 W(参见测量)。所有部件均为通孔,便于构建放大器。设计是完全对称的。
原理图:
效果:
2、FatFS作者ChaN老师分享开源表面电位计产品
Surface Potential Meter
在旱季,我们经常受到金属物体的电击,尤其是门把手。这是由于人体中带有静电。任何物体都可以带电,通常,物体的电势达到几千伏或更高。静电经常导致电子设备故障或损坏。
一直想知道物体或人体中带了多少静电,所以建立了一个表面电位计来测量带电物体的电势。
3、小米基于NuttX全家桶设计的物联网系统Vela
Xiaomi Vela - 小米物联网嵌入式软件平台
NuttX的玩法和Zephyr差不多,后面我们H7-TOOL的RTOS Trace功能支持NuttX时深究下。
4、国产江波龙发布中国大陆首款车规级UFS
- Longsys
当前推出的车规级UFS 2.1版本能够满足客户从eMMC向UFS 存储迭代的基本需求,FORESEE车规级UFS 3.1的128GB与256GB产品也将会陆续推出。
5、TI继续加强直营,推出API接口实时获取产品库存和价格变更,并且无需登陆官网就可以直接下单
借助 TI API 节省购买时间和精力 | TI.com.cn
这种方式确实是方便太多了。
6、ThreadX基于NetXDUO推出的OTA无线固件更新和安全管理功能
https://github.com/azure-rtos/netxduo
https://github.com/azure-rtos/netxduo/tree/master/addons/azure_iot
Azure RTOS 的设备更新 | Microsoft Learn
7、NXP的两款MCX N系列AI单片机发布
Push the Edge of What’s Possible with NXP’s MCX N Advanced Series MCUs | NXP Semiconductors
总体来看,还是挺有特色的,双核M33,两个16bit ADC,1个14bit DAC,2个12bit DAC,USB带片上高速PHY。
NPU神经网络,智能DMA,DSP协处理器(非M内核自带的DSP单元)
与单独的CPU内核相比,集成的神经处理单元可实现高达30倍的机器学习(ML)运算加速,减少唤醒时间并降低总功耗
8、CAN系统中高波特率设计应用笔记
https://www.kvaser.com/wp-content/uploads/2013/12/canefpaper.pdf
非常好的一篇文件,给大家分享下
9、简单易用的树莓派单片机VSCode插件
Pico-W-Go - Visual Studio Marketplace
从效果来看,使用比较方便
10、用于Windows端LUA编程的LuaRT升级至V1.1.0
https://github.com/samyeyo/LuaRT
有自己的IDE,实际效果还不错
11、ST推出一款可编程的65W USB Type-C PD的充电器参考设计
EVLONE65W - Very high power density board 65W USB Type-C PD based on ST-ONE and MASTERGAN4 - STMicroelectronics
这个板子是基于ST-ONE主控芯片,采用的M0+内核
规格:
效果:
12、英飞凌推出超级铁电产品,108M SDR QSPI,10^14擦写次数,100+年数据存储
性能还是很强的,支持50MHz标准SPI或者108M SDR QSPI,写入无延迟,真RAM(写入无需查询),无需擦写均衡,容量范围从2Mb到16Mb,
EXCELON™ F-RAM - Infineon Technologies
13、继CMSIS-DSP独立出来后,CMSIS-NN也开始独立更新了
之前都是在CMSIS综合包里面,现在也开始独立更新版本了:
https://github.com/ARM-software/CMSIS-NN
14、一篇非常棒的GPS基础理论知识普及贴,图文并茂
GPS – Bartosz Ciechanowski
15、Modbus主从机数据量较大时,解析可以做成map映射表的形式,方便修改
之前分享的视频和文档:
BSP视频教程第23期:通过Modbus解析器,轻松掌握Modbus主从协议栈(2022-09-16)
BSP视频教程第23期:通过Modbus解析器,轻松掌握Modbus主从协议栈(2022-09-16) - STM32H7 - 硬汉嵌入式论坛 - Powered by Discuz!
BSP视频教程第24期:应用实战,设计一款属于自己的Modbus RTU主从协议栈(2022-10-03)
BSP视频教程第24期:应用实战,设计一款属于自己的Modbus RTU主从协议栈(2022-10-03) - STM32H7 - 硬汉嵌入式论坛 - Powered by Discuz!
Modbus收发数据少的话,直接已经发布的例子方案即可,如果上百上千个寄存器处理,可以考虑map映射表的形式。
代码查看:
/*
*********************************************************************************************************
* 函 数 名: MODS_01H
* 功能说明: 读取线圈状态(对应远程开关D01/D02/D03)
* 形 参: 无
* 返 回 值: 无
*********************************************************************************************************
*/
/* 说明:这里用LED代替继电器,便于观察现象 */
typedef struct
{uint8_t (*ModbusCbFuncRead)(uint8_t arg); /* Modbus回调处理函数,如果参数多,考虑将uint8_t改成结构体定义 */void (*ModbusCbFuncWrite)(uint8_t arg); /* Modbus回调处理函数 */uint16_t ModbusRegStart; /* 寄存器起始地址 */uint16_t ModbusRegEnd; /* 寄存器结束地址 */uint16_t Reserve1; /* 保留未使用,可以自己扩增 */uint16_t Reserve2;uint16_t Reserve3;
}MODBUS_T;const MODBUS_T g_tModbus_01_MAP[] =
{{bsp_IsLedOn, bsp_LedToggle, 0x0101, 0x0104, 0, 0, 0},{NULL, NULL, 0x2101, 0x2104, 0, 0, 0}, {NULL, NULL, 0x3101, 0x3104, 0, 0, 0},
};static void MODS_01H(void)
{/*举例:主机发送:11 从机地址01 功能码00 寄存器起始地址高字节13 寄存器起始地址低字节00 寄存器数量高字节25 寄存器数量低字节0E CRC校验高字节84 CRC校验低字节从机应答: 1代表ON,0代表OFF。若返回的线圈数不为8的倍数,则在最后数据字节未尾使用0代替. BIT0对应第1个11 从机地址01 功能码05 返回字节数CD 数据1(线圈0013H-线圈001AH)6B 数据2(线圈001BH-线圈0022H)B2 数据3(线圈0023H-线圈002AH)0E 数据4(线圈0032H-线圈002BH)1B 数据5(线圈0037H-线圈0033H)45 CRC校验高字节E6 CRC校验低字节例子:01 01 10 01 00 03 29 0B --- 查询D01开始的3个继电器状态01 01 10 03 00 01 09 0A --- 查询D03继电器的状态*/uint32_t n = 0;uint16_t reg;uint16_t num;uint16_t i;uint16_t m;uint8_t status[10];g_tModS.RspCode = RSP_OK;/** 第1步: 判断接到指定个数数据 ===============================================================*//* 没有外部继电器,直接应答错误地址(8bit)+指令(8bit)+寄存器起始地址高低字节(16bit)+寄存器个数(16bit)+ CRC16*/if (g_tModS.RxCount != 8){g_tModS.RspCode = RSP_ERR_VALUE; /* 数据值域错误 */return;}/** 第2步: 数据解析 ===========================================================================*//* 数据是大端,要转换为小端 */reg = BEBufToUint16(&g_tModS.RxBuf[2]); /* 寄存器号 */num = BEBufToUint16(&g_tModS.RxBuf[4]); /* 寄存器个数 *//* 不足字节整数倍,补齐 */m = (num + 7) / 8;/* 寄存器处理 */for(n = 0; n < (sizeof(g_tModbus_01_MAP)/sizeof(g_tModbus_01_MAP[0])); n++){/* 解析主机命令要读取的状态 */if ((reg >= g_tModbus_01_MAP[n].ModbusRegStart) && (num > 0) && (reg + num <= g_tModbus_01_MAP[n].ModbusRegEnd + 1)){for (i = 0; i < m; i++){status = 0;}for (i = 0; i < num; i++){if(g_tModbus_01_MAP[n].ModbusCbFuncRead != NULL){if (g_tModbus_01_MAP[n].ModbusCbFuncRead(i + 1 + reg - REG_D01)) /* 读LED的状态,写入状态寄存器的每一位 */{ status[i / 8] |= (1 << (i % 8));}}}}else{g_tModS.RspCode = RSP_ERR_REG_ADDR; /* 寄存器地址错误 */}}/** 第3步: 应答回复 =========================================================================*/if (g_tModS.RspCode == RSP_OK) /* 正确应答 */{g_tModS.TxCount = 0;g_tModS.TxBuf[g_tModS.TxCount++] = g_tModS.RxBuf[0]; /* 返回从机地址 */g_tModS.TxBuf[g_tModS.TxCount++] = g_tModS.RxBuf[1]; /* 返回从机指令 */g_tModS.TxBuf[g_tModS.TxCount++] = m; /* 返回字节数 */for (i = 0; i < m; i++){g_tModS.TxBuf[g_tModS.TxCount++] = status; /* 返回继电器状态 */}MODS_SendWithCRC(g_tModS.TxBuf, g_tModS.TxCount);}else{MODS_SendAckErr(g_tModS.RspCode); /* 告诉主机命令错误 */}
}
16、C语言方式实现的try catch异常捕获实现
https://github.com/madler/pigz/blob/master/try.h
try catch的作用是当程序发生错误时,能够保证程序继续执行下去,在C++上有专门的try catch供调用。
部分截图:
17、H7-TOOL本周进展
H7-TOOL详细介绍:
H7-TOOL开发工具,1拖4/16脱机烧录,高速DAPLINK,RTOS Trace,CAN/串口助手, 示波器, RTT等,支持WiFi,以太网,高速USB和手持 - H7-TOOL开发工具 - 硬汉嵌入式论坛 - Powered by Discuz!
(1)增加新的脱机烧录芯片支持中。
(2)H7-TOOL的Trace功能开始支持FreeRTOS的支持中,初步已经可以检索到任务。
FreeRTOS也是好几个链表要检索,跟RTX5有一拼,就绪有个链表,挂起有个链表,延迟有个链表等,需要逐个检索才能把所有的任务都搜索出来。
pxReadyTasksLists
xDelayedTaskList1
xDelayedTaskList2
xPendingReadyList
xTasksWaitingTermination
xSuspendedTaskList
初步效果如下,已经可以检索到任务了
下面是之前做RTX5 Trace
uCOS-III Trace
ThreadX Trace
《安富莱嵌入式周报》第290期:开源静电便携测试仪,开源音频功放,CAN高波特率设计,超级铁电产品,小米Vela系统,65W USB PD充电器参考设计相关推荐
- 安富莱v6开发板网口通讯_安富莱嵌入式周报第170期:2020.07.202020.07.26
说明: 谢谢大家的关注,继续为大家盘点上周精彩内容. 1.沁恒推出带USB3.0,千兆以太网,光纤接口的RISC内核单片机CH569 CH569/565 微控制器使用 RISC-V3A 内核, ...
- 《安富莱嵌入式周报》第245期:2021.12.20--2021.12.26
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
- 《安富莱嵌入式周报》第246期:2021.12.27--2022.01.02
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
- 《安富莱嵌入式周报》第269期:2022.06.06--2022.06.12
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
- 《安富莱嵌入式周报》第275期:2022.07.18--2022.07.24
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
- 《安富莱嵌入式周报》第285期:电子技术更新换代太快,我要躺平,Linux内核6.1已经并入RUST,一夜161个网站密码遭泄,Matlab精选课件,开源电子书
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
- 《安富莱嵌入式周报》第251期:2022.01.31--2022.02.06
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
- 《安富莱嵌入式周报》第249期:2022.01.17--2022.01.23
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
- 《安富莱嵌入式周报》第283期:全开源逆向“爆破”硬件工具,Linux内核6.1将正式引入RUST语言,I3C培训教程,80款市场成熟的电感式位置传感器设计
往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...
最新文章
- IXmaps揭示互联网流量是否被NSA监视
- 扯谈spring mvc之WebApplicationContext的继承关系
- Hexo+github搭建个人博客-博客初始化篇
- boost::count_if相关的测试程序
- Qt Creator指定依赖项
- Redis报错:redis.exceptions.ResponseError: MISCONF Redis is configured to save RDB snap
- java中注解的解析_全面解析Java中的注解与注释
- 第2章[2.3] 基于Ext JS的MVC/MVVM架构的应用开发模式
- 使用 matlab 数字图像处理(二)—— 直方图均衡化(极简实现)
- 怎样利用Python制作守护进程
- 什么是 Rootkit?
- VB中对数据库进行增、删、改操作
- 【内存模型和名称空间】——C++ Prime Plus CH9
- 支持2018的ibm服务器,联想支持Win10 2018年4月更新(RS4版本1803)的机型
- ROS 教程1 机器人操作系统 基础知识 节点 话题 消息 服务 行动 参数 日志 TF变换 目标结构 启动文件
- 试设计一个窗口,内含一个按钮。开始运行时,按钮显示“Click Me”字样,当按钮按下时,按钮显示为“Click Me Again”字样,再按一次,则按钮显示“Click Me”字样,依此循环。
- 【计算机毕业设计】017学生公寓电费信息管理系统
- 安卓街机模拟器对战源码修改详解(1)
- 如何评估项目的开发时间
- Base58原理及代码