第七章GPIO口与串行总线;提纲;GPIO概述
;GPIO共有7组,每组有8个32位寄存器,这些寄存器是:
1)数据寄存器(GPIOx_DR)。GPIOx_DR中的x可取1~7(以下同)。
当引脚配置为GPIO模式,且GDIR[n]=1时,为GPIO的输出模式,GPIO_DR的每一位保存着写到端口的“0”或者“1”。写入的数据可通过该寄存器读回。
2)方向寄存器(GPIOx_GDIR)。32位的方向寄存器。当IOMUXC工作于GPIO模式时,控制199个GPIO的引脚的输入/输出方向,“1”为输出模式,“0”为输入模式。
3)引脚状态寄存器(GPIOx_PSR)。引脚状态寄存器,存放输入状态信息。
4)中断控制寄存器1(GPIOx_ICR1)。
5)中断控制寄存器2(GPIOx_ICR2)。
6)边沿选择寄存器(GPIOx_EDGE_SEL)。
7)中断屏蔽寄存器(GPIOx_IMR)。
8)中断状态寄存器(GPIOx_ISR)。;GPIO框图
;GPIO特征
;提纲;IOMUX原理框图
;IOMUXC结构
;IOMUXC寄存器
;引脚功能图
;LED灯实验;LED灯是实验箱和开发板的标配,可用于实验或者显示调试信息。控制GPIO的端口,按照时序的要求,依次在各端口输出对应的“1”或者“0”。i.MX6Solo/6DL是恩智浦公司的ARM处理器,官方文档是i.MX6SDLRM.pdf。
GPIO6_IO07、GPIO6_IO015、GPIO6_IO08、GPIO6_IO10是i.MX6Solo/6DL的信号,NANDF_CLE、NANDF_CS2、NANDF_ALE、NANDF_CRB0是i.MX6Solo/6DL的Pad,在硬件电路设计和连接是关注Pad,在Pad模式选择时使用Pad对应的多路选择寄存器(有些Pad可能还会用到输入选择寄存器),信号相关的寄存器体现在对IOMUXC的控制。
这4个LED对应的信号位于GPIO6,需要使用GPIO6的方向寄存器GPIO6_GDIR和数据寄存器GPIO6_DR。设置GPIO6_GDIR对应的这四位为输出,然后按时间要求控制GPIO6_DR对应的位依次为“1”和“0”即可完成LED实验。;下面对引脚复用功能进行设置,5表示设置为GPIO模式。;然后设置GPIO6的数据寄存器和方向寄存器。GPIO引脚方向设置为输出,需要将GDIR寄存器中的对应位设置为1,4个LED灯对应的信号分别是GPIO6_IO07、GPIO6_IO15、GPIO6_IO08、GPIO6_IO10,所以寄存器需要设置第7、15、8、10位。
DR寄存器为输出的电平,0表示低电平,1表示高电平。LED灯为底电平点亮,初始设置LED灯灭,所以将对应位设置为高电平。;提纲;UART;RS232电平转换电路;UART方框图;UART引脚说明;UART特性;15.RX_DATA、TX_DATA电路中包含反相器,便于匹配RS-232/RS-485模式。
16.提供DCE通信的全部接口信号。
17.可屏蔽中断。
18.两个DMA请求(TxFIFODMA请求和RxFIFODMA请求)。
19.转义字符序列检测。
20.软件复位(SRST_B)。
21.两个独立的,32位FIFOs用于发送和接收。
22.外围时钟可以与模块时钟完全异步。该模块时钟决定波特率。这允许外围时钟上的频率伸缩(例如在DVFS模式),而保持模块时钟频率和波特率。
可见,UART功能齐全,使用方便。支持DTE/DCE接口,支持RS232/RS485,支持IrDA,内含FIFO,支持DMA和中断,支持波特率自动检测,最高5.0Mbit/s的通信速率。;简化的UART;brm_clk时钟是波特率16倍的这种设计,在早期的嵌入系统中就已使用。设计的好处是显而易见的。第一个好处是可以选择合适的采样点,能够想到,这个采样点尽量靠近这16个脉冲的中间,这样能够保证串口输入进来的数据有足够的数据建立时间;第二个好处是可以超采样,就是在数据一位输入的时间内,对输入数据做多次采样,然后通过表决器决定读取数据。以抵抗外界的干扰。现将每个位内16个brm_clk编号为1~16,在7、8、9三个脉冲的上升沿做三次采样,根据表决,决定从串口读取的数据是高电平还是低电平。;3.UART数据帧结构;UART数据帧的结构如图所示。对UART编程可实现选择数据是7位还是8位,一般是8位。UART数据帧始于“StartBit”,常常称之为开始位。是一个从高到低的下调沿,低电平维持的时间是一位数据的时间。这个下调沿是发送方发出,是一帧数据的开始点,接收方以此位帧接收的起点,安排接