RK3288 的 GPIO 操作方法
来源:百问网
作者:韦东山
本文字数:938 , 阅读时长:3分钟
- GPIO: General-purpose input/output , 通用的输入输出口
- CRU: Clock & Reset Unit (时钟和复位单元)
- PMU: Power Managerment Unit (电源管理单元)
- GRF: General Register Files (通用寄存器文件)
文章插图
有 9 组 GPIO(GPIO0~8) , 每组分为最多 4 个小组 port A/B/C/D , 每小组最多 8 个 GPIO 。 理论上每组GPIO 的引脚有 32 个 , 但是实际上并没有那么多 。 比如 GPIO0 只有 GPIO0_A0~A7、GPIO0_B0~B7、GPIO0_C0~C2 这些引脚 。
GPIO 的控制涉及 4 大模块:CRU、PMU、GRF、GPIO 模块本身 。
① CRU 用于设置是否向 GPIO 模块提供时钟:
CRU 的内部结构如下图所示:
文章插图
可以设置寄存器使能 GPIOx 的时钟:
a. CRU_CLKGATE17_CON 用于控制 GPIO0;
b. CRU_CLKGATE14_CON 用于控制 GPIO1~8
② PMU 用于控制电源:
电源管理单元里 , 有多个电源域(power domain , 简称为 PM) , 在一个域下有多个设备 。
比如 PD_ALIVE , 它下面有这些设备:CRU、GRF、GPIO 1~8、TIMER 或 WDT 。
比如 PD_PMU , 它下面有这些设备:PMU、SRAM(4K)、Secure GRF、GPIO0 。
可见 , GPIO0、GPIO1~8 分属不同的 PM 。
GPIO0、GPIO1~8 都是常供电的 , 它们是否工作取决于其时钟是否使能 。
【RK3288 的 GPIO 操作方法】③ 设置引脚的模式(Mode、功能):
GPIO0 比较特殊 , 为了让其引脚用于 GPIO 功能 , 要设置 PMU 里的相关寄存器 。
GPIO1~8 类似 , 为了让其引脚用于 GPIO 功能 , 要设置 GRF 里的相关寄存器 。
④ GPIO 模块内部:
方向:引脚设置为 GPIO 时 , 可以继续设置寄存器 GPIO_SWPORTA_DDR 确定它是输出引脚 , 还是输入引脚 。
数值:对于输出引脚 , 可以设置寄存器 GPIO_SWPORTA_DR 让它输出高、低电平;
对于输入引脚 , 可以读取寄存器 GPIO_EXT_PORTA 得到引脚的当前电平 。
RK3288 的 GPIO 相关寄存器
文章插图
「新品首发」STM32MP157开发板火爆预售!首批仅300套
点击“了解更多”阅读更多相关章节
- 智能手机市场|华为再拿第一!27%的份额领跑全行业,苹果8%排在第四名!
- 会员|美容院使用会员管理软件给顾客更好的消费体验!
- 行业|现在行业内客服托管费用是怎么算的
- 人民币|天猫国际新增“服务大类”,知舟集团提醒入驻这些类目的要注意
- 国外|坐拥77件专利,打破国外的垄断,造出中国最先进的家电芯片
- 技术|做“视频”绿厂是专业的,这项技术获人民日报评论点赞
- 面临|“熟悉的陌生人”不该被边缘化
- 中国|浅谈5G移动通信技术的前世和今生
- 页面|如何简单、快速制作流程图?上班族的画图技巧get
- 桌面|日常使用的软件及网站分享 篇一:几个动态壁纸软件和静态壁纸网站:助你美化你的桌面