微控制器原理5
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#define PORTC_BASE_PTR
((PORT_MemMapPtr)0x4004B000u)
#define PORTD_BASE_PTR
((PORT_MemMapPtr)0x4004C000u)
#define PORTE_BASE_PTR
((PORT_MemMapPtr)0x4004D000u)
数字引脚模式下,每个引脚的中断模式可以独立配 置,在引脚控制寄存器IRQC字段可配置选择:中断禁止 (复位后默认);高电平、低电平、上升沿、下降沿、 沿跳变触发中断;上升沿、下降沿、沿跳变触发DMA请 求。支持低功耗模式下唤醒。
每个端口的中断状态标志寄存器(PORTx_ISFR), 对应32个引脚,相应位为1,表明配置的中断已经被检 测到,反之没有(读操作)。各位具有写1清0特性(写 操作),非自动结束中断方式下,清除该位表示中断处 理完成。
(9)DMA/中断触发方式可以电平触发或沿触发, 其中,沿触发可靠性高。(D16—D19(IRQC)位控 制)。DMA只能采用沿触发。
3 .全局引脚控制寄存器
1)每个端口的全局引脚控制寄存器有两个,分 别为PORTx_GPCLR、PORTx_GPCHR,为只写寄存器, 读出总为0。
2)每个寄存器的高16位被称为全局引脚写使能 字段(Global Pin Write Enable,GPWE),定义 对应引脚是否可批量配置(“1”可用)。低16位 被称为全局引脚写数据字段(Global Pin Write Data,GPWD),可以实现一次配置16个功能相同 的引脚,提高了编程效率。全局引脚控制寄存器 不能配置引脚控制寄存器的高16位。
/** Array initializer of PORT peripheral base pointers */
#define PORT_BASE_PTRS
{ PORTA_BASE_PTR,
PORTB_BASE_PTR, PORTC_BASE_PTR, PORTD_BASE_PTR,
PORTE_BASE_PTR }
3)中断状态标志寄存器 每个端口的有1个中断状态标志寄存器。
地址=4004_90A0+x*1000(x=A~E,对应0~4)。
在工程文件夹的芯片头文件\CPU\MKL25Z4.h中,定义 端口寄存器结构体,把端口模块的编程寄存器用一个
结构体类型(PORT_MemMap)封装起来。(P.76)
Typedef struct PORT_MemMap { uint32_t PCR[32]; //引脚控制寄存器(0~31),偏移: 0x0,间隔: 0x4 uint32_t GPCLR; //全局引脚控制寄存器(L),偏移:0x80 uint32_t GPCHR; //全局引脚控制寄存器(H),偏移:0x84 uint8_t RESERVED_0[24]; //保留(占位)(0~23) uint32_t ISFR; //中断状态标志寄存器,偏移:0xA0
Gpio.c中定义各端口基地址的常数数组(P.74)
const PORT_MemMapPtr PORT_ARR[]={PORTA_BASE_PTR,PORTB_BASE_PTR, PORTC_BASE_PTR,PORTD_BASE_PTR,PORTE_BASE_PTR};
KL25-Light(Simple)例之 main.c 中(P.69)
2.通用I/O(GPIO) 所谓通用I/O,也记为GPIO(General Purpose
I/O),即基本的输入/输出,有时也称并行I/O,或 普通I/O,它是I/O的最基本形式。MCU内部程序可以 对通用I/O的端口寄存器进行读写来实现开关量的输 入输出操作,且大多数通用I/O引脚可以通过编程来 设定其工作方式为输入或输出,称之为双向通用I/O。
12
1)引脚控制寄存器端口地址
每个端口有32个引脚控制寄存器PORTx_PCRn。 端口x的基地址=4004_9000+x*1000(x=A~E,对应 0~4)。端口x的每个引脚控制寄存器PORTx_PCRn 的地址为=4004_9000+x*1000+n*4(x=A~E,对应 0~4,n=0~31)。例如PORTA_PCR1的地址为: 4004_9000+0*1000+1*4=4004_9004。
例如:设置PORTB19引脚为GPIO引脚
使相应引脚控制寄存器的10-8位(MUX字段)为 0b001,其他位使用默认0:
*portB_PCR_19=0x00000100;
(8)W1C是指对某位写1而使得该位清0,俗称写1清 0。用于清除中断标志(D24(ISF)位)。是通常中 断结束的方式,特别对于电平触发的中断。此外, 还有自动结束中断方式。
0.4V、电流0--2.0mA ;逻辑“1”为电压2.4V-5.0V、电流0--400uA。
9
端口控制模块与GPIO模块的编程结构
1 端口控制模块
KL25的大部分引脚具有复用功能(可编程的引脚 定义),可以通过端口控制模块(Port control and interrupts,PORT)提供的寄存器编程指定其为某 一具体功能。PORT模块内含3类寄存器,分别是:引 脚控制寄存器(Pin Control Register),全局引 脚控制寄存器(Global Pin Control Register)、 中断状态标志寄存器(Interrupt Status Flag Register)。
在嵌入式系统中,接口种类繁多,有显而易见 的人机交互接口,如操纵杆、键盘、显示器;也有 无人介入的接口,如网络接口、机器设备接口。
2
MCU
I/O接口
并行口 GPIO
串行口 UART
LED MODEM
计算机两部件之间的界面称之为接口。 接口的主要功能是: (1)数据缓冲及输入、输出 (2)寻址功能 (3)命令译码 (4)同步、联络和控制功能
24
3)KL25芯片每个端口有32个引脚控制寄存器, 分为两组:低引脚控制寄存器组(15~0)和高引脚 控制寄存器组(31~16),全局引脚控制寄存器 PORTx_GPCLR配置低引脚控制寄存器组(15~0),而 全局引脚控制寄存器PORTx_GPCHR配置高引脚控制寄 存器组(31~16)。
4.中断状态标志寄存器(PORTx_ISFR)
构件解释:
MKL25Z4.h中给出A~E端口的基地址
/* PORT - Peripheral instance base addresses */
#define PORTA_BASE_PTR
((PORT_MemMapPtr)0x40049000u)
#define PORTB_BASE_PTR
((PORT_MemMapPtr)0x4004A000u)
通用I/O接口基本概念及连接方法
1. I/O接口的概念
I/O接口,即输入输出接口,是微控制器同外界 进行交互的重要通道,实现MCU与外部设备的数据交 换。I/O接口实质是把微处理器同外围设备(简称外 设)连接起来实现数据传送的控制电路,又称为“ 外设接口”或“外设接口电路”。各种I/O卡都是 I/O接口。如“显卡”、“声卡”、打印卡“等。
给出不优化的32位指针变量portB_ptr:
volatile uint_32 *portB_ptr = (uint_32*)0x4004A000u;
PORTB19引脚控制寄存器地址=基地址+偏移量:
volatile uint_32 *portB_PCR_19 = portB_ptr + 19;
这里是19,而不是19*4,由于定义பைடு நூலகம்32位指针, portB_ptr加19代表了portB_ptr地址加上19*4。
11
寄存器映像地址分析 KL25芯片有5个端口A~E。每个端口有32个引脚 控制寄存器PORTx_PCRn(其中x=A~E,n=0~31), 2个全局引脚控制寄存器(PORTx_GPCLR、 PORTx_GPCHR)、1个中断状态标志寄存器 (PORTx_ISFR)。以下地址分析计算均为16进制, 略去十六进制前缀“0x”不写。
(5)转换速率(Slew rate)是指电压在高低电平间 转换的时间间隔,一般用ns单位度量。(D2(SRE) 位控制)
(6)数字输入/输出(Digital input/output)是指 芯片引脚只能输入/输出高电平(逻辑1)和低电平 (逻辑0)两个电压值。
(7)引脚复用槽(Pin muxing slot)是指信号复 用装置与引脚之间的接口,引脚通过连接不同的信 号复用槽可以配置成不同的功能。多功能引脚通过 MUX进行选择(D8—D10)。
(3)无源滤波器(Passive filter)是由电容器、 电抗器和电阻器适当组合而成,并兼有无功补偿 和调压功能的滤波器。(D4(PEE)位控制)
20
(4)引脚驱动能力(Drive Strength)是指引脚输 出电流的驱动能力,一般用mA单位度量。又习惯称为 扇出系数,以驱动TTL门电路个数为单位。(D6(DSE) 位控制)
3.上拉下拉电阻与输入引脚的基本接法 输入引脚有三种不同的连接方式:带上拉电阻
的连接、带下拉电阻的连接和“悬空”连接。 必须 与TTL电平兼容 (低电平0.0V-0.8V,高电平 2.05.0V)。
若MCU的某个引脚通过一个电阻接到电源(Vcc ),这个电阻被称为“上拉电阻”。与之相对应, 若MCU的某个引脚通过一个电阻接到地(GND)上, 则相应的电阻被称为“下拉电阻”。悬空的芯片引 脚被上拉电阻或下拉电阻初始化为高电平或低电平 。
❖输入/输出
✓站在处理器或主机立场上而言的输入/输出
✓处理器访问(存取)接口上的特定的一组寄存器
I/O端口的定义
I/O接口与外设之间传送三种信息——数据信息、控 制信息和状态信息,这三种信息实际上是CPU通过 接口同外设之间相互传送的信息,因此,在接口中 必须存放并传送这三种信息的寄存器。系统给这些 寄存器分配专门的存取地址,这样的地址称为I/O端 口地址。
} volatile *PORT_MemMapPtr;
同时定义了不优化的PORT模块寄存器结构体指针 (PORT_MemMapPtr),这样,只要给出端口基地址, 就可以使用该结构体的成员变量,确定各寄存器的端 口地址。
2. 引脚控制寄存器(PORTx_PCRn)
每个端口的每个引脚均有一个对应的引脚控 制寄存器,可以配置引脚中断或DMA传输请求,可 以配置引脚为GPIO功能或其他功能,可以配置是 否启用上拉或下拉,可以配置选择输出引脚的驱 动强度,可以配置选择输入引脚是否使用内部滤 波等。
GPIO模块
1.基本输入/输出电路 •输入设备是一组三态缓冲器 拨动开关(toggle switch)是数据源,74LS244---三 态输出的8组缓冲器和总线驱动器
基本输入接口电路
•输出设备是一组数据锁存器
一组发光二极管表示输出数据,当一个Q输出低电平 (“0”)时,对应的发光二极管导通,LED亮。 74LS374---三态输出的8D上升沿触发器将8个输入锁 存到输出,当OE=0,G为高电平,输出Q=输入Q; 当 OE=0,G由高到低,输出Q=Q0(原状态,锁定); OE=1,Q为高阻抗状态。
18
其中“X”表示复位后状态不确定。
相关基础术语知识:
(1)模拟引脚指不能够配置成GPIO的引脚叫做模拟 引脚(Analog pin),如RESET、EXTAL及XTAL等 引脚。(见P.56 表3-7)
(2)数字引脚是指能够被配置成GPIO的引脚叫做数 字引脚(Digital pin)。 (见P.56 表3-7)
2)全局引脚控制寄存器端口地址 每个端口有2个全局引脚控制寄存器。
全局引脚控制寄存器(低)PORTx_GPCLR, 地址=4004_9080+x*1000(x=A~E,对应0~4); 全局引脚控制寄存器(高)PORTx_GPCHR, 地址=4004_9084+x*1000(x=A~E,对应0~4)。
4.输出引脚的基本接法 作为通用输出引脚,MCU内部程序向该引脚输 出高电平或低电平来驱动器件工作,即开关量输 出。如图所示。其中O1引脚是发光二极管LED的驱 动引脚,当O1引脚输出高电平时,LED不亮;当O1 引脚输出低电平时,LED点亮。O2引脚接蜂鸣器驱 动电路,当O2脚输出高电平时,蜂鸣器响;O2脚 输出低电平时,蜂鸣器不响。其中,R1称为限流 电阻,R2称为基极电阻。 标准TTL兼容输出:逻辑“0”为 电压0V--