周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz!

视频:
https://www.bilibili.com/video/BV1TYBhYKECK/
《安富莱嵌入式周报》第346期:开源2GHz带宽,12bit分辨率,3.2Gsps采样率示波,开源固件安全分析器, 开源口袋电源,开源健康测量,FreeCAD
目录:
1、开源2GHz带宽,12bit分辨率,3.2Gsps采样率示波器
2、开源嵌入式固件安全分析器
3、TI分享的8通道隔离 ±12.288 V 模拟采集参考设计,符合涌瞬态抗扰度 EN 61000-4-5 2 类标准(±1 kV,24 A)
4、C编译器原理书籍
5、FreeCAD V1.0版本发布
6、两年未更新的FatFS发布V0.15a版本
7、开源USB Type-C口袋电源,支持3.3 -20 V,最大5 A
8、IDE相关
(1)Embedded Studio发布V8.20版本
(2)新唐自家所有M内核芯片免费使用MDK专业版,授权到2027年9月
9、【实测】使用STM32H7板子FatFS文件系统每秒读写2MB文件,实时写入7450个文件不出错,写满16GB SD卡
10、开源血压信号,PPG,ECG,听诊信号测量设备
11、H7-TOOL本周进展
(1)脱机烧录
增加NXP车轨芯片S32K312脱机烧录支持
增加英飞凌车轨芯片CYT4B和CYT3B脱机烧录支持
增加航顺HK32C030系列
(2)加紧H7-TOOL的LUA API手册制作,与2.27版本固件同时发布
1、开源2GHz带宽,12bit分辨率,3.2Gsps采样率示波器
软件和硬件全开源
这个是早期Haasoscope开源项目的升级版,不过这次升级与之前版本已经没有任何关系,只是示波器名字没变。但性能是质的飞跃
GitHub - drandyhaas/HaasoscopePro: An Affordable 2 GHz 3.2 GS/s 12 bit open-source open-hardware expandable USB oscilloscope
https://www.crowdsupply.com/andy-haas/haasoscope-pro
软硬件软件包:HaasoscopePro-main.zip (292.75MB)
2GHz探头软件包: oshw-active-probe-master.zip (3.94 MB)
效果:
规格:
两个设备同步,可以做到6.4Gsps采样率

由于示波器带宽比较高,普通探头是无法满足需求的,所以专门设计了一个2GHz带宽探头

2、开源嵌入式固件安全分析器
GitHub - e-m-b-a/emba: EMBA - The firmware security analyzer
EMBA 会自动发现固件中可能存在的弱点和漏洞。例如,不安全的二进制文件、旧的和过时的软件组件、可能易受攻击的脚本或硬编码的密码。EMBA 是一个命令行工具,可以生成易于使用的 Web 报告以供进一步分析
视频效果:
https://www.armbbs.cn/forum.php?mod=viewthread\&tid=126614
有详细的文档说明:
Home · e-m-b-a/emba Wiki · GitHub
3、TI分享的8通道隔离 ±12.288 V 模拟采集参考设计,符合涌瞬态抗扰度 EN 61000-4-5 2 类标准(±1 kV,24 A)
设计指南.pdf (1.64 MB)
原理图.pdf (1.67 MB)
TIDA-00764 reference design | TI.com
此参考设计是具有 8 个通道的高压模拟输入模块。每个通道都可用于电压和电流测量。该设计使用 16 位模数转换器 (ADC) ADS8681,可处理 ±12.288 V 的输入电压。此外,该设计的四个通道能够处理高达 ±160 V 的共模电压。因此,用户无需担心接地回路或补偿电流在连接的输入之间流动。
±12.288 V 的高压输入
每个通道的电压和电流测量
4 个通道,共模电压高达 ±160 V
-85dB 的邻道串扰抑制
100 MΩ 输入阻抗
浪涌瞬态抗扰度符合 EN 61000-4-5 2 类标准(±1 kV,24 A)

4、C编译器原理书籍
有助于深入了解C以及编译原理
Modern Compiler Implementation in C.pdf (5.17 MB)
https://github.com/ethanhe42/Mod ... on-in-C/tree/master

每个章节配套例题

5、FreeCAD V1.0版本发布
FreeCAD Version 1.0 Released | Hackaday
经过 22 年的发展,FreeCAD 终于达到了 1.0 版的里程碑
各大平台都提供了下载

视频:
https://www.armbbs.cn/forum.php?mod=viewthread\&tid=126614
6、两年未更新的FatFS发布V0.15a版本
上一次更新还是2022年的11月份.
更新记录:

7、开源USB Type-C口袋电源,支持3.3 -20V,最大5A
GitHub - CentyLab/PocketPD: Opensource firmware for PocketPD
https://www.crowdsupply.com/centylab/pocketpd
电压和电流可调,电压支持3.3V-20V,单步50mV可调。电流1A-5A可调,单步50mA可调。
规格

8、IDE相关
1、Embedded Studio发布V8.20版本
SEGGER - The Embedded Experts - Downloads - Embedded Studio
2、新唐自家所有M内核芯片免费使用MDK专业版,授权到2027年9月
各家芯片厂商都在折腾GCC + eclipse/vscode免费方案的时候,新唐不折腾这些了,直接让大家免费使用MDK。
新闻如下:
Keil MDK Nuvoton Edition -- Full Cortex-M - Nuvoton
Arm 与新唐科技为软件开发者提供免费的Keil® MDK专业工具:Keil MDK Nuvoton Edition - Full Cortex-M,此服务可支持所有基于 Arm® Cortex-M 处理器为内核的新唐产品,包括 Arm Cortex-M0/M0+/M23/M33/M4/M55/M7/M85,并可用于商业用途。
此服务亦包含 Arm Keil MDK v6 提供的所有工具和软件套件,包括 Arm C/C++ 编译程序、Arm Keil Studio Pack - the Visual Studio Code extensions、Keil µVision 与除错环境。
此免费服务的使用范围仅适用于 Keil MDK 5.37(含) 或更高的版本,并且仅支持 Arm Compiler 6。
安装说明:

