沁恒CH582F开发记录

由于最近一直在玩墨水屏,正好看到了沁恒CH582F低功耗蓝牙芯片,由此从0开始开发。

开发环境搭建

具体可以看着网上的教程一步一步来。CH571F CH573F CH582F CH592F核心板SuperMiniWCH蓝牙开发板RISCV-淘宝网
我买的是CH582F,对比M型号引脚少了很多。
安装MounRiver Studio (这里我用的是MounRiver 2)用WCHISPTool的USB模式下载即可

代码移植

由于底层已经非常完善,只要对基础的库函数用CH582F的库函数重新定义即可。
这里是一些代码的截取:

main里的SPI初始化

void _init(void){
    //spi
    GPIOA_ModeCfg(GPIO_Pin_13|GPIO_Pin_14, GPIO_ModeOut_PP_5mA);
    GPIOA_ModeCfg(GPIO_Pin_5|GPIO_Pin_12|GPIO_Pin_15, GPIO_ModeOut_PP_5mA);//测试发现5mA也能使用
    GPIOA_ModeCfg(GPIO_Pin_4, GPIO_ModeIN_PU);
    SPI1_MasterDefInit();
}

库文件里的引脚定义

#define EPD_SCL_Clr() GPIOA_ResetBits(GPIO_Pin_13)
#define EPD_SCL_Set() GPIOA_SetBits(GPIO_Pin_13)

#define EPD_SDA_Clr() GPIOA_ResetBits(GPIO_Pin_14)
#define EPD_SDA_Set() GPIOA_SetBits(GPIO_Pin_14)

#define EPD_RES_Clr() GPIOA_ResetBits(GPIO_Pin_15)
#define EPD_RES_Set() GPIOA_SetBits(GPIO_Pin_15)

#define EPD_DC_Clr() GPIOA_ResetBits(GPIO_Pin_5)
#define EPD_DC_Set() GPIOA_SetBits(GPIO_Pin_5)

#define EPD_CS_Clr() GPIOA_ResetBits(GPIO_Pin_12)
#define EPD_CS_Set() GPIOA_SetBits(GPIO_Pin_12)

#define EPD_ReadBusy GPIOA_ReadPortPin(GPIO_Pin_4)

一些小坑

读了数据手册,然后发现,CH582F是没有SPI1 的引脚的

所以只能用SPI0

但是最后程序中还是用SPI1实现的SPI0功能。问题不大。。。

<think>好的,我需要处理用户关于CH592低功耗测试方法的询问。首先,我要确认CH592是什么。查阅资料发现,CH592是沁恒微电子的一款蓝牙低功耗(BLE)微控制器,常用于物联网设备。用户可能是在开发中使用该芯片,需要测试其低功耗性能以确保产品续航。 接下来,用户需要的是测试方法,因此应分步骤说明。常见的低功耗测试涉及不同工作模式下的电流测量,比如运行模式、睡眠模式、待机模式等。需要确保涵盖这些模式,并指导如何正确测量。 然后,要考虑测试所需的工具,比如万用表、示波器、电源分析仪等。需要推荐合适的设备,并解释为什么需要高精度仪器,因为低功耗下的电流可能非常小,普通设备可能不够精确。 另外,测试时的注意事项也很重要。例如,确保其他电路不影响测量,断开不必要的负载,以及正确配置芯片的工作模式。可能还需要提到固件配置,比如关闭未使用的外设,调整时钟频率等。 还要考虑测试步骤的逻辑顺序,比如准备阶段、配置芯片、连接测量仪器、记录数据等。每个步骤需要详细说明,让用户能一步步跟随操作。 需要验证提供的信息是否准确,比如各模式的典型电流值是否与CH592的数据手册一致。如果有不确定的地方,应建议用户参考官方文档或联系技术支持。 最后,总结关键点,强调正确测试低功耗的重要性,并提醒用户注意常见错误,比如测量仪器的接地问题或配置错误导致的高功耗。</think>以下是关于CH592芯片低功耗测试方法的逐步说明: --- ### **CH592低功耗测试核心步骤** #### **1. 测试前准备** - **硬件工具**: - 高精度万用表(分辨率≤1μA)或专用电源分析仪(如Keysight N6705) - CH592开发板(需确保外围电路无漏电) - 可编程电源(电压范围1.8~3.6V) - **软件配置**: - 关闭所有未使用外设(ADC/UART/GPIO等) - 通过代码设置目标低功耗模式(如BLE休眠模式) #### **2. 典型低功耗模式测试** **模式1:BLE广播模式** - 配置广播间隔为1秒(默认功耗最高状态) - 测量电流脉冲峰值与平均电流: $$I_{avg} = \frac{T_{active} \cdot I_{active} + T_{sleep} \cdot I_{sleep}}{T_{total}}$$ 典型值:峰值≈6mA,平均≈30μA@1s间隔 **模式2:深度睡眠模式** - 关闭RF模块,保留RTC运行 - 直接测量稳态电流,典型值:1.5~3μA **模式3:待机模式** - 关闭所有功能,仅保留SRAM数据 - 典型电流:0.8~1.2μA #### **3. 测量操作要点** - **消除干扰**: - 使用飞线直接焊接VCC引脚,避免开发板LDO影响 - 并联10μF+0.1μF电容稳定电源纹波 - **数据记录**: ```markdown | 模式 | 电压(V) | 峰值电流(mA) | 平均电流(μA) | 温度(℃) | |-------------|---------|--------------|--------------|---------| | BLE广播 | 3.0 | 5.8 | 28 | 25 | | 深度睡眠 | 3.0 | - | 2.1 | 25 | ``` #### **4. 优化验证** - 使用`__WFI()`指令强制进入休眠 - 检查GPIO状态(悬空引脚需设置为下拉) - 验证时钟树配置(关闭HSI/HSE,仅保留LSI) #### **5. 异常排查** - **电流偏高**: - 检查PCB漏电(断开所有外部传感器) - 用热像仪定位发热元件 - 通过`printf`调试输出确认休眠状态 - **数据异常**: - 校准万用表零点(短路表笔补偿) - 确认测量时间窗口≥10个工作周期 --- ### **关键注意事项** 1. 不同批次的芯片可能存在±15%的功耗偏差 2. BLE连接间隔对功耗影响显著(100ms间隔时功耗翻倍) 3. 低温环境下(-40℃)需重新验证唤醒特性 建议结合官方《CH592低功耗设计指南》v2.3第5章进行对比测试。实际项目中,建议用1Mohm采样电阻+示波器捕获μs级电流脉冲。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值