一、前言
eMIOS = 一套超级强大的 16bit 通用定时器硬件阵列,支持几乎所有定时 / 计数 / PWM / 捕获场景。
二、eMIOS 基本信息
- MPC5604B/C 有 2 组 eMIOS:eMIOS_0 + eMIOS_1
- 总计 56 个独立通道(16bit 计数器)
- 全部通道可独立配置
- 支持死区、互补、中心对齐、边沿对齐
- 可触发 ADC(CTU 联动)
- 支持输入捕获、输出比较、PWM、单脉冲、计数器等模式。
三、eMIOS 最核心 4 大工作模式
1. GPIO 模式
通用 IO,直接高低电平。
2. 输入捕获 IC(Input Capture)
测:
- 上升沿 / 下降沿
- 脉冲频率
- 高 / 低电平时间
- 占空比车轮转速、霍尔、按键、频率采集必备。
3. 输出比较 OC(Output Compare)
计数器等于比较值 → 翻转 / 置 0 / 置 1 / 中断。用于:
- 定时输出
- 方波生成
- 定时任务
4. PWM 模式(最强!)
支持:
- 边沿对齐 PWM
- 中心对齐 PWM
- 互补输出
- 死区插入
- 16bit 精度
四、eMIOS 通道结构(每个通道都一样)
每个通道包含:
- 16bit 计数器
- 周期寄存器(周期)
- 占空比寄存器(比较值)
- 输入滤波
- 输出控制
- 中断 / 触发逻辑
五、时钟来源
eMIOS 时钟来自 系统时钟 SYSCLK 通常 = 64MHz 所以分辨率 = 15.2ns精度非常高。
六、最常用通道引脚
eMIOS 通道几乎都映射在 PA/PB/PC/PD 等引脚:
- PA[0] ~ PA[11]
- PB[10] ~ PB[15]
- PD [12] ~ PD [15]等......任何 PWM 都可以从这些引脚输出。
七、典型应用场景
1. 车灯呼吸灯
中心对齐 PWM + 渐变占空比。
2. 风扇 / 水泵调速
边沿对齐 PWM。
3. 电机控制
互补 PWM + 死区。
4. 转速 / 频率测量
输入捕获测脉冲。
5. 定时触发 ADC
eMIOS → CTU → ADC 自动采样。
6. 定时中断
八、关键寄存器(驱动必用)
- MIOSCR:全局控制
- CHCTL:通道模式控制
- CADR:比较值(占空比)
- CCR:周期寄存器
- CDR:捕获值
- MISSR:状态标志
- MISIER:中断使能
九、总结
- eMIOS 是 16bit 高精度通用定时器阵列。
- 共 56 个通道,独立配置。
- 支持 IC/OC/PWM/GPIO 四大模式。
- PWM 支持边沿对齐 + 中心对齐 + 互补 + 死区。
- 输入捕获可测频率、占空比、边沿时间。
- 时钟 = SYSCLK(通常 64MHz)。
- 可硬件触发 ADC(CTU)。
- 所有引脚与 GPIO 复用,用 SIUL_PCR 配置。
- 使用前必须开 MC_ME.PCTL 时钟。
- 车身电子最常用外设,没有之一。