硬汉嵌入式论坛

 找回密码
 立即注册
查看: 23510|回复: 24
收起左侧

[嵌入式周报] 《安富莱嵌入式周报》第290期:2022.10.31--2022.11.06

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
发表于 2022-11-9 07:26:37 | 显示全部楼层 |阅读模式
image.png

上周更新了一期视频教程:
USB应用实战视频教程第4期:手把手玩转基于QT6.4的USB BULK上位机和下位机开发下篇(2022-11-07)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=116396


视频版:

https://www.bilibili.com/video/BV1CK411m7F7





1、开源音频功放

https://www.elektormagazine.com/labs/fortissimo-100

帖子里面有详细的分析说明和测试参数报告

电源具有稳定的对称+/- 40 V,以确保最佳性能。
最大功率 (THD 1%) 在 8 Ω负载下接近 100 W,在 4 Ω负载下接近 190 W(参见测量)。所有部件均为通孔,便于构建放大器。设计是完全对称的。

原理图:

image.png
效果:

image.png

image.png

image.png

image.png

image.png


2、FatFS作者ChaN老师分享开源表面电位计产品

http://elm-chan.org/works/ncepm/report.html

在旱季,我们经常受到金属物体的电击,尤其是门把手。这是由于人体中带有静电。任何物体都可以带电,通常,物体的电势达到几千伏或更高。静电经常导致电子设备故障或损坏。

一直想知道物体或人体中带了多少静电,所以建立了一个表面电位计来测量带电物体的电势。




image.png

image.png


3、小米基于NuttX全家桶设计的物联网系统Vela

https://iot.mi.com/vela/detail.html

NuttX的玩法和Zephyr差不多,后面我们H7-TOOL的RTOS Trace功能支持NuttX时深究下。


image.png


4、国产江波龙发布中国大陆首款车规级UFS

http://cn.longsys.com/about/news/2201.html

当前推出的车规级UFS 2.1版本能够满足客户从eMMC向UFS 存储迭代的基本需求,FORESEE车规级UFS 3.1的128GB与256GB产品也将会陆续推出。
image.png

image.png


5、TI继续加强直营,推出API接口实时获取产品库存和价格变更,并且无需登陆官网就可以直接下单

https://www.ti.com.cn/zh-cn/ordering-resources/api-buying.html

这种方式确实是方便太多了。
image.png


6、ThreadX基于NetXDUO推出的OTA无线固件更新和安全管理功能

https://github.com/azure-rtos/netxduo
https://github.com/azure-rtos/netxduo/tree/master/addons/azure_iot
https://learn.microsoft.com/zh-cn/azure/iot-hub-device-update/device-update-azure-real-time-operating-system
image.png

image.png


7、NXP的两款MCX N系列AI单片机发布

https://www.nxp.com/company/blog/push-the-edge-of-whats-possible-with-nxps-mcx-n-advanced-series-mcus:BL-NXPS-MCX-N-ADVANCED-SERIES-MCUS
总体来看,还是挺有特色的,双核M33,两个16bit ADC,1个14bit DAC,2个12bit DAC,USB带片上高速PHY。

NPU神经网络,智能DMA,DSP协处理器(非M内核自带的DSP单元)

与单独的CPU内核相比,集成的神经处理单元可实现高达30倍的机器学习(ML)运算加速,减少唤醒时间并降低总功耗

image.png

image.png

image.png


8、CAN系统中高波特率设计应用笔记

https://www.kvaser.com/wp-content/uploads/2013/12/canefpaper.pdf

非常好的一篇文件,给大家分享下
image.png


9、简单易用的树莓派单片机VSCode插件

https://marketplace.visualstudio.com/items?itemName=paulober.pico-w-go

从效果来看,使用比较方便
autocomplete.gif





10、用于Windows端LUA编程的LuaRT升级至V1.1.0

https://github.com/samyeyo/LuaRT

有自己的IDE,实际效果还不错
image.png

11、ST推出一款可编程的65W USB Type-C PD的充电器参考设计

https://www.st.com/en/evaluation-tools/evlone65w.html

这个板子是基于ST-ONE主控芯片,采用的M0+内核

规格:

image.png

效果:

image.png


12、英飞凌推出超级铁电产品,108M SDR QSPI,10^14擦写次数,100+年数据存储

