华大电子MCU-CIU32F011x3、CIU32F031x5电源管理

  1. 中断和事件(INT/EVT)
    6.1. 嵌套向量中断控制器
    • 中断都可屏蔽(除了 NMI)
    • 4 个可编程的优先等级
    • 低延迟的异常和中断处理
    • 电源管理控制
    • 系统控制寄存器的实现
    嵌套向量中断控制器(NVIC)和处理器核的接口紧密相连,可以实现低延迟的中断处理和高效地处理晚到的中断。
    嵌套向量中断控制器管理着包括核异常等中断。关于更多的异常和 NVIC 编程的说明请参考 CPU技术参考手册。
    6.2. 系统滴答(SysTick)校准值寄存器
    本芯片支持系统滴答计时。
    6.3. 中断功能描述
    处理器和嵌套式矢量型中断控制器(NVIC)在处理(Handler)模式下对所有异常进行优先级区分以及处理。当异常发生时,系统自动将当前处理器工作状态压栈,在执行完中断服务子程序 (ISR)后自动将其出栈。
    取向量是和当前工作态压栈并行进行的,从而提高了中断入口效率。处理器支持咬尾中断,可实现背靠背中断,大大削减了反复切换工作态所带来的开销。
    6.4. 外部中断/事件控制器(EXTI)
    外部中断/事件控制器包含 26 个产生中断/事件触发的边沿检测电路,每条输入线可以独立地配置触发事件类型(上升沿或下降沿或者双边沿都触发)。每条输入线都可以独立地被屏蔽,挂起寄存器保持着状态线的中断请求,可通过对挂起的寄存器对应位写“1”清除中断请求。
    6.4.1. 主要特征
    EXTI 控制器的主要特性如下
    • 每个中断/事件都有独立的触发和屏蔽
    • 每个中断线都有专用的状态位
    • 支持多达 26 个软件中断/事件请求
    • 支持上升沿、下降沿和双边沿 3 种触发事件类型
    6.4.2. 唤醒事件管理
    CIU32F011x3、CIU32F031x5 可以处理外部或内部事件来唤醒内核(WFE)。唤醒事件可以通过下述配置产生:
    外设的控制寄存器使能一个中断,但不在 NVIC 中使能,同时在 CPU 的系统控制寄存器中使能SEVONPEND 位。当 CPU 从 WFE 恢复后,需要清除相应外设的中断挂起位和外设 NVIC 中断通道挂起位(在 NVIC 中断清除挂起寄存器中)。配置一个外部或内部 EXTI 线为事件模式,当 CPU 从 WFE 恢复后,因为对应事件线的挂起位没有被置位,不必清除相应外设的中断挂起位或 NVIC 中断通道挂起位。
  2. 循环冗余校验计算单元(CRC)
    7.1. 模块介绍
    循环冗余校验(CRC)计算单元是根据自定义的生成多项式得到任意一个 32 位全字的 CRC 计算结果。在其他的应用中,CRC 技术主要应用于核实数据传输或者数据存储的正确性和完整性。CRC 计算单元可以在程序运行时计算出软件的标识,之后与在连接时生成的参考标识比较,然后存放在指定的存储器空间。
    7.2. 功能特点
    • 支持 16/32 位不同长度的多项式
    • 支持自定义的多项式
    • 默认是 32 位多项式:
    x 32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 +x8 + x7 + x5 + x4 + x2+ x +1
    • 一个 32 位初始值配置寄存器用于输入,一个 32 位结果寄存器用于输出结果
    7.3. 功能说明
    该模块用于计算 SRAM 中指定数据段的 CRC 校验值,软件配置计算初始值、校验多项式、起始地址、数据长度,启动 CRC 计算后等待硬件完成标志有效时读取 CRC_OUT 寄存器可获得 CRC 校验值。
  3. 电源管理(POWER MANAGEMENT)
    8.1. 电源
    芯片的工作电压为 2.5V~5.5V。本芯片采用 Cap-Less 设计,无需在内置 LDO 输出上外挂电容。内置 LDO 具有 2 挡位下拉电流使能 PMUCON0[18:17],同时也有低功耗参考电流寄存器
    PMUCON0[16:14]。
    8.1.1. 电压调节器
    复位后调节器总是使能的。在需要低功耗的场合,可以使能低功耗工作模式。
    8.2. 电源管理器
    8.2.1. 上电复位(POR) 和掉电复位(PDR)
    CIU32F011x3、CIU32F031x5 内部有一个完整的上电复位(POR)和掉电复位(PDR) 电路,当供电电压达到 2.2V 时系统能正常工作。当 VDD 低于指定的限位电压 VPOR(1.2V)/VPDR(1.1V)时,系统保持为复位状态,而无需外部复位电路。
    8.2.2. 可编程电压监测器(PVD)
    华大电子MCU CIU32F011x3、CIU32F031x5 内部集成一个外部供电 VCC 电压检测器,检测电压均阈值可选。当系统监测到 VCC 电压低于配置电压值时,可以选择触发系统复位或通过使能 PVD 中断进入中断子函数。这一特性可用于执行紧急关闭任务。检测信号可以选择经过毛刺滤波电路或直接检测,由 LVDCON 的 LVD_VCC_BPS_EN 来控制。
