- 博客(168)
- 问答 (1)
- 收藏
- 关注
原创 USB PD协议介绍 (腾讯元宝回答版本)
特性描述核心一套智能的、双向通信的充电协议。基础通过USB-C接口的CC引脚进行协商。最大优势高功率(最高240W)和通用性(打破私有协议壁垒)。关键特性PPS(可编程电源),实现电压微调,效率更高。应用从手机、平板到笔记本电脑的全面快充解决方案,目标是“一线通”。希望这份详细的介绍能帮助您全面了解USB PD协议。它是现代电子设备迈向统一化、高效化供电的关键一步。好的,我们来深入剖析协议的技术内核。这将比一般的介绍更加深入和硬核。USB PD 协议是一个复杂的通信系统,其核心规范由USB-IF。
2025-09-15 10:17:54
765
原创 电池充电管理芯片 SC8815
SC8815 就是一个双向充电控制器可以给电池充电(从适配器进 → 电池)。也可以给外部设备供电(从电池出 → USB)。你要做的事硬件电路照着典型应用搭建(电池、电源、电感、电阻)。MCU 用 I²C 配置充电/放电参数。MCU 通过 I²C 读取 ADC 数据(电池电压、电流),实现电池管理。利用芯片内置保护功能,保证安全。要不要我帮你整理一个最小使用步骤清单(硬件连接图 + 必须配置的寄存器流程),让你能快速做一个 Demo?你问的这个“检测的啥玩意儿”,其实就是。
2025-09-15 10:15:48
935
原创 嵌入式电池充电领域 基础知识
您可以把它想象成一个智能的水库系统VBUS:就像是一条外部河流(输入水源)。VBAT:就像是水库本身(存储能量)。SC8815芯片:就像是水库的管理系统(水坝、水泵、阀门)。当河水(VBUS)来时,管理系统会先把河水引去给城市(系统)用水,多余的水则抽到水库(VBAT)里存起来。当河水枯竭时,管理系统就打开闸门,从水库(VBAT)放水来保障城市用水。所以,VBUS和VBAT都是正极,但它们属于两个不同的电源网络(外部输入和电池),而芯片的作用就是在它们之间进行高效、安全、智能的能量转换和管理。
2025-09-15 10:11:26
686
原创 Hynetek HUSB238
操作流程对你(开发者)来说就是:我的设备最大需要多少电压和电流?(比如12V/1.5A)根据产品尺寸、是否需要大电流(>3A)等,从列表中选择合适的型号(如HUSB238_003DD)。查手册Table 5和Table 6,找到对应12V和1.5A的电阻值(VSET: 10kΩ, ISET: 4.53kΩ)。按照手册的“典型应用电路”图,将HUSB238、PMOS管、电阻、电容搭建起来。将选好的电阻焊到VSET和ISET引脚上。芯片之后就会自动完成所有谈判、供电和保护工作。
2025-09-12 15:44:47
900
原创 SC3336 rgb sensor linux
我已经把 带详细中文注释 的 放到画布(Canvas)里,文件名为 Sc3336 注释版(你可以在左侧画布区看到它)。我没有在聊天窗口重复整个代码(代码已在画布中),下面给你一份清晰、分段的代码流程解读与调试要点 — 便于快速理解与定位问题。核心流程概览模块注册 / 初始化(probe)上电/下电控件(V4L2 controls)管理格式与模式启动/停止视频流I2C 读写封装增益映射(关键实现点)传感器 ID 不匹配(read_reg 返回的 id != CHIP_ID):xvclk 频率不一致:
2025-09-08 00:05:13
1002
原创 repo 学习教程
git 管理一个仓库repo 管理很多仓库repo init→ 初始化repo sync→ 拉源码→ 看修改→ 批量执行命令repo 本质还是 git,所以你 git 学得越熟,repo 就越容易。要不要我帮你写一个“小白练手用的 manifest.xml + 步骤脚本”,你直接复制粘贴就能玩?
2025-09-06 21:30:16
967
原创 FOC开环控制代码解读
这段代码实现了一个开环速度控制系统,用于控制电机转速。它通过PWM控制器输出电压信号,来驱动电机转动。具体来说,它在指定目标速度下,持续通过电压信号进行控制。下面是对该代码详细流程的逐步解析:该宏定义用于限制一个值在一个指定的范围内。对于PWM占空比,它确保其值不会超过0到1的范围。2. 全局变量 表示电源电压,设为12.6V。 是电机的机械角度。 用来存储上次控制的时间戳。, , , , 是三相电压和控制信号。, , 是各个PWM通道的占空比。3. 函数函数是Ardu
2025-08-30 21:51:15
755
1
原创 Linux camera 驱动流程介绍(rgb: ov02k10)(chatgpt version)
👉Camera 驱动链路就是:Sensor 驱动(寄存器/I2C配置) → MIPI-CSI Host → ISP → V4L2 Core → 应用层。内核里用 Media Controller 把这些模块连起来,应用层通过采集数据。要不要我帮你画一个更详细的图(包含 I2C 控制通道 + MIPI 数据通道 + V4L2 节点),这样比文字更清楚?好的,我帮你画一个OV02K10 Camera 驱动完整链路示意图,把控制通道 (I2C)和数据通道 (MIPI/ISP/V4L2)都表示清楚。│ │。
2025-08-24 22:13:45
839
原创 linux ov02k10 camera 驱动 代码注释以及驱动简介(腾讯元宝版本)
好的,我们来逐段解析这个 Linux 图像传感器驱动代码,并添加详细的中文注释。这个驱动用于控制 Omnivision OV02K10 图像传感器芯片。您说得对,我提供的代码注释确实没有完整覆盖整个驱动程序。让我继续完成剩余部分的详细注释:完整驱动程序总结这个驱动程序完整实现了对OmniVision OV02K10图像传感器的控制,主要包括以下功能:初始化和探测:电源管理:视频流控制:参数控制:格式配置:高级功能:调试接口:兼容性支持:该驱动程序遵循标准的V4L2子设备框架设计,与Linux内核的视
2025-08-24 21:57:14
272
原创 linux下camera 详细驱动流程 OV02K10为例(chatgpt版本)
→ 摄像头对象,保存运行状态寄存器读写函数→ I²C 通信基础启动/停止视频流→ 初始化寄存器 → 开关输出V4L2 控件→ 曝光、增益、翻转、测试图案要不要我把这个完整驱动里的电源管理部分(上电/下电流程)也加上详细中文注释?这样你就能完整掌握“驱动初始化 → 上电 → 配置寄存器 → 开始输出”的全流程。👌 好的,那我就帮你把OV02K10 驱动的全流程(含电源管理)都整理成详细中文注释版。我会分成几个大块来写,保证你能从头到尾看懂一个摄像头驱动的运行过程。电源管理。
2025-08-24 21:53:50
1125
原创 嵌入式linux开发板 IP配置
你这里写的命令是 Linux 下 配置网卡 IP 和启用网卡 的操作,但你写法上有点小问题,我给你详细解释一下:作用:启动网卡 ,让它开始工作如果网卡本来是 down(关闭) 状态,这一步是必须的2️⃣ 设置 IP你写的:eth0:网卡名称192.168.10.50:你要设置的 IPnetmask 255.255.255.0:子网掩码,可选,如果不写默认用系统设置3️⃣ 查看配置作用:显示所有网卡的 IP、MAC、状态等信息如果配置成功,你会看到 的 IP 变成 ,状
2025-08-23 15:47:53
235
原创 Vmware虚拟机 网络配置选项介绍
桥接:虚拟机 = 家里新接一台电脑,人人能看到。NAT:虚拟机 = 躲在主机后面蹭网,上网方便,但别人找不到它。仅主机:虚拟机 = 只和主机连一根网线,跟外面世界无关。自定义:虚拟机 = 你自己画交换机、网线,怎么接随便搞。LAN 区段:虚拟机 = 一个小黑屋里几台电脑互联,外面完全不知道。要不要我给你画一张简单的图,把桥接 / NAT / Host-only 直观对比出来?这样一眼就能看出区别。好的 👍 那我帮你画一张网络模式的拓扑示意图,这样你能直观看出。
2025-08-23 15:13:21
905
原创 Rockchip Linux updateEngine 和 Rockchip Linux RKDEVTOOL 的区别
这个问题问得非常好 👍,我给你详细拆解一下存在的原因和作用。
2025-08-21 17:38:46
1098
原创 RK3588S 升级镜像包介绍
BootROM (SoC 内部ROM)↓MiniLoaderAll.bin (初始化DDR/PMU)↓uboot.img (引导器, 读参数, 加载内核)↓boot.img (内核 + ramdisk)↓rootfs.img (Linux 根文件系统)↓userdata.img (用户数据, 可变)而是打包好的整体升级镜像则是描述文件。要不要我帮你画一个RK3588 固件组成 + 启动流程图?这样比一堆文字更直观。在 RK3588(S) 的编译/打包系统里,设备树 DTB 文件。
2025-08-21 16:25:42
1122
原创 linux 差分升级简介
👉定义不传完整固件,而是只传“旧版本和新版本之间的差异”,目标机利用差分包 + 旧版本数据,重构出新版本。整包升级:直接把整本书的新版本寄给你。差分升级:只寄给你一份“勘误表”,你在旧版书上改一改,就得到了新版。
2025-08-21 10:27:32
304
原创 嵌入式linux设备升级和sm32升级对比
层次STM32Bootloader负责加载 APP负责加载 Kernel内核(没有,直接写寄存器)Linux Kernel,驱动+调度文件系统(没有 Flash 文件系统,可能裸数据)RootFS (包含库、配置、APP)APP你的应用逻辑用户空间程序(只是 RootFS 的一部分)升级对象App1/App2 固件APP / RootFS / Kernel / Bootloader / 全量固件在 Linux 上,APP 只是系统的一部分,并不是升级的唯一对象。
2025-08-21 10:24:25
409
原创 嵌入式linux设备的升级实现原理
快速原型(你能马上上手):按上面的 “主机端 bsdiff + 设备端 agent 接收 → bspatch → 写入 inactive → 修改 U-Boot env → reboot → agent commit/rollback” 做一个 POC。这个路径对你目前“USB 升级 + 想做差分”是最直接的。中长期产线/运维方案:当 POC 稳定后,把 agent 替换成 RAUC(或 SWUpdate)并在产品上做签名管理、服务器端部署(如果需要集中 OTA)。RAUC 比较轻量;
2025-08-21 10:21:38
614
原创 C++ 互斥锁知识点学习
互斥锁用于保护共享资源,避免竞态条件。基本用法是mtx.lock(),推荐使用自动管理。临界区代码就是上锁到解锁之间的代码。不同类型的锁解决不同需求:普通锁、递归锁、超时锁、读写锁。互斥锁只保证同一时刻只有一个线程执行临界区,不能解决所有线程安全问题(如原子操作的组合仍需加锁)。我可以帮你画一个图解互斥锁运行流程,让你直观理解两个线程竞争资源时锁的工作机制,这对初学者特别有帮助。你希望我画吗?
2025-08-20 16:37:11
458
原创 C++ 原子锁知识点介绍 std::atomic<int>
特性C++ 原子 (C 普通变量 (int多线程读写是否安全✅ 安全,单个变量原子性❌ 不安全,可能数据竞争是否需要锁❌ 不需要(单变量操作)✅ 需要mutex中断打断❌ 不会被 CPU 原子指令打断⚠️ 可能被上下文切换/线程抢占影响多操作原子性⚠️ 单次操作原子,多操作需锁❌ 不保证原子操作保证单个变量读写完整性→ 不被线程切换打断不需要 mutex→ 性能高多操作组合还是需要锁→ 例如同时写 CPU 和 RAM,占用率一致性中断不会破坏原子操作。
2025-08-20 16:35:20
1001
原创 C++ 浅拷贝 和深拷贝的知识点讲解
在 C++ 中,当你有一个对象A// 或者 b(a);这就是在“拷贝一个对象系统会帮你把a的内容复制到b里,这个过程叫做拷贝构造。c = a;// 已经存在的对象 c,用 a 的内容覆盖它这就是“拷贝赋值。
2025-08-20 15:46:38
528
原创 Bootloader简介
Bootloader(启动加载程序)是设备上电或复位后最先执行的软件,它的主要作用是初始化硬件环境并加载操作系统(或主应用程序)到内存中运行。操作系统的“门卫”,先把基本硬件准备好,然后把操作系统交给 CPU 执行。Bootloader 就是设备上电后的“开机启动器”,负责初始化硬件、检查程序完整性,并把控制权交给操作系统或主应用程序。如果你愿意,我可以画一张bootloader 启动流程图,让整个过程一目了然。你希望我画吗?好,你想拆开来看boot和loader。
2025-08-20 14:31:43
870
原创 RGB sensor ISP标定流程
硬件检查] → [I2C 通信] → [Sensor 初始化寄存器] → [抓 RAW 数据]↓[确认 Bayer 正确] → [配置 ISP pipeline] → [输出 YUV]↓[静态参数调试] → [3A 算法调试] → [动态场景测试] → [优化收敛]要看你现在处在哪一步:👉 是sensor 驱动刚 bring-up,还没出 RAW?👉 还是已经能 dump RAW,卡在 ISP 调参?我可以给你更详细的步骤,比如如何用 v4l2-ctl 抓 RAW / YUV、或者。
2025-08-20 13:52:45
929
原创 根据IMU的 XYZ轴加速度数据(单位:g),角速度数据(单位:dps)算出欧拉角度数据
好——我把从原理到可落地的做法都讲清楚(公式、推导、常见陷阱、以及两种常用实现:互补滤波(简单)和四元数+融合(稳健)),并给出可直接移植到嵌入式/PC 的代码片段。先说明一个约定的坐标系和符号(如果你的传感器轴定义不同,见文末如何对应)。
2025-08-20 10:24:09
1081
原创 RK3588 recovery模式和misc分区介绍
你理解得很对,misc 就是一个单独的 Flash 分区,核心用途就是存放“启动模式”和“当前运行系统”等标志位。但谁来读写它,要分成启动前和系统运行时两个阶段来看。1. 启动前(上电后) → 谁去读misc?读的是 u-boot上电后 SoC 的 BootROM 会先加载 u-boot(bootloader)。u-boot 启动时会读取misc分区的特定字段(例如boot_mode等)。启动Normal 系统(正常内核)启动Recovery 系统(recovery 分区内核)启动。
2025-08-15 15:23:04
901
原创 把SLAM库 从linux系统中剥离出来移植到RTOS上
可以的,但这个过程并不是简单地“拷贝库文件”,而是需要仔细分析依赖、接口和操作系统相关部分。下面我给你系统讲解一下从 Linux 剥离 SLAM 算法到 RTOS 的可行步骤和注意点:SLAM 算法一般会依赖以下几类东西:操作系统接口数学库硬件接口文件 I/O去掉 Linux 特有调用替换系统时间/定时器替换日志/打印依赖库SLAM 依赖传感器输入(IMU、相机、LiDAR),可以做 HAL(Hardware Abstraction Layer):SLAM 算法只调用接口,不直接操作 I2C/SPI。
2025-08-14 15:08:09
846
原创 RK3588S recover升级简介
Recover 升级,也叫MaskROM 升级或救砖升级,是芯片在系统损坏、无法正常启动时使用的一种底层升级方式。它不依赖 NAND/EMMC 上的操作系统,只依赖 RK3588S 内置的MaskROM固件。MaskROM:芯片出厂自带的只读程序,不能修改,负责最基本的启动和升级功能。Recover 升级的作用:当主 bootloader 或系统损坏时,可以通过 USB/串口重新刷写 bootloader 或固件,让系统恢复。
2025-08-14 14:36:25
727
原创 瑞芯微官方 RK3588S文档readme介绍
非常全面,涵盖了从硬件驱动、MCU、Linux 系统到工具链、调试方法等各个方面。,把这些模块的关系和用途可视化,像一张“Rockchip 开发全景图”,便于初学者快速理解。,一般是各类芯片和模块开发的参考资料,不涉及具体的操作系统环境。:音频算法相关资料,可能是回声消除、噪声抑制、3A 算法等。,按逻辑模块分类说明每个部分的用途和重点。你贴出的这个目录看起来像是。如果你需要,我可以帮你。
2025-08-14 14:35:02
693
原创 怎么查看Linux I2C总线挂载了那些设备?
1;0;综上所述,节点名称是i2c@feaa0000cd /proc/device-tree/i2c@feaa0000 ,进入这个目录 ls查看。
2025-08-08 12:04:08
376
原创 USB2.0和3.0的对比区别
发布时间:2000 年最大理论速率480 Mbps(High Speed,约 60 MB/s)工作模式信号传输使用差分对 D+ / D-(半双工)同一时间只能一个方向传输(要么主机发,要么设备发)电源供给默认 5V / 500 mA(USB Battery Charging 可扩展更高)向下兼容性:完全兼容 USB 1.1/1.0 设备线缆:4 芯线(VBUS、GND、D+、D-)发布时间:2008 年最大理论速率5 Gbps(SuperSpeed,约 625 MB/s)信号传输。
2025-08-08 10:44:17
1751
原创 USB设备插上不识别 和 使用中 ,断连问题分析
USB 设备插上后,或者运行中是非常常见的问题,原因可能来自各层。下面我从各方面详细列出常见原因和排查建议。
2025-08-07 20:20:09
1419
原创 USB2.0 和 USB3.0 枚举对比
项目USB2.0USB3.0初始化过程全程 USB2.0 协议初始 USB2.0,后升级为 USB3.0支持描述符标准 + Class 描述符增加 BOS、Device Capability、SuperSpeed Endpoint通信端口EP0功耗管理基本供电管理增加 LPM(Link Power Management)能力传输方式控制、中断、批量、等时同上,但支持 Streams(批量的改进)BOS 描述符的正确编写。
2025-08-07 20:18:54
895
原创 USB2.0 枚举流程
描述符描述提供设备基本信息(VID/PID、USB版本等)提供一个或多个设备配置方案每个配置包含多个接口信息每个接口包含多个端点(输入/输出)提供字符串信息,如厂商名、产品名等。
2025-08-07 20:17:42
795
原创 USB3.0 枚举流程
USB3.0 枚举流程= USB2.0基础 + SuperSpeed链路训练 + BOS能力协商 + 更复杂描述符管理。如果你希望我提供抓包示例分析(比如USBView、Wireshark + usbmon)或Linux Gadget 层如何配合USB3.0完成枚举,我也可以详细讲解。是否需要?太好了!你既然正在基于 RK3588S 开发 USB3.0 设备通信系统(深度相机 + DToF 激光雷达),那我就结合Linux FunctionFS + USB3.0 枚举,再配合抓包工具分析。
2025-08-07 20:16:02
1075
LED驱动芯片-【电子元A器件】AW2013W三通道LED驱动器:2I2C兼容接口与0智能1呼吸模式设计及应用3
2025-07-28
C/C++ 代码格式化配置文件结合者 vscode clang-format 使用,在项目根目录下 新建个这个文件
2025-07-23
HardFault 定位方法
2025-04-16
Arm Compiler 5.06 update 7 (build 960) Lin32
2025-03-13
eclipseCDT&&python&&maketools&&arm-compile-tools
2025-03-18
Getting started with Raspberry Pi Pico-series
2025-03-14
Raspberry Pi Pico-series C/C++ SDK
2025-03-14
vscode SSH 连接安卓termux 连接失败 是为啥啊?
2024-09-29
linux上使用arm-none-eabi-gcc 编译器编译.s汇编文件就提示错误
2024-07-24
vscode 写camke 一编辑改动cmake文件就自动弹出out窗口,为啥啊?
2024-04-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人