性能还是很强的,支持50MHz标准SPI或者108M SDR QSPI,写入无延迟,真RAM(写入无需查询),无需擦写均衡,容量范围从2Mb到16Mb,

https://www.infineon.com/cms/en/product/memories/f-ram-ferroelectric-ram/excelon-f-ram/

image.png


13、继CMSIS-DSP独立出来后,CMSIS-NN也开始独立更新了

之前都是在CMSIS综合包里面,现在也开始独立更新版本了:

https://github.com/ARM-software/CMSIS-NN
image.png

image.png


14、一篇非常棒的GPS基础理论知识普及贴,图文并茂

https://ciechanow.ski/gps/
image.png

image.png

image.png

image.png

image.png

image.png


15、Modbus主从机数据量较大时,解析可以做成map映射表的形式,方便修改

之前分享的视频和文档:
BSP视频教程第23期:通过Modbus解析器,轻松掌握Modbus主从协议栈(2022-09-16)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=115474

BSP视频教程第24期:应用实战,设计一款属于自己的Modbus RTU主从协议栈(2022-10-03)
https://www.armbbs.cn/forum.php?mod=viewthread&tid=115788


Modbus收发数据少的话,直接已经发布的例子方案即可,如果上百上千个寄存器处理,可以考虑map映射表的形式。