要使用 CIU32F031 芯片实现 I2C 通信的模拟,通常采用软件模拟的方式,因为该芯片可能没有额外的硬件 I2C 接口可供使用,或者用户希望灵活控制通信过程。以下是实现模拟 I2C 通信的基本方法和步骤: ### 1. 选择 GPIO 引脚模拟 SDA 和 SCL 信号 CIU32F031 提供了丰富的 GPIO 资源,可以选择两个 GPIO 引脚分别作为 I2C 的 SDA(数据线)和 SCL(时钟线)。这两个引脚需要支持开漏输出和上拉功能,以符合 I2C 总线协议的要求。 ### 2. 初始化 GPIO 引脚 将选定的 GPIO 配置为开漏输出模式,并启用内部上拉电阻,或者外部加上拉电阻,确保总线在空闲时保持高电平。 ### 3. 实现 I2C 协议的基本时序 根据 I2C 协议标准,模拟 I2C 需要实现以下基本操作函数: - **起始条件(START)**:SDA 从高变低,同时 SCL 为高电平。 - **停止条件(STOP)**:SDA 从低变高,同时 SCL 为高电平。 - **发送一个字节(Write Byte)**:逐位发送 8 位数据,高位在前。 - **接收一个字节(Read Byte)**:逐位读取 8 位数据,高位在前。 - **应答信号(ACK/NACK)**:接收方在第 9 个时钟周期拉低 SDA 表示应答(ACK),否则为非应答(NACK)。 ### 4. 控制延时以满足时序要求 由于是软件模拟,必须通过延时函数控制 SCL 的高低电平持续时间,以满足 I2C 的通信速率(如 100 kbps 或 400 kbps)。延时函数可以通过简单的循环实现。 ### 5. 示例代码 以下是一个基于 C 语言的简化模拟 I2C 驱动代码示例: ```c #include "ciu32f031.h" #define I2C_SCL_PIN GPIO_PIN_5 #define I2C_SDA_PIN GPIO_PIN_6 #define I2C_PORT GPIOA void I2C_Delay(void) { for (volatile int i = 0; i < 100; i++); } void I2C_Start(void) { I2C_SDA_HIGH(); I2C_SCL_HIGH(); I2C_Delay(); I2C_SDA_LOW(); I2C_Delay(); I2C_SCL_LOW(); I2C_Delay(); } void I2C_Stop(void) { I2C_SDA_LOW(); I2C_SCL_HIGH(); I2C_Delay(); I2C_SDA_HIGH(); I2C_Delay(); } void I2C_WriteByte(uint8_t byte) { for (uint8_t i = 0; i < 8; i++) { if (byte & 0x80) { I2C_SDA_HIGH(); } else { I2C_SDA_LOW(); } I2C_SCL_HIGH(); I2C_Delay(); I2C_SCL_LOW(); I2C_Delay(); byte <<= 1; } // 等待ACK I2C_SDA_HIGH(); I2C_SCL_HIGH(); I2C_Delay(); I2C_SCL_LOW(); } uint8_t I2C_ReadByte(void) { uint8_t byte = 0; I2C_SDA_HIGH(); for (uint8_t i = 0; i < 8; i++) { byte <<= 1; I2C_SCL_HIGH(); I2C_Delay(); if (I2C_SDA_READ()) { byte |= 0x01; } I2C_SCL_LOW(); I2C_Delay(); } // 发送NACK I2C_SDA_LOW(); I2C_SCL_HIGH(); I2C_Delay(); I2C_SCL_LOW(); return byte; } ``` ### 6. 调试与优化 - 使用逻辑分析仪或示波器检查 SDA 和 SCL 的波形是否符合 I2C 协议。 - 根据实际通信速率调整延时函数。 - 确保外设器件的地址和寄存器配置正确。 CIU32F031 的低功耗特性(运行功耗:50μA/MHz;休眠功耗:低至1μA)使其在电池供电设备中表现优异[^2]。因此,模拟 I2C 通信在智能家居、IoT 传感器等低功耗应用场景中具有较高的实用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值