前言:
本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。
引用:
正点原子IMX6U仓库 (GuangzhouXingyi) - Gitee.com
《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.5.2.pdf》
正点原子资料下载中心 — 正点原子资料下载中心 1.0.0 文档
正文:
本文是 “正点原子[第二期]Linux之ARM(MX6U)裸机篇--第12讲” 的读书笔记。第12讲介绍如何使用通过GPIO操作蜂鸣器(beep),通过GPIO控制蜂鸣器的方法和前几讲中通过GPIO控制LED灯的方式是相似的。
1. 查看电路原理图中蜂鸣器(Beep)使用的GPIO管脚
查看电路原理图中蜂鸣器(Beep)使用的GPIO管脚,我购买的是正点原子I.MX6ULL Mini开发板,所以参考《IMX6ULL_MINI_V2.2(Mini底板原理图).pdf》,看到正点原子I.MX6ULL Mini开发板蜂鸣器在底板上使用 “BEEP”引脚控制,BEEP 引脚连接到I.MX6ULL 芯片的的 “SNVS_TAMPER1” 。分析下电路原理图中 “BEEP”引脚如何通过高低电平控制下蜂鸣器的开启关闭:
- BEEP引脚接在 S8550 PNP 三极管的基极,当beep引脚输出低电平时 S8550 PNP 三极管导通蜂鸣器发出响声;当beep引脚输出高电平时 S8550 PNP 三极管关闭,蜂鸣器关闭发生。
- BEEP引脚接在I.MX6ULL 芯片的的 “SNVS_TAMPER1”的IO引脚,将“SNVS_TAMPER1”复用为GPIO模式,并控制GPIO输出高电平或者低电平来控制蜂鸣器是否发出响声。
查看《IMX6ULL参考手册.pdf》,“SNVS_TAMPER1” 引脚在I.MX6ULL芯片参考手册中寄存器 IOMUXC_SNVS_SW_MUX_CTL_PAD_SNVS_TAMPER1 定义的复用模式如下,当SNVS_TAMPER1 寄存器值 'MUX_MODE=0x5' 时,该IO复用为 GPIO5_IO01。
GPIO5_IO01 IO接口复用配置为GPIO模式,和GPIO5_IO01 IO接口的电气特性配置方式和在前面几节中分析过来的“通过汇编语言来配置 LED 灯驱动程序GPIO寄存器”的方法是相同的。分为以下几步:
- 复用 GPIO5_IO01 为 GPIO 模式
- 设置 GPIO5_IO01 接口电气特性
- 设置 GPIO 的 GPIO5->GDIR,和 GPIO5->DR 寄存器来控制输出高低电平