往期周报汇总地址:嵌入式周报 - 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充电器参考设计相关推荐

  1. 安富莱v6开发板网口通讯_安富莱嵌入式周报第170期:2020.07.202020.07.26

    说明: 谢谢大家的关注,继续为大家盘点上周精彩内容. 1.沁恒推出带USB3.0,千兆以太网,光纤接口的RISC内核单片机CH569     CH569/565 微控制器使用 RISC-V3A 内核, ...

  2. 《安富莱嵌入式周报》第245期:2021.12.20--2021.12.26

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  3. 《安富莱嵌入式周报》第246期:2021.12.27--2022.01.02

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  4. 《安富莱嵌入式周报》第269期:2022.06.06--2022.06.12

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  5. 《安富莱嵌入式周报》第275期:2022.07.18--2022.07.24

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  6. 《安富莱嵌入式周报》第285期:电子技术更新换代太快,我要躺平,Linux内核6.1已经并入RUST,一夜161个网站密码遭泄,Matlab精选课件,开源电子书

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  7. 《安富莱嵌入式周报》第251期:2022.01.31--2022.02.06

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  8. 《安富莱嵌入式周报》第249期:2022.01.17--2022.01.23

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

  9. 《安富莱嵌入式周报》第283期:全开源逆向“爆破”硬件工具,Linux内核6.1将正式引入RUST语言,I3C培训教程,80款市场成熟的电感式位置传感器设计

    往期周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - P ...

最新文章

  1. IXmaps揭示互联网流量是否被NSA监视
  2. 扯谈spring mvc之WebApplicationContext的继承关系
  3. Hexo+github搭建个人博客-博客初始化篇
  4. boost::count_if相关的测试程序
  5. Qt Creator指定依赖项
  6. Redis报错:redis.exceptions.ResponseError: MISCONF Redis is configured to save RDB snap
  7. java中注解的解析_全面解析Java中的注解与注释
  8. 第2章[2.3] 基于Ext JS的MVC/MVVM架构的应用开发模式
  9. 使用 matlab 数字图像处理(二)—— 直方图均衡化(极简实现)
  10. 怎样利用Python制作守护进程
  11. 什么是 Rootkit?
  12. VB中对数据库进行增、删、改操作
  13. 【内存模型和名称空间】——C++ Prime Plus CH9
  14. 支持2018的ibm服务器,联想支持Win10 2018年4月更新(RS4版本1803)的机型
  15. ROS 教程1 机器人操作系统 基础知识 节点 话题 消息 服务 行动 参数 日志 TF变换 目标结构 启动文件
  16. 试设计一个窗口,内含一个按钮。开始运行时,按钮显示“Click Me”字样,当按钮按下时,按钮显示为“Click Me Again”字样,再按一次,则按钮显示“Click Me”字样,依此循环。
  17. 【计算机毕业设计】017学生公寓电费信息管理系统
  18. 安卓街机模拟器对战源码修改详解(1)
  19. 如何评估项目的开发时间
  20. Base58原理及代码

热门文章

  1. unity 3d原创制作射击游戏(全完整版+安卓apk编译)
  2. 3分钟教你开通阿里云AccessKey秘钥,并完成对应授权!
  3. 传统就没新意? 年货节“走马灯”刷新H5创意理念
  4. Subpalindromes
  5. 感谢米老师,感谢提高班,做个骄傲的自己
  6. 淘宝直播三大核心技术揭秘
  7. COCOS-BCX|区块链项目介绍
  8. linux下创建用户分组及设置分组权限
  9. 电商流水的3大策略:流量、转化率、客单价
  10. 在用户输入手机号或者要求输入纯数字时,输入法自动切换到数字的代码