[C] 纯文本查看 复制代码
/*
*********************************************************************************************************
*   函 数 名: 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供调用。

部分截图:

image.png


17、H7-TOOL本周进展

H7-TOOL详细介绍:
https://www.armbbs.cn/forum.php?mod=viewthread&tid=89934

(1)增加新的脱机烧录芯片支持中。
(2)H7-TOOL的Trace功能开始支持FreeRTOS的支持中,初步已经可以检索到任务。

FreeRTOS也是好几个链表要检索,跟RTX5有一拼,就绪有个链表,挂起有个链表,延迟有个链表等,需要逐个检索才能把所有的任务都搜索出来。

pxReadyTasksLists
xDelayedTaskList1
xDelayedTaskList2
xPendingReadyList
xTasksWaitingTermination
xSuspendedTaskList

初步效果如下,已经可以检索到任务了
image.png

下面是之前做RTX5 Trace


uCOS-III Trace



ThreadX Trace
































评分

参与人数 2金币 +12 收起 理由
龙之谷 + 10 赞一个!
Omegaga + 2 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
 楼主| 发表于 2022-11-9 07:27:02 | 显示全部楼层
昨晚通宵一路干到现在,完成了。
回复

使用道具 举报

0

主题

20

回帖

20

积分

新手上路

积分
20
发表于 2022-11-9 08:04:55 | 显示全部楼层
版主辛苦,昨天我刷了一天,都以为停更了,今早一来发现还是更新了!加油!
回复

使用道具 举报

0

主题

20

回帖

20

积分

新手上路

积分
20
发表于 2022-11-9 08:12:18 来自手机 | 显示全部楼层
硬汉老师,别太辛苦了,注意身体
回复

使用道具 举报

82

主题

401

回帖

667

积分

金牌会员

积分
667
QQ
发表于 2022-11-9 08:39:19 | 显示全部楼层
老大辛苦了
武汉天纵鹏元科技有限公司。承接嵌入式项目开发,相关技术交流。STM32,物联网,工业控制方向。QQ  408137104
回复

使用道具 举报

1

主题

11

回帖

14

积分

新手上路

积分
14
发表于 2022-11-9 08:40:28 | 显示全部楼层
老大威武, 辛苦了!
回复

使用道具 举报

6

主题

106

回帖

124

积分

初级会员

积分
124
发表于 2022-11-9 08:45:05 | 显示全部楼层
牛牛牛牛!!!
回复

使用道具 举报

0

主题

18

回帖

18

积分

新手上路

积分
18
发表于 2022-11-9 08:47:16 | 显示全部楼层
千万注意身体
回复

使用道具 举报

0

主题

53

回帖

53

积分

初级会员

积分
53
发表于 2022-11-9 08:56:04 | 显示全部楼层
2、FatFS作者ChaN老师分享开源表面电位计产品

表明电位测试原理是什么?以什么作为参考电位?
回复

使用道具 举报

0

主题

53

回帖

53

积分

初级会员

积分
53
发表于 2022-11-9 09:04:25 | 显示全部楼层
12、英飞凌推出超级铁电产品,108M SDR QSPI,10^14擦写次数,100+年数据存储

这个是不是可以当RAM又可以当Flash?
容量范围从2Mb到16Mb,容量有点小。
有一类串口SRAM,实际上是伪静态存储器,容量稍大点
http://www.sramsun.com/list-351- ... 7650141548884394402
回复

使用道具 举报

4

主题

286

回帖

298

积分

高级会员

积分
298
发表于 2022-11-9 09:08:18 | 显示全部楼层
老大辛苦了。NXP的MCU感觉很厉害。能电机控制,还能神经网络。
回复

使用道具 举报

18

主题

216

回帖

270

积分

高级会员

积分
270
发表于 2022-11-9 09:13:51 | 显示全部楼层
老大辛苦.
回复

使用道具 举报

39

主题

928

回帖

1050

积分

至尊会员

积分
1050
发表于 2022-11-9 09:23:09 | 显示全部楼层
100万亿次的铁电可以
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2022-11-9 11:23:57 | 显示全部楼层
硬汉大哥注意身体啊,本期的信息量好大,全是我喜欢的内容.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
 楼主| 发表于 2022-11-9 13:23:54 | 显示全部楼层
adlu 发表于 2022-11-9 08:56
表明电位测试原理是什么?以什么作为参考电位?

ChaN老师帖子里面有介绍
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
 楼主| 发表于 2022-11-9 13:24:44 | 显示全部楼层
adlu 发表于 2022-11-9 09:04
这个是不是可以当RAM又可以当Flash?
容量范围从2Mb到16Mb,容量有点小。
有一类串口SRAM,实际上是伪 ...

是的。
串口的SRAM跟这个比不了,当然,串口这个便宜。
回复

使用道具 举报

0

主题

12

回帖

12

积分

新手上路

积分
12
发表于 2022-11-9 15:46:43 | 显示全部楼层
为打不开小米开发者给的NUTTX链接:https://nuttx.apache.org/:'(
回复

使用道具 举报

1

主题

61

回帖

64

积分

初级会员

积分
64
发表于 2022-11-9 16:37:22 | 显示全部楼层
上期的周报怎么突然消失了?误删了?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
 楼主| 发表于 2022-11-9 16:50:04 | 显示全部楼层
sokou 发表于 2022-11-9 15:46
为打不开小米开发者给的NUTTX链接:https://nuttx.apache.org/

https://nuttx.apache.org/
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
 楼主| 发表于 2022-11-9 16:50:32 | 显示全部楼层
WangYI741 发表于 2022-11-9 16:37
上期的周报怎么突然消失了?误删了?

检索关键词 第289期
回复

使用道具 举报

5

主题

29

回帖

44

积分

新手上路

积分
44
发表于 2022-11-9 19:23:13 | 显示全部楼层
小猫的视频在哪?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106726
QQ
 楼主| 发表于 2022-11-10 09:22:45 | 显示全部楼层
frazer1993 发表于 2022-11-9 19:23
小猫的视频在哪?

已经分享到楼主位
回复

使用道具 举报

8

主题

26

回帖

55

积分

初级会员

积分
55
发表于 2022-11-11 09:59:24 | 显示全部楼层
回复

使用道具 举报

0

主题

11

回帖

11

积分

新手上路

积分
11
发表于 2022-11-11 16:45:23 | 显示全部楼层
adlu 发表于 2022-11-9 09:04
这个是不是可以当RAM又可以当Flash?
容量范围从2Mb到16Mb,容量有点小。
有一类串口SRAM,实际上是伪 ...

FRAM一般都当作FLASH用,写入速度快,SPI通讯结束就写完了,不像Nor flash一块需要几毫秒的写入时间。而且寿命长,几乎可以当作是没有寿命限制。缺点就是价格贵。
回复

使用道具 举报

8

主题

155

回帖

179

积分

初级会员

H7 TOOL 大法好!

积分
179
发表于 2022-11-15 08:35:51 | 显示全部楼层
老师, 周报一般啥时候更新,每周几?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-2 14:43 , Processed in 0.542591 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表