全志T113 GPIO驱动控制LED与蜂鸣器中断响应设计 - 第3节
3.1 数据手册整体结构
全志T113的数据手册(User Manual)是驱动开发的核心参考文档,其结构遵循SoC芯片手册的通用组织方式。掌握手册的章节布局,能帮助开发者快速定位所需信息。
开发提示:建议将数据手册PDF的目录页打印或固定在屏幕侧边,开发过程中频繁跳转查阅GPIO、GIC、系统控制等章节。
3.1.1 手册章节总览
| 章节编号 | 章节名称 | 核心内容 |
|---|---|---|
| 第1章 | Introduction | 芯片特性概述、功能框图、产品型号命名规则 |
| 第2章 | System Control | 系统启动、时钟复位、电源管理、寄存器基地址映射 |
| 第3章 | GPIO & Port Controller | GPIO功能复用、数据/方向/配置寄存器、中断控制 |
| 第4章 | Interrupt Controller (GIC) | GICv2架构、中断ID映射、分发器与CPU接口寄存器 |
| 第5章 | Timer & Watchdog | 通用定时器、看门狗定时器、PWM定时器 |
| 第6章 | Communication Interfaces | UART、SPI、I2C、TWI、EMAC等外设控制器 |
| 第7章 | Audio & Video | 音频编解码、视频输入输出、显示引擎 |
| 第8章 | Electrical Characteristics | 直流/交流参数、时序图、IO电平标准、功耗数据 |
| 附录 | Register Map & Revision History | 完整寄存器地址汇总表、芯片版本修订记录 |
3.1.2 手册阅读路径
针对GPIO驱动与中断响应开发,建议按以下路径精读手册:
- 第2章 System Control → 确认GPIO控制器基地址(通常为0x02000000区域)
- 第3章 GPIO & Port Controller → 掌握引脚功能配置、数据寄存器、中断触发方式
- 第4章 Interrupt Controller (GIC) → 理解中断号映射、使能/屏蔽/优先级配置
- 第8章 Electrical Characteristics → 确认IO驱动能力、上拉/下拉电阻、电平转换时序
关键寄存器基地址速查:GPIO控制器基地址 = 0x02000000,GIC分发器基地址 = 0x01C81000,GIC CPU接口基地址 = 0x01C82000。
3.2 GPIO控制器寄存器描述
T113的GPIO控制器管理最多128个通用IO引脚,每个引脚支持最多8种功能复用(Function 0~7)。寄存器按端口分组,每个端口(如PA、PB、PC…)拥有独立的配置空间。
3.2.1 GPIO寄存器分类
| 寄存器名称 | 偏移地址 | 宽度 | 功能描述 |
|---|---|---|---|
| GPIO_CFG0~CFG3 | 0x00 ~ 0x0C | 32位 | 引脚功能配置,每4位控制一个引脚(8种功能) |
| GPIO_DAT | 0x10 | 32位 | 数据寄存器,读为引脚电平,写为输出电平 |
| GPIO_DRV0~DRV1 | 0x14 ~ 0x18 | 32位 | 驱动能力控制,每2位控制一个引脚(0~3级) |
| GPIO_PUL0~PUL1 | 0x1C ~ 0x20 | 32位 | 上拉/下拉电阻配置,每2位控制一个引脚 |
| GPIO_INT_CFG0~CFG3 | 0x24 ~ 0x30 | 32位 | 中断触发配置,每4位控制一个引脚(电平/边沿) |
| GPIO_INT_CTL | 0x34 | 32位 | 中断控制寄存器(全局使能/屏蔽) |
| GPIO_INT_STA | 0x38 | 32位 | 中断状态寄存器(读挂起中断,写清除) |
| GPIO_INT_DEB | 0x3C | 32位 | 中断去抖控制寄存器 |
3.2.2 关键寄存器位域详解
GPIO_CFG0 (偏移0x00):每4位对应一个引脚,共8个引脚。编码值如下:
- 0000:普通输入/输出(GPIO模式)
- 0001~0111:功能复用1~7(如UART、SPI、I2C等外设功能)
GPIO_INT_CFG0 (偏移0x24):每4位配置中断触发方式:
- 0000:中断禁用
- 0001:上升沿触发
- 0010:下降沿触发
- 0011:双沿触发
- 0100:高电平触发
- 0101:低电平触发
寄存器操作注意事项:修改GPIO_CFG寄存器时,必须使用读-修改-写(Read-Modify-Write)方式,避免影响其他引脚配置。中断状态寄存器GPIO_INT_STA写1清除对应中断位,写0无效。
3.3 中断控制器(GIC)寄存器描述
T113采用ARM Cortex-A7内核,集成GICv2中断控制器。GIC负责接收所有外设中断源,进行优先级仲裁后分发到CPU核。GIC寄存器空间分为两部分:分发器(Distributor)和CPU接口(CPU Interface)。
3.3.1 GIC寄存器分区
| 寄存器区域 | 基地址 | 大小 | 功能 |
|---|---|---|---|
| GIC Distributor | 0x01C81000 | 4KB | 中断使能、屏蔽、优先级、目标CPU、中断属性配置 |
| GIC CPU Interface | 0x01C82000 | 4KB | 中断应答、结束、优先级掩码、抢占控制 |
3.3.2 分发器关键寄存器
| 寄存器名称 | 偏移地址 | 功能描述 |
|---|---|---|
| GICD_CTLR | 0x000 | 分发器控制寄存器(全局使能) |
| GICD_ISENABLER0~7 | 0x100 ~ 0x11C | 中断使能寄存器组,每32位对应32个中断ID |
| GICD_ICENABLER0~7 | 0x180 ~ 0x19C | 中断屏蔽寄存器组 |
| GICD_IPRIORITYR0~63 | 0x400 ~ 0x4FC | 中断优先级寄存器,每8位配置一个中断优先级(0~255) |
| GICD_ITARGETSR0~63 | 0x800 ~ 0x8FC | 中断目标CPU寄存器,每8位指定中断发往哪个CPU核 |
| GICD_ICFGR0~15 | 0xC00 ~ 0xC3C | 中断触发配置(电平/边沿) |
3.3.3 CPU接口关键寄存器
| 寄存器名称 | 偏移地址 | 功能描述 |
|---|---|---|
| GICC_CTLR | 0x000 | CPU接口控制寄存器(使能中断信号) |
| GICC_PMR | 0x004 | 优先级掩码寄存器,只响应优先级高于此值的中断 |
| GICC_IAR | 0x00C | 中断应答寄存器,读取获取当前最高优先级中断ID |
| GICC_EOIR | 0x010 | 中断结束寄存器,写入中断ID通知GIC处理完成 |
中断响应流程(驱动视角):① 读取GICC_IAR获取中断ID → ② 根据ID跳转到对应ISR → ③ 处理完成后写GICC_EOIR。GPIO中断ID范围通常为32~63(SPI类型),具体值需查阅芯片中断映射表。
3.4 电气特性
电气特性章节(第8章)提供了驱动开发必须的硬件参数,包括IO电平标准、驱动电流、上下拉电阻值、时序要求等。这些参数直接影响GPIO配置和中断去抖设计。
3.4.1 IO电平标准
| 参数 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|
| VIH(输入高电平) | 2.0 | — | 3.6 | V |
| VIL(输入低电平) | −0.3 | — | 0.8 | V |
| VOH(输出高电平,IOH=−4mA) | 2.4 | — | 3.3 | V |
| VOL(输出低电平,IOL=4mA) | 0 | — | 0.4 | V |
| IOH/IOL(驱动电流,DRV=0级) | — | 4 | — | mA |
| IOH/IOL(驱动电流,DRV=3级) | — | 16 | — | mA |
3.4.2 上拉/下拉电阻
| GPIO_PUL配置 | 电阻类型 | 典型阻值 |
|---|---|---|
| 00 | 无上拉/下拉 | 高阻 |
| 01 | 上拉 | 50kΩ |
| 10 | 下拉 | 50kΩ |
| 11 | 保留 | — |
3.4.3 中断去抖时间
GPIO_INT_DEB寄存器可配置去抖时钟分频系数,去抖时间计算公式:
去抖时间 = (DEB_CLK_DIV + 1) × 2 × T_clk
其中 T_clk = 1 / 24MHz(APB时钟典型值)
DEB_CLK_DIV 取值范围:0~255
典型配置示例:
- DEB_CLK_DIV = 0 → 去抖时间 ≈ 83ns(适用于高速信号)
- DEB_CLK_DIV = 249 → 去抖时间 ≈ 20.8μs(适用于机械按键)
- DEB_CLK_DIV = 2499(实际最大255)→ 最大去抖时间 ≈ 21.3μs
电气特性设计约束:驱动LED时,建议将GPIO_DRV配置为2级或3级(8~16mA),确保LED亮度充足。驱动蜂鸣器(有源)时,若蜂鸣器工作电流超过GPIO驱动能力,必须使用三极管或MOS管扩流,不可直接驱动。
3.5 本章小结
本章系统梳理了T113数据手册中与GPIO驱动和中断响应直接相关的核心章节:
- 手册结构:掌握8个主要章节的定位,建立快速查阅能力
- GPIO寄存器:理解CFG/DAT/DRV/PUL/INT_CFG/INT_STA等寄存器的位域含义
- GIC寄存器:区分分发器与CPU接口,掌握IAR/EOIR中断应答与结束流程
- 电气特性:明确IO电平、驱动能力、上下拉电阻、去抖时间等关键参数