描述
<div>
<h3 style="line-height:1.8;">* 1、项目功能介绍</h3>
<hr>
<h2>一、项目概述</h2>
<p>本项目设计了一套基于RA4L1-SENSOR的电源管理与通信模块,结合当前主流USB PD(Power Delivery)规范,实现安全、智能的电源传输控制。系统通过精确检测VBUS电压、电流以及数据线状态,确保为负载设备提供稳定可靠的电源支持,同时兼容多种USB设备。设计采用模块化原理,便于扩展与调试,具有广泛的应用前景。</p>
<ul>
<li><strong>高精度电流检测</strong>:内置高精度电阻采样,配合滤波电容,保证采样数据稳定可靠。</li>
<li><strong>协议兼容性强</strong>:采用专用USB PD管理芯片,完全兼容USB Type-C标准及多种充电协议。</li>
<li><strong>模块化设计</strong>:各功能模块清晰,可根据需求灵活更改及扩展。</li>
</ul>
<h3 style="line-height:1.8;">*2、项目属性</h3>
<hr>
<p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">项目是首次公开;</span></p>
<p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">项目是为原创;</span></p>
<p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">项目未在其他比赛中获奖</span><span style="color:#95a5a6;font-size:14px;">;</span></p>
<p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">项目未在学校参加过答辩。</span></p>
<h3 style="line-height:1.8;">* 3、开源协议</h3>
<hr>
<p><span style="color:#95a5a6;font-size:14px;">GPL3.0开源协议</span></p>
<h3 style="line-height:1.8;">*4、硬件部分</h3>
<hr>
<h3>1. 电源接口模块(USB1、USB2)</h3>
<ul>
<li>通过两个USB Type-C连接器(USB1和USB2)实现主供电及设备连接。</li>
<li>传输VBUS(电源线)、CC(配置通道)以及数据信号线(DP、DN)信号。</li>
<li>母线电压与信号线分别经过滤波、保护电路,保证信号完整性及电源稳定。</li>
</ul>
<h3>2. 电源检测模块(U3:电流检测与电压测量)</h3>
<ul>
<li>集成电流检测芯片U3,测量USB端口的VBUS电流。</li>
<li>采用高精度采样电阻(R9,5mΩ)和反馈电阻(R7、R8,100Ω)搭建电流采样回路。</li>
<li>通过稳压滤波电容(C6、C11)保证测量信号稳定,降低噪声干扰。</li>
<li>通过I2C总线(SCL、SDA)与主控芯片通信,实现实时采集电流和电压数据。</li>
</ul>
<h3>3. USB PD协议管理芯片(U2:CH224A)</h3>
<ul>
<li>负责USB Type-C的配置通道CC1、CC2信号的检测与处理。</li>
<li>内置硬件逻辑,实现协议层控制,判断连接设备类型及充电模式。</li>
<li>支持VBUS电压测量及电源状态监控,确保充电安全。</li>
<li>通过外部电容、电阻(C2、R4、R10、R11等)配置芯片参数和滤波。</li>
</ul>
<h3>4. I2C信号连接及级联接口(H1、H2)</h3>
<ul>
<li>采用标准I2C总线通信接口(SCL、SDA),连接电流检测芯片和主控单片机。</li>
<li>H1针脚定义方便连接MCU GPIO,实现数据采集与控制。</li>
<li>H2接口作为扩展或调试端口,支持额外外设接入。</li>
</ul>
<h3>5. OLED显示模块(U4:HS96L03W2C03)</h3>
<ul>
<li>一款I2C总线连接的0.96寸OLED屏幕。</li>
<li>通过读取电流电压信息,进行处理显示。</li>
</ul>
<h3 style="line-height:1.8;">*5、软件部分</h3>
<hr>
<h3>1. 外设初始化和配置</h3>
<ul>
<li><strong>UART初始化</strong><br>通过<code>R_SCI_UART_Open</code>初始化串口9,实现串口调试信息输出功能。UART回调函数<code>user_uart_callback</code>用于标记发送完成,配合串口重定向实现<code>printf</code>打印。</li>
<li><strong>I2C初始化</strong><br>通过<code>R_IIC_MASTER_Open</code>打开I2C主控设备,设置I2C回调函数,用于处理I2C传输事件。</li>
<li><strong>OLED显示屏初始化</strong><br>初始化OLED,清屏后显示项目名称及中文字符,起到开机欢迎界面作用。</li>
<li><strong>INA226电量检测芯片初始化</strong><br>通过<code>INA226_INIT()</code>和<code>INA226_Config()</code>配置INA226,实现对总线电压、分流电压、电流及功率的实时测量。</li>
</ul>
<hr>
<h3>2. 主循环功能</h3>
<p>主循环中不断进行以下操作:</p>
<ul>
<li>控制IO口输出电平,实现指示或信号控制。</li>
<li>通过INA226采集电压(Bus Voltage)、电流(Current)、分流电压(Shunt Voltage)和功率(Power)数据。</li>
<li>通过<code>printf</code>打印采集数据,方便串口调试。</li>
<li>将采集的数据格式化后显示在OLED屏幕上,实现本地实时监控界面。</li>
<li>每次循环后延时500ms,保证数据更新频率适中且稳定。</li>
</ul>
<hr>
<h3>3. 辅助功能与设计细节</h3>
<ul>
<li><strong>串口重定向</strong>:<br>实现<code>__io_putchar</code>或<code>fputc</code>用于<code>printf</code>重定向,实现数据通过串口发送。</li>
<li><strong>I2C通信回调处理</strong>:<br><code>IIC_Master_callback</code> 和 <code>i2c1_callback</code>保存I2C传输事件状态,便于上下文检测和错误处理。</li>
<li><strong>启动流程钩子函数 <code>R_BSP_WarmStart</code></strong>:<br>根据项目编译选项处理启动早期操作(如使能数据Flash读访问、IO端口引脚配置),确保硬件环境就绪。</li>
</ul>
<h3>4. INA226芯片初始化与配置</h3>
<ul>
<li><strong><code>INA226_INIT(void)</code></strong><br>初始化INA226芯片,设置寄存器默认配置,同时调用<code>INA226_SetCalibration()</code>对芯片进行电流校准,确保后续测量的准确性。</li>
<li><strong><code>INA226_Config(mode, shuntVoltTime, BusVoltTime, AVGMode)</code></strong><br>支持对芯片工作模式、转换时间、平均次数等参数进行配置,灵活调整芯片工作状态以适应不同采样需求。通过配置寄存器,控制芯片的采样速率及精度。</li>
<li><strong><code>INA226_Reset(void)</code></strong><br>软复位芯片,通过设置配置寄存器中的复位位实现。</li>
</ul>
<hr>
<h3>5. 数据读取接口</h3>
<ul>
<li>
<p><strong><code>INA226_ID(void)</code></strong><br>读取芯片ID,验证芯片通信是否正常。</p>
</li>
<li>
<p><strong><code>INA226_Voltage_Current_Power(float *volt, float *current, float *power)</code></strong><br>一次读取多个相关寄存器的值,包括总线电压、功率和电流,减少I2C通讯次数,提高效率。</p>
</li>
<li>
<p><strong><code>INA226_ShuntVoltage(void)</code>、<code>INA226_BusVoltage(void)</code>、<code>INA226_Current(void)</code>、<code>INA226_Power(void)</code></strong><br>分别获取分流电压、总线电压、电流和功率的实时数值,返回带物理量单位的浮点值,方便应用层直接调用。</p>
</li>
</ul>
<hr>
<h3>6. 校准与计算</h3>
<ul>
<li><strong><code>INA226_SetCalibration(R_Shunt, MaxExpCurrent)</code></strong><br>根据分流电阻 <code>R_Shunt</code> 和最大期望电流 <code>MaxExpCurrent</code> 计算校准寄存器值与电流LSB,保证电流等量程和测量精度。该函数是保证测量准确性的核心,合理设置后可以满足不同负载和测量范围需求。</li>
<li><strong><code>INA226_GetCalibration()</code></strong><br>读取当前校准寄存器数值,方便调试与校验。</li>
</ul>
<hr>
<h3>7. I2C通信底层实现</h3>
<ul>
<li><strong><code>INA226_I2C_Write(reg, value)</code></strong><br>向指定寄存器写入16位数据。通过设置芯片地址,发送寄存器地址及数据,包含超时检测和错误断点,确保通信稳定。</li>
<li><strong><code>INA226_I2C_Read(reg, *value)</code></strong><br>读取指定寄存器的16位数据,带有错误检测和超时保护机制,对I2C中断事件响应的轮询保证数据的可靠接收。</li>
<li><strong><code>INA226_I2C_ReadBuff(reg, *value, size)</code></strong><br>支持读取多个连续寄存器字节,比如读取多个寄存器合并数据,适合一次批量数据采集。</li>
</ul>
<p> </p>
<ul>
<li>采用FSP框架,代码结构简洁且易于维护。</li>
<li>通过软硬件延时和回调机制保证通信稳定。</li>
<li>OLED显示和串口打印实现双重数据监控方式。</li>
<li>使用INA226芯片实现精确电流和电压采集,保证测量数据的准确性。</li>
<li>代码中带有丰富注释,便于理解和后续二次开发。</li>
</ul>
<p style="line-height:1.8;"> </p>
<h3 style="line-height:1.8;">*6、BOM清单</h3>
<hr>
<p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">RA4L1-SENSOR</span></p>
<p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">BOM将自动生成</span></p>
<h3 style="line-height:1.8;">*7、大赛LOGO验证</h3>
<hr>
<p style="line-height:1.8;"> </p>
<p style="line-height:1.8;"><img src="https://image.lceda.cn/oshwhub/pullImage/76721c43758549ddba59da796c9e924a.jpg" alt="" width="600" height="800"></p>
<p style="line-height:1.8;"> </p>
<h3 style="line-height:1.8;">* 8、演示您的项目并录制成视频上传</h3>
<hr>
<p style="line-height:1.8;"> </p>
<p style="line-height:1.8;"> </p>
</div>
评论(1)