週報彙總地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104
視頻版:
https://www.bilibili.com/video/BV1gV4y117UD/
1、開源USB2.0高速分析儀
https://github.com/ataradov/usb-sniffer
usb-sniffer-main.zip (2.05 MB)
分析儀上位機直接採用的Wireshark。
硬件採用Cypress CY7C68013A MCU + Lattice LCMXO2 FPGA + Microchip USB3343 USB PHY實現
2、8GHz示波器開發
https://hackaday.io/project/167292-8-ghz-sampling-oscilloscope
這是一個未完成作品,不過作者分享的一些設計問題,有興趣可以看看
做了很多測試:
硬件也做了很多:
3、創意設計,RGB 全綵熒光管
這裏是採用的LCD顯示屏實現的效果,視頻實際展示效果很棒
視頻:
https://www.armbbs.cn/forum.php?mod=viewthread&tid=119648
截圖:
4、超低功耗無線振動傳感器監控電機參考設計,實現預防性維護,CR2032鈕釦電池可供電10年
https://www.ti.com/tool/TIDA-01469
本地計算2048點 FFT振動頻譜,藍牙無線,傳輸距離72米,平均待機電流879.5nA
框圖:
5、小知識:爲什麼我們看到的各種SD卡移植在底層接口都沒有做擦除操作
本質原因是SD卡有擦寫均衡機制,每次主機寫入數據時到相同的邏輯地址,實際上數據會被寫入一個新分配的空物理地址。如果人爲的對相同地址擦除再寫入,實際上是破環了這個機制。
閃迪的規格書:
04db416b291011446889dbd6129e2644.pdf (405.78 KB)
6、軟硬件開源便攜監測器CatSniffer升級至V3.1,支持Zigbee,藍牙,LoRa,Thread,Sub 1GHz,6lowpan
https://github.com/ElectronicCats/CatSniffer
規格和效果:
兼容各種Sniffer監測組件,
比如TI的
7、軟件資訊
(1)IAR9.40發佈
https://www.armbbs.cn/forum.php?mod=viewthread&tid=99548
(2)Silicon Labs的Gecko SDK升級至V4.3,加強各種物聯網協議支持
https://community.silabs.com/s/s ... t-v43-now-available
(3)Autodesk宣佈計劃於2026年停止支持EAGLE PCB
(4)英飛凌全家桶開發環境ModusToolbox升級至V3.1
(5)上海先楫半導體獲TUV萊茵國內首張ISO26262 和IEC61508 功能安全管理體系雙認證
8、硬件資訊:
(1)Silicon Labs發佈面向物聯網的單片機AI芯片FG28 SoC,支持藍牙/sub-GHz雙頻,實現遠距離廣覆蓋Wi-SUN及專有協議連接
https://www.silabs.com/wireless/ ... b-ghz-wireless-socs
業界首款集成AI/ML硬件加速器的sub-Ghz SoC,業界領先的Secure Vaul安全技術。
FG28爲用戶提供了一種在網絡上配置和部署新設備的簡便方法,而且sub-Ghz頻段的設計旨在支持超過一英里的設備間通信。
(2)新版I3C HCI V1.2規範
mipi-I3C-HCI-specification-v1-2p.pdf (4.15 MB)
(3)揚聲器性能測量筆記
AppNote-Loudspeaker-EA-Measurements.pdf (1.47 MB)
9、純硬件打造的上古遊戲機雅達利
https://www.atariage.com/2600/archives/schematics/index.html
https://docs.dev-docs.org/htm/search.php?find=_s
10、600行C編寫RISC-V內核
用這個代碼來學習RISC-V內核非常不錯
rv-main.zip
(13.29 KB)
支持的指令:
代碼如下:
#include <stdio.h> #include <string.h> #include "rv.h" rv_res load_cb(void *user, rv_u32 addr, rv_u8 *data) { if (addr - 0x80000000 > 0x10000) /* Reset vector is 0x80000000 */ return RV_BAD; *data = ((rv_u8 *)(user))[addr - 0x80000000]; return RV_OK; } rv_res store_cb(void *user, rv_u32 addr, rv_u8 data) { if (addr - 0x80000000 > 0x10000) return RV_BAD; ((rv_u8 *)(user))[addr - 0x80000000] = data; return RV_OK; } rv_u32 program[2] = { /* _start: */ 0x02A88893, /* add a7, a7, 42 */ 0x00000073 /* ecall */ }; int main(void) { rv_u8 mem[0x10000]; rv cpu; rv_init(&cpu, (void *)mem, &load_cb, &store_cb); memcpy((void *)mem, (void *)program, sizeof(program)); while (rv_step(&cpu) != RV_EECALL) { } printf("Environment call @ %08X: %u\n", cpu.pc, cpu.r[17]); return 0; }
11、英特爾推出一款等寬免費字體One Mono,提高可讀性,解決開發人員眼疲勞,方便糾錯
https://github.com/intel/intel-one-mono
這是一個富有表現力的等寬字體家族,在構建時充分考慮了清晰度、易讀性和開發人員的需求。
最大程度地提高可讀性,以解決開發人員的眼睛疲勞,並減少編輯錯誤
ttf.zip (276.95 KB)
12、Makefile基礎入門文檔
當前只有英文版,搞箇中文版就更好了
https://makefiletutorial.com/#makefile-cookbook
13、好帖,圖文並茂介紹C的動態內存分配的malloc和free實現
https://samwho.dev/memory-allocation/
14、H7-TOOL本週進展
H7-TOOL詳細介紹:https://www.armbbs.cn/forum.php?mod=viewthread&tid=89934
開始着手H7-TOOL新版固件2.22收尾工作,本次升級更新的內容非常多,同時感謝大家反饋的問題,大部分得到修復
這周在實現uCOS-II的Trace功能上花了不少時間,uCOS-II不像已經發布的uCOS-III
Trace,uCOS-II獲取通信組件的信息後,使用LUA做了個任務調度器計算,用於獲取當前等待信號量,消息隊列,消息郵箱等通信組件的任務和任務個數,含等待的最高優先級任務:
if(OSLowestPrio <= 63) then OSEventCnt = pg_read16(pcb + 8) OSEventGrp = pg_read8(pcb + 0x0a) for i=0, OS_EVENT_TBL_SIZE, 1 do off = (OSEventGrp & (1<<i) ) >> i if(off == 1) then for j=0, 7, 1 do OSEventTbl1 = pg_read8(pcb + 0x0b + i) off = (OSEventTbl1 & (1<<j) ) >> j if(off == 1) then TaskCount = TaskCount + 1 TaskBuffer[TaskCount] = j + i*8 end end end end else OSEventCnt = pg_read16(pcb + 8) OSEventGrp = pg_read16(pcb + 0x0a) OSEventTbl1 = pg_read16(pcb + 0x0c) for i=0, OS_EVENT_TBL_SIZE, 1 do off = (OSEventGrp & (1<<i) ) >> i if(off == 1) then for j=0, 15, 1 do OSEventTbl1 = pg_read16(pcb + 0x0b + 2*i) off = (OSEventTbl1 & (1<<j) ) >> j if(off == 1) then TaskCount = TaskCount + 1 TaskBuffer[TaskCount] = j + i*8 end end end end end