码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 《安富莱嵌入式周报》第284期:Matlab2022b发布,支持从 .NET 调用,耳机放大器,牛屎芯片替换,JSON可视化,开源的飞行软件和嵌入式系统框架


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

    目录

    视频教程更新:

    视频版:

    1、Matlab2022b发布,支持从 .NET 应用程序调用 MATLAB

    2、FatFS作者ChaN老师分享的耳机放大器文章说明已经发布,包含固件源码

    3、分享个非常不错的JSON数据可视化在线软件

    4、英伟达发布2000TFLOPS的雷神芯片Thor,用于自动驾驶

    5、ST推出基于TOF的预定义手势检测系统

    6、NASA开源的飞行软件和嵌入式系统框架fprime

    7、TI分享的CANFD SiC信号改进型收发器视频教程

    8、CMSIS-DSP软件包升级至V1.14

    9、Google推出iMX RT1176配合自家珊瑚TPU的套件

    10、各大IC厂家的参考设计案例

    11、牛屎芯片替换

    12、国产海天芯生产的三位半HT7106和四位半HT7135万用表IC

    13、国内资讯

    (1)沁恒的应用方案中心

    (2)兆易创新发布GD32A503系列首款车规级MCU

    (3)Holtek推出多款用于电机控制的单片机

    (4)极海通过TüV莱茵ISO 26262功能安全管理体系认证

    14、H7-TOOL本周进展


    视频教程更新:

    GUI综合实战视频教程第1期:综合UI项目规划以及AppWizard和ThreadX GUIX初识(2022-09-24)

    GUI综合实战视频教程第1期:综合UI项目规划以及AppWizard和ThreadX GUIX初识(2022-09-24) - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz!



    视频版:

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

    《安富莱嵌入式周报》第284期:Matlab2022b发布,支持从 .NET 调用,耳机放大器,牛屎芯片替换,JSON可视化,开源的飞行软件和嵌入式系统框架



    1、Matlab2022b发布,支持从 .NET 应用程序调用 MATLAB

    https://ww2.mathworks.cn/product ... atest_features.html

     详细更新如下:


    2、FatFS作者ChaN老师分享的耳机放大器文章说明已经发布,包含固件源码

    Portable Headphone Amplifier 

     代码如下:

    1. /*-------------------------------------------------*/
    2. /* Headphone Amplifier Controller (C)ChaN, 2022 */
    3. /*-------------------------------------------------*/
    4. #include <avr/io.h>
    5. #include <avr/sleep.h>
    6. #include <avr/interrupt.h>
    7. FUSES = {0x6A, 0xFD}; /* ATtiny13A fuses: Low, High */
    8. #define BLV_LOW 2.3 /* Low battery threshold [volt] */
    9. #define BLV_OFF 2.1 /* Shutdown threshold [volt] */
    10. #define MUL_VIN 0.333
    11. #define VREF 1.1
    12. #define VOLT2AD(v) ((uint16_t)(v * MUL_VIN * 1024 / VREF))
    13. #define HOLD_TIME 50 /* Button hold time to trigger on/off (x10ms) */
    14. #define POWER_ENABLE() PORTB |= _BV(3)
    15. #define POWER_DISABLE() PORTB &= ~_BV(3)
    16. #define OUT_ENABLE() PORTB |= _BV(0)
    17. #define OUT_DISABLE() PORTB &= ~_BV(0)
    18. #define LED_ON() PORTB |= _BV(2)
    19. #define LED_OFF() PORTB &= ~_BV(2)
    20. #define BUTTON (!(PINB & _BV(1)))
    21. volatile uint8_t Stat; /* Battery status: 0=empty, 1=low, 2=ok */
    22. ISR(INT0_vect) /* Wake-up from sleep mode */
    23. {
    24. GIMSK = 0; /* Disable INT0 (on button down) */
    25. }
    26. ISR(TIM0_COMPA_vect) /* 100Hz timer interrupt */
    27. {
    28. uint8_t n;
    29. static uint8_t blink;
    30. n = Stat;
    31. if (n == 2 || (n == 1 && (++blink & 32))) {
    32. LED_ON();
    33. } else {
    34. LED_OFF();
    35. }
    36. }
    37. static void delay_10ms (void)
    38. {
    39. set_sleep_mode(SLEEP_MODE_IDLE); /* Set Idle mode */
    40. sleep_mode();
    41. }
    42. static uint8_t test_button (void) /* b0:status, b1:trigger */
    43. {
    44. static uint8_t btn;
    45. if (BUTTON) {
    46. if (btn < HOLD_TIME) {
    47. if (++btn == HOLD_TIME) return 3;
    48. }
    49. return 1;
    50. } else {
    51. btn = 0;
    52. return 0;
    53. }
    54. }
    55. static void power_off_mode (void)
    56. {
    57. uint8_t n;
    58. Stat = 0; /* LED off */
    59. for (;;) {
    60. /* LED off, power off, headphone off */
    61. LED_OFF();
    62. OUT_DISABLE();
    63. POWER_DISABLE();
    64. /* Wait for button released (100ms) */
    65. for (n = 10; n; n--) {
    66. delay_10ms();
    67. if (test_button() != 0) n = 10;
    68. }
    69. /* Sleep and resume */
    70. TIMSK0 = 0; /* Disable timer interrupt */
    71. cli(); /* Disable interrupts for critical operations */
    72. GIMSK = _BV(INT0); /* Enable button down interrupt (INT0) */
    73. set_sleep_mode(SLEEP_MODE_PWR_DOWN); /* Set Power-Down mode*/
    74. sleep_enable(); /* Enable sleep mode */
    75. sleep_bod_disable(); /* Disable BOD in sleep mode */
    76. sei(); /* Eneble interrupt to wake-up */
    77. sleep_cpu(); /* Enter sleep mode */
    78. /*------ Sleeping ------*/
    79. sleep_disable(); /* Disable sleep mode */
    80. TIMSK0 = _BV(OCIE0A); /* Enable timer interrupt */
    81. /* Press and hold the button for HOLD_TIME to start */
    82. do {
    83. delay_10ms();
    84. n = test_button();
    85. } while (n == 1);
    86. if (n == 3) break; /* Exit if the button was held for HOLD_TIME, or stay power off */
    87. }
    88. POWER_ENABLE(); /* Enable DC-DC converter */
    89. Stat = 2; /* LED on */
    90. for (n = 30; n; n--) delay_10ms(); /* 300ms */
    91. OUT_ENABLE(); /* Ebable headphone output */
    92. }
    93. static uint8_t battery_level (void) /* Test battery status (2=ok, 1=low, 0=empty) */
    94. {
    95. uint16_t adc;
    96. ADMUX = _BV(REFS0) | 2; /* Select ADC2 with Vref = internal 1.1V */
    97. ADCSRA = _BV(ADEN)|_BV(ADSC)|_BV(ADIF)|0b011; /* Enable ADC and start conversion */
    98. while (!(ADCSRA & _BV(ADIF))) ; /* Wait for EOC */
    99. adc = ADC;
    100. ADCSRA = 0; /* Disable ADC */
    101. if (adc < VOLT2AD(BLV_OFF)) return 0; /* Empty? */
    102. if (adc < VOLT2AD(BLV_LOW)) return 1; /* Low? */
    103. return 2;
    104. }
    105. int main (void)
    106. {
    107. uint8_t btct, btlv;
    108. /* Initialize GPIOs */
    109. PORTB = 0b00000; /* Initialize PORTB as: */
    110. DDRB = 0b01101; /* BP4=Vbat, PB3=Power, PB2=LED, PB1=Button, BP0=OutEnable */
    111. DIDR0 = 0b10000; /* Disable digital input on PB4 */
    112. /* Enable TC0 in 100 Hz interval timer */
    113. OCR0A = F_CPU / 256 / 100 - 1;
    114. TCCR0A = _BV(WGM01);
    115. TCCR0B = 0b100;
    116. TIMSK0 = _BV(OCIE0A);
    117. sei();
    118. for (;;) {
    119. power_off_mode(); /* Power-off and wake-up */
    120. btct = btlv = 0;
    121. for (;;) {
    122. delay_10ms();
    123. if (test_button() == 3) break; /* Test button */
    124. btlv += battery_level(); /* Test battery level */
    125. if (++btct == 50) { /* 50 times averaging */
    126. if (btlv < 25) break; /* Battery empty? */
    127. Stat = btlv < 75 ? 1 : 2; /* Battery ok or low? */
    128. btct = btlv = 0;
    129. }
    130. }
    131. }
    132. }


    3、分享个非常不错的JSON数据可视化在线软件

    JSON Crack - Crack your data into pieces

    从效果来看非常不错,大大方便数据内容查看


    4、英伟达发布2000TFLOPS的雷神芯片Thor,用于自动驾驶

    DRIVE Thor Unites AV and Cockpit on a Single SoC | NVIDIA Blog

    NVIDIA Drops DRIVE Atlan SoC, Introduces 2 PFLOPS DRIVE Thor for 2025 Autos

    在上周举行的全球开发者大会上,除了RTX4090显卡,就是这个了。

    雷神Thor搭载了770亿晶体管,在算力上达到了2000TFLOPs(1TOPS代表每秒能进行10^12次操作),Thor的算力是特斯拉FSD芯片的14倍。

    Atlan方案已经放弃


    5、ST推出基于TOF的预定义手势检测系统

    AEK-SNS-2TOFM1 - Predefined gesture detection system based on FlightSense technology sensors - STMicroelectronics

    该套件包括两个飞行时间测距传感器,彼此相距23厘米。此方案专为电动升降门应用而设计,可通过预定义的脚部移动来打开/关闭行李箱

     对应的官方文档里面有详细说明


    6、NASA开源的飞行软件和嵌入式系统框架fprime

    F´ A Flight Software and Embedded Systems Framework | F´

    fprime是一个软件框架,用于快速开发和部署嵌入式系统和航天应用。最初是由NASA的喷气推进实验室开发的开源软件,已成功被用于多种太空应用。它已被用于但不限于立方体卫星,小型卫星,仪器。
    相关的资源链接全部提供了


    7、TI分享的CANFD SiC信号改进型收发器视频教程

    使用SiC版收发器,可以有效降低信号振铃问题,效果如下:

    一般将CANFD的数据通信阶段速度提到8Msps问题大不

    Designing with CAN signal improvement capability (SIC) transceivers | TI.com Video


    8、CMSIS-DSP软件包升级至V1.14

    Releases · ARM-software/CMSIS-DSP · GitHub

    最近更新频繁了,基本上半个月就更新一次。针对计算图,增加了Event Recorder支持


    9、Google推出iMX RT1176配合自家珊瑚TPU的套件

    Dev Board Micro | Coral

    规格:

    效果:

     还有个对应的POE和无线扩展板


    10、各大IC厂家的参考设计案例

    TI Reference Designs Library
    Reference Designs | Design Center | Analog Devices
    https://www.maximintegrated.com/ ... -design-center.html
    Reference Designs | Microchip Technology

    之前分享了TI,ADI和美信,这次加入Microchip

    数千个完整设计案例供大家参考。

    TI:

     美信:

     ADI:

     Microchip


    11、牛屎芯片替换

    Replacing a 40 Pin COB With a 44 Pin QFP : 3 Steps (with Pictures) - Instructables

    搞牛屎芯片替换的玩家非常多,其中尤其以替换万用表的玩家,因为三位半常用的芯片是7106/7107,四位半常用的是7129/7135

    这个网上的一位玩家替换效果:

     磨掉COB环氧树脂,使用这种封装的优势是成本低

     换上新芯片的效果:


    12、国产海天芯生产的三位半HT7106和四位半HT7135万用表IC

    数字仪表_HTCSEMI深圳市海天芯微电子有限公司

    三位半HT7106价格在3-6块,四位半的6-9块,价格还算非常给力。

    像TI,瑞萨和美信,也都有相应系列的产品。


    13、国内资讯

    (1)沁恒的应用方案中心

    做的也非常不错

    应用方案 - 南京沁恒微电子股份有限公司

     他们还有一个选型框图做的也非常好

    下面的小方框可以方便的查找

    (2)兆易创新发布GD32A503系列首款车规级MCU

    兆易创新发布GD32A503系列首款车规级MCU | 兆易创新 – GigaDevice

    基于Cortex-M33内核,40nm车规级制程和高速嵌入式闪存eFlash技术,配备384KB Flash和48KB SRAM,另有专用代码空间可配置为64KB DFlash/4KB EEPROM

    另外他们的TUV安全认证应该还在进行中,

    (3)Holtek推出多款用于电机控制的单片机

    新闻中心 - Holtek

    (4)极海通过TüV莱茵ISO 26262功能安全管理体系认证

    大湾区首张!极海通过TÜV莱茵ISO 26262功能安全管理体系认证

    这个还是很给力的,直接上证书


    14、H7-TOOL本周进展

    H7-TOOL详细介绍:H7-TOOL开发工具,1拖4/16脱机烧录,高速DAPLINK,RTOS Trace,CAN/串口助手, 示波器, RTT等,支持WiFi,以太网,高速USB和手持 - H7-TOOL开发工具 - 硬汉嵌入式论坛 - Powered by Discuz!

    (1)更新2.1.9版本所需功能。

    (2)RTOS Trace初步完成uCOS-III,增加ThreadX的Trace中

    uCOS-III初步的界面效果,最终效果略有不同,部分信息会在控件上刷新

     这两天增加ThreadX的关键信息Trace,能正常检索了,还要继续改进。

    (3)H7-TOOL的截图功能关键部分都已经打通了,下面是截图SDRAM显存数据效果

    用户仅需接上SWD接口即可,无需用户嵌入代码到目标,填入显存地址即可。

     而截图RA8875屏,太不容易了,坑有点多,因为需要通过SWD接口控制RA8875进入读像素操作,最后也是最关键的一步就是读取是显存地址自增模式,这个坑太多了,比写显存地址自增麻烦很多,花了很长时间才搞定

  • 相关阅读:
    第五章 数组及排序 ② 代码
    卷积神经网络(CNN)实现mnist手写数字识别
    Elasticsearch 带中文分词的全文检索(分页+高亮返回)
    react 脚手架
    python使用unittest进行单元测试
    【面试】——Java面试重难点剖析
    Libuv 源码解析 - QUEUE(双向循环队列)
    Linux centos安装SQL Server数据库,结合cpolar内网穿透实现公网访问
    FUNCTION 表示 getter setter
    功率放大器是不是越大越好用
  • 原文地址:https://blog.csdn.net/Simon223/article/details/127093925
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号