9、【实测】使用STM32H7板子FatFS文件系统每秒读写2MB文件,实时写入7450个文件不出错,写满16GB SD卡
【测试平台】
STM32-V7开发板
【测试例子】
V7-025_FatFS文件系统例子(SD卡 V1.2)
【测试条件和校验】
运行例子里面的命令6,命令6是个测速函数,每次写入2MB文件,同时读取出来校验,保证写入的没问题。
cs
/*
*********************************************************************************************************
* 函 数 名: WriteFileTest
* 功能说明: 测试文件读写速度
* 形 参:无
* 返 回 值: 无
*********************************************************************************************************
*/
static void WriteFileTest(void)
{
FRESULT result;
char path[64];
uint32_t bw;
uint32_t i,k;
uint32_t runtime1,runtime2,timelen;
uint8_t err = 0;
static uint32_t s_ucTestSn = 0;
for (i = 0; i < sizeof(g_TestBuf); i++)
{
g_TestBuf[i] = (i / 512) + '0';
}
/* 挂载文件系统 */
result = f_mount(&fs, DiskPath, 0); /* Mount a logical drive */
if (result != FR_OK)
{
printf("挂载文件系统失败 (%s)\r\n", FR_Table[result]);
}
/* 打开文件 */
sprintf(path, "%sS%05d.txt", DiskPath, s_ucTestSn++); /* 每写1次,序号递增 */
result = f_open(&file, path, FA_CREATE_ALWAYS | FA_WRITE);
/* 写一串数据 */
printf("开始写文件%s %dKB ...\r\n", path, TEST_FILE_LEN / 1024);
runtime1 = bsp_GetRunTime(); /* 读取系统运行时间 */
for (i = 0; i < TEST_FILE_LEN / BUF_SIZE; i++)
{
result = f_write(&file, g_TestBuf, sizeof(g_TestBuf), &bw);
if (result == FR_OK)
{
if (((i + 1) % 8) == 0)
{
printf(".");
}
}
else
{
err = 1;
printf("%s文件写失败\r\n", path);
break;
}
}
runtime2 = bsp_GetRunTime(); /* 读取系统运行时间 */
if (err == 0)
{
timelen = (runtime2 - runtime1);
printf("\r\n 写耗时 : %dms 平均写速度 : %dB/S (%dKB/S)\r\n",
timelen,
(TEST_FILE_LEN * 1000) / timelen,
((TEST_FILE_LEN / 1024) * 1000) / timelen);
}
f_close(&file); /* 关闭文件*/
/* 开始读文件测试 */
result = f_open(&file, path, FA_OPEN_EXISTING | FA_READ);
if (result != FR_OK)
{
printf("没有找到文件: %s\r\n", path);
return;
}
printf("开始读文件 %dKB ...\r\n", TEST_FILE_LEN / 1024);
runtime1 = bsp_GetRunTime(); /* 读取系统运行时间 */
for (i = 0; i < TEST_FILE_LEN / BUF_SIZE; i++)
{
result = f_read(&file, g_TestBuf, sizeof(g_TestBuf), &bw);
if (result == FR_OK)
{
if (((i + 1) % 8) == 0)
{
printf(".");
}
/* 比较写入的数据是否正确,此语句会导致读卡速度结果降低到 3.5MBytes/S */
for (k = 0; k < sizeof(g_TestBuf); k++)
{
if (g_TestBuf[k] != (k / 512) + '0')
{
err = 1;
printf("Speed1.txt 文件读成功,但是数据出错\r\n");
break;
}
}
if (err == 1)
{
break;
}
}
else
{
err = 1;
printf("Speed1.txt 文件读失败\r\n");
break;
}
}
runtime2 = bsp_GetRunTime(); /* 读取系统运行时间 */
if (err == 0)
{
timelen = (runtime2 - runtime1);
printf("\r\n 读耗时 : %dms 平均读速度 : %dB/S (%dKB/S)\r\n", timelen,
(TEST_FILE_LEN * 1000) / timelen, ((TEST_FILE_LEN / 1024) * 1000) / timelen);
}
/* 关闭文件*/
f_close(&file);
/* 卸载文件系统 */
f_mount(NULL, DiskPath, 0);
}

【实测】
1500个文件时:

5100个文件时:

写满SD卡,特别注意,但SD卡还剩下一点空间的时候,比如200M时,建议停止再写入,防止写爆后损坏SD卡

10、开源血压信号,PPG,ECG,听诊信号测量设备
之前给大家分享多款这种开源,本次再为大家分享一款
https://github.com/MilosRasic98/ ... gnalMeasuringDevice
软硬件全部开源,包括3D打印的所有 CAD 文件以及数据分析的测试结果。该项目的主要目标是能够记录、存储和分析这些信号。
11、H7-TOOL本周进展
H7-TOOL详细介绍:https://www.armbbs.cn/forum.php?mod=viewthread\&tid=89934
1、脱机烧录
(1)增加NXP车轨芯片S32K312脱机烧录支持
(2)增加英飞凌车轨芯片CYT4B和CYT3B脱机烧录支持
详细说明:时隔半年,再次死磕,成功搞定H7-TOOL脱机烧录英飞凌车规级M7多核芯片CYT4B
(3)增加航顺HK32C030系列

2、加紧H7-TOOL的LUA API手册制作,与2.27版本固件同时发布
争取下个月初2.27版本固件发布时,同时发布LUA API手册,方便大家查阅
