本篇图多,多图杀猫。知道多图杀猫这个梗的应该都已经步入中年了吧。中年码农的周末,如果不加班,除了辅导孩子功课,还能有三件事,学习,学习,还是TM的学习。钓鱼,盘串,炒股,那不是属于中年码农的。这周上海有个制冷展,上班时间不能耽误,周末时间可以,周六去走马观花看了一遍。展出的内容包括:制冷、空调、暖通。不过限于专业知识,对冷机、热泵不了解,只是看了个热闹。主要拍了些空调、暖通控制相关的图片。虽然图多,走马观花,努力做到形散神不散。列个大纲:国内业内知名公司美的,海尔,格力国外业内知名公司西门子,江森(约克),...
天气转暖,脱掉羽绒长衫,换上格子衬衫。我不但知道4种茴字写法,我还知道进程间通信的6种方法。6种!从操作系统层面看进程通信:我们知道,为了保证安全,每个进程的用户地址空间都是独立的,一般而言一个进程不能直接访问另一个进程的地址空间,不过内核空间是每个进程都共享的,所以进程之间想要进行信息交换就必须通过内核Linux 内核提供的常见的6种进程通信机制:管道 消息队列共享内存信号量信号套接字介于泛泛介绍这几种通信的文章很多,这里我们也不再重复了。这里展开的是套接字(socket)如何实现进程间通信的。 socket可以实现不同主机...
我们总会提取给定对象的固有属性-特征。本章主要描述IEC 61000-4-2定义ESD脉冲特征。典型放电电流波形ESD发生器简化原理图下图摘自NXP应用笔记下图摘自IEC 61000-4-2标准一阶RC电路零输入响应很明显一阶RC电路电容放电电流波形与IEC 61000-4-2脉冲放电电流不同。所以IEC 61000-4-2标准中一阶RC电路ESD发生器原理图仅是简化电路,实际上其等效集总电路是多阶非线性电路。脉冲波形参数脉冲频域特性非常明显ESD测试是一种由上升时间决定的宽带测试。可以通过10%-90%上升时间得到其频域带宽。BandWidth=0.35/700ps=500MHz当对设备放电时,放电电流将通过...
上篇中说到,Linux kernel中大部分设备可以归结为平台设备,因此大部分的驱动是平台驱动。I2C控制器挂载在platform Bus上,因此我们在linux kernel中常说的I2C driver,都是指I2C controller driver,都是以platform driver的形式存在,当然,对应的控制器是platform device。小鱼学编程,公众号:嵌入式ABC与此同时,kernel抽象出I2C bus(/sys/bus/i2c),用于挂载和I2C controller通过I2C总线连接的各个I2C slave device。本篇学习i2c驱动架构。并理解和回答如下问题I2C Controller Driver是如何基于platform driver展开的为什么需要I2C Adapter...
三个词的文章名字会比较酷,就像《辘轳. 女人和井》, 又或者《流星.蝴蝶.剑》上篇说到:。文中提到了工业边缘设备,以及基于node-red的二次开发平台。有朋友顺便问道,同样是framework, 这个"node-red"和"niagara"的区别。我有点懵,"Niagara“是什么?你要是问我,都是肉夹馍,西安肉夹馍和潼关肉夹馍有什么区别,我会很痛快的告诉你。肉夹馍有两个流派:西安肉夹馍,潼关肉夹馍。二者所用的肉基本一样,都是腊汁猪肉,但前者的饼是白吉饼,后者的饼是碱面酥油饼。西安肉夹馍潼关肉夹馍同样是framework, 这个"node-red"和"niagara"的区别? 这个...
静电放电(ESD)防护是电子系统设计者和制造商面临的主要挑战之一。这些ESD事件可能在现场发生并导致系统故障,引起短时间系统中断(软故障),甚至引起系统芯片功能的物理损坏,从而导致硬故障。当发生ESD事件时,外部的ESD保护器件应能保护整个系统。这不仅包括系统芯片,还包括敏感无源组件。典型ESD故障情况一个简化的系统等效电路示例如下,用于说明典型ESD故障情况。电路由外部ESD保护器件、信号PCB铜线寄生器件、芯片内部I/O ESD保护和电源及地间ESD保护组成。系统动态和准静态参数分别用棕色和橙色框标出。列出两种不同的失效情况如下。第一种,...
串口是嵌入式工程师最常用也是最基本的通信总线。围绕串口通信而开发的小工具小软件非常多,但它们大多数只能处理简单的串口收发工作,有的甚至连时间戳显示以及保存log的功能都不具备。而今天这里要介绍的是三款与众不同串口数据可视化工具。No.1, Serial Studio – 为嵌入式而生的串行数据可视化程序 Serial Studio是一款非常好用的开源串口数据可视化程序,它基于QT开发的,可以支持windows、linux和IOS等多种平台。当作者第一眼看到Serial Studio时,感觉除了惊艳还是惊艳,视觉效果非常好。软件主页:https://serial-studio.github.io...
VRV,VRFVRV空调系统全称为Variable Refrigerant Volume系统,即变制冷剂流量系统, 又称多联机系统。系统结构上类似于分体式空调机组,采用一台室外机对应一组室内机(一般可达16台)。控制技术上采用变频控制方式,按室内机开启的数量控制室外机内的涡旋式压缩机转速,进行制冷剂流量的控制。该系统由日本大金工业株式会社于1982年开发上市,“VRV”也成为大金变冷媒流量多联系统的注册商标,因此,现业界也用“VRF”(Variable Refrigerant Flow)一词对同类系统加以区分。VRV空调系统适用于中小型面积的酒店、宾馆、办公楼、会所等各种场所。更...
开门见山:Azure RTOS(ThreadX) 是专门为嵌入式应用程序设计的高性能实时操作系统 (RTOS)。那么,何为实时操作系统:实时操作系统是指面向实时运行对象,并为其服务的操作系统,英文名称为real-time operating system,简写为RTOS。面向MCU或微控制器的RTOS一般也称为嵌入式实时操作系统(embedded real-time operating system)。RTOS是一种系统软件,可以为应用程序提供服务并管理微控制器硬件资源,这些硬件资源包括内存、外设和中断等。实时操作系统的主要目的是给需要执行的各种任务分配处理时间。实时操作系统很多,再进一步细分,还可以分为...
是否自问过这么几个问题?双向TVS可以简单地用于单向TVS的应用?选择低钳位电压TVS时简单地如下图按照低反向工作电压排序TVS器件?回答上述问题,我们先了解TVS二极管IV曲线或特征以及钳位电气模型。TVS二极管IV曲线单向TVS二极管IV曲线双向TVS二极管IV曲线其中,VBR Breakdown voltage, 击穿电压。一般定义为1mA二极管反向电流时电压。IR Reverse current, 反向电流。VWM VRWM, VST-OFF,Maximum reverse working voltage, standoff voltage, 最大反向工作电压。目前一般定义为反向漏电流不超过10nA左右时最大电压。VC VCL, Clamping voltage, 钳位...
ESD suppressor与TVS(Transient voltage suppressor) 两者为主要的ESD防护器件,有什么不同?ESD/浪涌脉冲特征回答这个问题之前,我们先基于应用的角度统计ESD及浪涌脉冲的特征。至少有三个主要渠道可以统计这些脉冲的特征1. ESD/浪涌防护器件生产商及需要防护ESD/浪涌的器件生产商应用指导下图统计了部分ESD/浪涌脉冲的部分特征信息,包含脉冲电压及宽度。其中Open/close surge指感性负载的开关动作。2. 测试标准或各标准化组织ESD/浪涌脉冲特征统计如同法律的作用,其不仅仅是惩罚犯法者,更重要的是保护大家,规范所有人,指出法律准则。测试标准...
无处不在的单词“JEDEC” 各位细心的同学,在认真阅读各种flash的芯片手册,就会发现“JEDEC”单词无处不在。 它存在于SPI Flash芯片手册中。 上图摘自:SST26VF064B / SST26VF064BA 芯片手册上图摘自:SST26VF064B / SST26VF064BA 芯片手册 它存在于SRAM芯片手册中。上图摘自:IS62WV51216ALL/ IS62WV51216BLL 芯片手册 它存在于DDR芯片手册中。上图摘自:H5TQ4G43AFR-xxC 芯片手册上图摘自:IS43/46TR16128B 芯片手册 他存在于EMMC芯片手册。上图摘自:KLM8G1GETF-B041 芯片手册 他存在于……JED...
Micropython 是 Python 3.6 的另一种实现,支持全部常用的 Python 语法。MicroPython 也是 Python 的一个精简版本,它是为了运行在单片机这样的性能有限的微控制器上,最小体积仅 256 K,运行时仅需 16 K 内存,但这样寒酸的配置基本上也只能运行最简单的脚本了。若要使用功能比较完整的配置,建议配置 512 KB Flash 和 64 KB RAM,或者更大。Micropython 为了适应嵌入式微控制器,裁剪了大部分标准库,仅保留部分模块如 math、sys 的部分函数和类。此外,很多标准模块如 json、re 等在 MicroPython 中变成了以 u 开头的 ujson、ure,表示针对 Micro...
什么是KNXKNX是Konnex的缩写。1999年5月,欧洲三大总线协议EIB、BatiBus和EHSA合并成立了Konnex协会,提出了KNX协议。该协议以EIB为基础,兼顾了BatiBus和EHSA的物理层规范,并吸收了BatiBus和EHSA中配置模式等优点,提供了家庭、楼宇自动化的完整解决方案。KNX使用场景如上文,KNX “提供了家庭、楼宇自动化的完整解决方案”, 但主要是用于照明和智能家居。照明场景一:家居照明照明场景二:商业照明智能家居:KNX协议KNX技术的通信模型采用5层结构:物理层、数据链路层、网络层、传输层和应用层。KNX物理层支持TP(双绞线)、PL110(电力线)、RF(射...
gdb命令行调试1. 开启gdb服务器2. 利用arm-none-eabi-gdb连接到GDB server在vsode中调试1. 插件安装2. 插件配置3. 调试配置4. 启动调试前面实现了,编译和下载,再实现调试功能就能在linux下开发gd32了。调试的话还是的利用pyocd。本次操作均为基础操作,没有做深入了解gdb命令行调试 1. 开启gdb服务器pyocd gdb终端输出结果0000418 W Board ID lckf is not recognized [mbed_board]0000445 I Target type is gd32f470zg [board]0000703 I DP IDR = 0x2ba01477 (v1 rev2) [dap]0000724 I AHB-AP#0 IDR = 0x24770011 (A...
pyocd基于python的开源软件包,支持对 Arm Cortex-M 微控制器进行编程和调试。它是完全跨平台的,支持 Linux、macOS、Windows 和 FreeBSD。 提供两种访问形式:命令行;python API本次探索其命令行的使用,主要实现程序的下载;准备工作mcu:gd32f470zg;调试器:DAPlink;bin文件:我准备了一个led灯闪烁的程序,方便观察;首先查看帮助信息:pyocd -h终端显示:usage: pyocd [-h] [-V] [--help-options] ...PyOCD debug tools for Arm Cortex devicesoptions: -h, --help show this help message and exit ...
float 发送的常见两种方案float传输测试ESP32 端:打包四字节PC端:解析四字节内容扩展float的存储方式大小端模式python struct模块小结上次做mpu6050可视化时,匿名上位机对于浮点的处理为扩大100倍,然后转化为整数进行传输。那时就疑惑,扩大一定倍数,然后转化为整数,相当于牺牲了float数的精度,当然,对于一般的场景,float的精度要求并不高。但是,是否有不影响float的精度的条件下,完成float的数据传输?发送float的核心在于如何将表示float的四个字节提取出来,如何在PC端将四个字节还原成float? float 发送的常见两种方案 当然有了,以...
wsl 安装1. 检查 BIOS 是否开启了虚拟化2. 启用wsl功能3.安装 Ubuntu安装usbipd-win1. 下载2. 常用命令3. 使用demo安装esp32-idf开发环境安装vscode-esp-idf插件安装esp32开发环境使用Windows和wsl编译环境来回切换原先是在Windows环境下,在vscode下使用esp-idf插件进行esp32s3的相关开发,在vscode下使用esp-idf插件可以使安装环境更加的简单和清爽。但是唯一的缺点就是在Windows下编译是在时太慢了,特别是修改过menuconfig后,触发全局编译,那真是等着难受。听说在linux下编译比较快,所以想尝试在wsl下进行编译,加快编译环境。编译时间对比(...
硬件I2CMPU6050的相关名词MPU6050 配置1 WHO_AM_I2 Power Management 13 Configuration4 SMPRT_DIV5 Gyroscope Configuration6 Accelerometer Configuration读取原始数据7 Temperature Measurement8 Gyroscope Measurements9 Accelerometer Measurements其他自认为有用的寄存器9 FIFO Enable10 Interrupt Enable11 User Control读取结果下一步计划说来也惭愧,自己还没有根据过DataSheed进行开发,一般都是直接在网上搜索代码,然后挑一个能看懂的代码使。或者,直接使用厂家提供的demo进行下一步动作。这次想利用常见的MPU6050,通过查看DataSh...
前言准备工作硬件环境移植1.新建工程2.下载额外组件3. 修改menuconfig4 编译5 编写main函数6 下载成果不足前言现在开始学习ESP32了,在网上买了块ESP32s3的开发板,点完灯以后的首要事则是点亮屏幕。在点亮屏幕的过程中,发现lvgl仓库中提供的lvgl_esp32_drivers并不能顺利,原因在于ESP-idf和lvgl更新的太快,导致有的函数不在适用。本文将使用最新的ESP-idf(v5.1)和lvgl(v8.3)点亮屏幕。准备工作硬件没有使用官方的(有点小贵),顺便买个平替版。flash为16M屏幕使用一款TFT屏幕,分辨率为240*240,通信方式为SPI,驱动为ST7789。没有触摸芯片...
micro-ROS可行性分析micro-ROS框架micro-ROS静态库编译1. 下载micro_ros_setup2. 下载micro-ROS相关代码3. 创建交叉编译链4. 创建和编译静态库相关的宏定义5 编译micro-ROS静态库移植1. 复制静态库和头文件2. 将库和头文件包含进工程3. 添加接口函数4. 添加时钟同步函数测试publish测试subscriber测试总结下一步参考相关代码和《Robot Operating System》,回复"microROS"micro-ROS可行性分析micr-ROS是ROS2专门为微控制器开发的组件,旨在将微控制器变成ROS2的一个节点连接进入ROS系统中。在实际应用中,我们可以实现将微控制器直接接入ROS系统,而...
XR806环境搭建资源获取SDK简介uart实现1. 创建工程2. 编译和烧录效果总结下一步计划XR806芯片,它是一款基于安谋科技的STAR-MC1处理器来研发设计的支持WiFi和BLE的高集成度无线MCU芯片,本次开发板来自于极术社区的试用活动:全志XR806开发板免费试用,支持开源鸿蒙系统+FreeRTOS[1]。本次有幸再次参加,打算试基于该开发板实现micro-ROS[2]移植。micro-ROS旨在将ROS2部署在微控制器中。micro-ROS和其他ROS2节点的常用通信方式为uart和udp,因此要移植之前,首先需要打通XR806的uart和udp的功能。本篇文章主要实现XR806的串口测试。XR806c.pngXR806XR...
Makefile基础gcc命令 通过gcc命令实现编译main.c#include<stdio.h>int main(){ printf("Hello world\n"); return 0;}1.预处理gcc -E main.c -o main.i-E:预处理;-o : 将结果输出到指定文件中;2. 编译生成汇编语言gcc -S mian.c -o main.s-S:进行预处理和汇编操作;3. 汇编生成机器语言gcc -c mian.c -o mian.o-c:生成目标文件4.链接gcc mian.c -o main静态文件库 三个.c文件:main.c , add.c, minus.c目标:将add.c, minus.c编译为静态文件库mian.c#include<stdio.h>int add(int a, int b);int minus(int...
Makefile exampleexample实现内容所有文件直接编译、链接形成可执行文件;将add.c和minus.c编译成静态文件库,然后链接形成可执行文件;将add.c和minus.c编译成动态文件库,然后链接形成可执行文件;文件夹结构.├── inc│ ├── add.h│ └── minus.h├── Makefile└── src ├── add.c ├── main.c └── minus.cadd.h#ifndef ADD_H#define ADD_Hint add(int a, int b);#endif minus.h#ifndef MINUX_H#define MINUX_Hint minus(int a, int b);#endif add.c# include"add.h"in...
概述 microROS支持rtthread为2022开源之夏项目,最终实现在rtthread的工程下构建microROS静态库,现总结下code的使用方法。 测试环境 ROS2 galactic humle;art-picodehttps://github.com/wuhanstudio/micro_ros/tree/galactic-standalone-gcc-10https://github.com/navy-to-haijun/micro_ros_setup/tree/rtthtrad-galactic 使用方法一 在rtthread的工程下构建microROS静态库。1. 下载codertthread code# 下载rtthread (对于其他单片机,使用rtthread仓库)git clone https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-ar...
树莓派之lvgl-实时曲线展示概述lvgl是轻量级UI库,采用c语言编程,适用于各种嵌入式平台。今天打算在树莓派上基于lvgl展示实时曲线,用于数据监控和可视化。结果使用硬件树莓派4B:系统:ubunt20.04(无界面)带HDMI的显示器编程主要包含以下内容移植lvgl使用chart组件完成数据可视化移植lvgl树莓派端基于linux的frame做显示,cmake作为工程的构建工具。1. 下载源码lvgl官方提供基于linux的frame的源码。git clone https://github.com/lvgl/lv_port_linux_frame_buffer由于lv_drivers和lvgl很难通过git submodule update --init --recursive命令下...
树莓派使用蓝牙(spp)概述SPP是Serial Port Profile(串口协议)的缩写。其定义了使用蓝牙进行RS232(或类似)串行电缆仿真的设备应使用的协议和过程。简单来说就是在蓝牙设备之间建立虚拟的串口进行数据通信。蓝牙配对下载依赖包sudo apt install bluez进入bluetoothctlsudo bluetoothctl# 查看支持的命令help# 激活power onagent ondefault-agent# 查看已经配对信息paired-devices# 开始搜索蓝牙设备scan on# 结束搜索蓝牙设备scan off# 匹配 蓝牙设备pair [dev]# 连接设备connect [dev]# 参看设备信息info [dev]# 断开连接...
XR806-移植rosserial-TCP通信前面介绍了串口通信,下面介绍rosserial的TCP通信方式wifi连接wifi连接使用官方在ohosdemo/wlan_demo中的代码。具体使用void wifi_device_event_test()函数和wifi连接成功后的回调函数:void Connected_deal(int state, WifiLinkedInfo *info)。大致思路是在wifi连接线程中增加一个信号量,初始化信号量为0,rosserial线程会一直等待信号量有效后才会触发rosserial的相关函数,利用信号量作为两个线程间的同步,保证wifi顺利连接成功后才会进行rosserial的TCP通信。另外每次wifi重新连接后都会保证XR806会自动连接ROS。信...
XR806-移植rosserial-串口通信XR806简介rosserial简介移植:串口通信rosserial源码获取ROSserial移植核心XR806 C++支持串口代码风格统一配置文件`BUILD.gn`测试XR806端编译程序PC ROS 端效果总结和完善之处XR806简介板子来源于极术社区的试用,XR806的在线网址c.png其主要参数:主控XR806AF2LDDRSIP 288KB SRAM存储SIP 160KB Code ROM. SIP 16Mbit Flash.天线板载WiFi/BT双天线,可共存按键reboot按键 1,功能按键 1灯红色电源指示灯 1,蓝色可调节LED 1供电Type-C 5V引脚插针引脚 *9调试方式Type-C(已板载串口转USB芯片)晶振外接40MHz晶振rosseri...