一 IOMUX概述
MSPM0G3507中IOMUX外设主要功能:数字功能选择、反相控制、驱动强度( 如果
适用) 、上拉或下拉电阻( 如果适用), 以及唤醒配置( 如果适用于某些 IO, 用于从SHUTDOWN关断模式唤醒) 。
IOMUX 可管理数字 IO 的配置。 IOMUX 配置的主要功能包括:
• 选择将哪个外设复用到每个数字 IO 引脚( 例如, GPIO 或 UART 外设)(是的,这里GPIO也是外设)
• 数字输入路径配置
– 迟滞控制
– 输入路径启用/禁用
– 输入逻辑反转控制
• 数字输出路径配置
– 驱动强度控制
– 输出连接启用/禁用
– 输出逻辑反转( 与输入逻辑反转共享控制)
– 逻辑高电平至高阻态输出转换( 用于开漏型接口)
– 禁用连接到 IO 的外设时保持“最后状态”
• 唤醒配置( 用于从 SHUTDOWN 模式唤醒)
– 从 PINCM 寄存器的唤醒状态位读取唤醒源
– 唤醒比较电平
– 释放 SHDNIOREL
– 唤醒启用/禁用
• 上拉和下拉电阻控制
数字IO结构类型
对应sysconfig的这里
ADC、DAC模拟外设与IOMUX没有任何关系,当某个引脚开启ADC或者DAC功能时,通常其IOMUX设置为高组态(默认状态)
二 IO功能框图
-5V 容限开漏数字 IO 提供迟滞和逻辑电平控制
-上拉电阻、下拉电阻永远需要在IOMUX中配置
- SWD引脚默认在SWD模式
TTL 模式( 左) 和 CMOS 模式( 右) 之间的输入逻辑电平差异见下图
迟滞功能即图中右图↑↓箭头区域
三 外设功能分配过程
3.1 外设初始化顺序
在 BOOTRST 之后为 IO 设置初始的 IOMUX 配置时, 应用软件可以通过向 PF 字段写入相应的外设选择值, 同时设置与目标引脚对应的 PINCMx 寄存器中的 PC 和 INENA 位, 从支持的选项中选择要连接到 IO 的数字外设。
必须先设置给定外设的 IOMUX 配置, 然后再初始化连接到 IO 的外设以运行。
即:先配置IOMUX,再配置外设功能 如:gpio、spi、i2c、uart、timer的输出通道、adc、dac、i2s、can等等
3.2 运行中修改外设功能
为数字 IO 配置外设功能后, 要在运行时更改该 IO 的外设功能选择, 应按以下过程操作:
- 禁用当前连接的外设功能
- 将相应 PINCMx 寄存器中的 PC 位( 输出连接位) 和 INENA( 输入连接位) 清零
- 将 0x0 写入 PINCMx 中的 PF 字段以清除数据路径中的逻辑
- 通过将外设功能 ID 写入 PF 寄存器来选择新的外设功能
- 设置 PINCMx 寄存器中的 PC 和 INENA 位以连接新选择的外设
- 启用新选择的外设以运行
3.3 输出高组态的使用
运行过程中高电平切换高组态,直接修改对应的“Z1位”即可
3.4 shutdown唤醒配置和唤醒后“复位操作”
配置支持唤醒的 IO 以便从 SHUTDOWN 模式唤醒, 请执行以下操作:
- 设置 INENA 位以使输入状态从 IO 传播到唤醒逻辑。
- 通过设置或清除目标引脚对应的 PINCMx 寄存器中的 WCOMP 位来选择用于唤醒的比较电平。
- 通过设置目标引脚对应的 PINCMx 寄存器中的 WUEN 位来启用唤醒。
- 通过 SYSCTL 中的相应命令进入 SHUTDOWN 模式
3.5 shutdown唤醒后的恢复过程
应用软件必须按照以下过程来恢复从 SHUTDOWN 模式退出时的 IO 状态:
- 必要时按照如下方式检查哪个 IO 触发了从 SHUTDOWN 模式唤醒:
a. 重新配置与要测试唤醒状态的 IO 对应的 PINCMx 寄存器, 并设置外设连接 (PC) 位( PC 位用于门控WAKESTATE 指示) 。
b. 测试与待测试 IO 对应的 PINCMx 寄存器中的 WAKESTATE 位, 确定该特定 IO 是否根据先前配置的WCOMP 和 WUEN 配置接收到了 WAKE 状态。 - 将任何其余的 IOMUX PINCM 寄存器重新配置为正确的状态。
- 重新配置通过 IOMUX 连接到引脚的外设并启用它们。
- 释放 SYSCTL 中的 SHUTDOWN IO 锁定。
- 清除 PINCMx 寄存器中的 WUEN 位以复位 WAKESTATE 状态。