第5章通用输入输出学习要点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图 5-2 创建工程对话框 3.选择“File”菜单,点击“New”项,点击弹出菜单中的“Source File”。 4.在源文件中,键入如下的内容: GPAMUX .set 0x000070C0 GPADIR .set 0x000070C1 GPADAT .set 0x000070E0 GPASET .set 0x000070E1 GPACLEAR .set 0x000070E2 GPATOGGLE .set 0x000070E3
GPIO G 功能选择控制寄存器 GPIO G 方向控制寄存器 保留
如果多功能复用管脚配置为数字 I/O 模式,芯片将用数据寄存器来对相应的独立的 I/O 管脚进行操作。GPxSET 寄存器将各个 I/O 信号置高;GPxCLEAR 寄存器将各个 I/O 信号清 除置低; GPxTOGGLE 寄存器反转各个 I/O 信号; GPxDAT 寄存器读写各个 I/O 信号。 表 5-2 给出了 GPIO 数据寄存器的地址和描述。
如果相应的管脚配置为输出,写 1 后相应的管脚将会被拉低,写 0 时没有影响。 如果 GPxCLEAR.bit = 0,没有影响; 如果 GPxCLEAR.bit = 1,且管脚设置为输出,将相应的管脚置为低电平。 6. GPxTOGGLE 寄存器 每个 I/O 口都对应一个反转寄存器,该寄存器是只写寄存器,任何读操作都将返回 0。 如果相应的管脚配置为输出,写 1 后相应的管脚信号将会被取反,写 0 时没有影响。 如果 GPxTOGGLE.bit = 0,没有影响; 如果 GPxTOGGLE.bit = 1,且管脚设置为输出,将相应的管脚取反。 7. GPxQUAL 寄存器 每个 I/O 口都对应一个输入量化寄存器,该寄存器可以读/写,可以通过 GPxQUAL 寄 存器来改善输入信号,滤除噪声。比如,在对数字 I/O 管脚上的输入电平采样时,设置 GPxQUAL 寄存器配置采样窗口是 5 个采样周期宽,假如输入的是高电平,只有连续采样 5 次并且这 5 次都是高电平时才会认为输入高有效, GPxDAT 寄存器相应位才会改变。 GPxQUAL 寄存器各位的功能如表 5-3 所示。
1 1 1 1 1 1 1 1 1 1 4
GPIOE 清除寄存器 GPIOE 反转寄存器 GPIOF 数据寄存器 GPIOF 置位寄存器 GPIOF 清除寄存器 GPIOF 反转寄存器 GPIOG 数据寄存器 GPIOG 置位寄存器 GPIOG 清除寄存器 GPIOG 反转寄存器 保留
5.1.3 GPIO寄存器的配置
VECT:
.sect ".reset" .long INIT .text
; Reset vector
INIT: SETC MOV MOV NOP NOP NOP NOP NOP MOV MOV NOP NOP NOP NOP NOP MOV MOV NOP NOP NOP NOP NOP MOV MOV NOP NOP NOP NOP NOP END: ESTOP0 SB END,UNC 5.选择“File”菜单,点击“Save As…”项。 6. 切换到 C:\ti\myprojects\GPIO\目录下, 在 “保存类型 (T) : ” 下拉框中选择 “Assembly Source Files(*.asm)”,键入“GPIO.asm”作为文件名,点击“保存”。 7.选择“Project”菜单,点击“Add Files to Project…”项,在对话框的文件类型 下拉框中选择“Asm Source Files(*.a*,*.s*)”,再双击选择“GPIO.asm”文件。 OBJMODE AR6, #GPAMUX *XAR6, #0x0000
表 5-1 GPIO 多路复用寄存器 名 称 GPAMUX GPADIR GPAQUAL Reserved 地 址 0x0000 70C0 0x0000 70C1 0x0000 70C2 0x0000 70C3 大小(16 位) 1 1 1 1 描 述 GPIO A 功能选择控制寄存器 GPIO A 方向控制寄存器 GPIO A 输入量化寄存器 保留
5.1.2 GPIO的相关寄存器
上面介绍到通过 GPxMUX 寄存器来配置选择具体的引脚功能 (作为片内外设或数字 I/O 管脚) 。当管脚设置到数字 I/O 功能时,可以通过方向控制寄存器(GPxDIR)控制 I/O 方向, 并可以通过量化寄存器(GPxQUAL)量化输入信号,消除外部噪声信号。GPIO 的多路复 用寄存器地址和描述如表 5-1 所示。
5.2 GPIO接口的仿真
设置 CCS 为软件仿真(Simulator)模式,编程对 GPIO 的相关功能进行仿真。这里不 需要硬件仿真调试器及 C2000 开发板, 直接就可以对 GPIO 的功能进行虚拟操作, 通过相关 的寄存器观察可以执行效果,为学习 GPIO 的知识提供方便、高效的一种手段。具体步骤如 下所示: 1.双击桌面的 Code Composer Studio 快捷图标,进入 CCS IDE 环境,如图 5-1。
图 5-1 Code Composer Studio IDE 图形窗口 2.点击“Project”菜单,选择“New…”项,弹出“Project Creation”对话框,如 图 5-2 所示设置各项内容。这样,在 Code Composer Studio 程序中新创建了一个名为 GPIO.pjt 的工程文件。
表 5-2 GPIO 数据寄存器 名 称 GPADAT GPASET GPACLEAR GPATOGGLE GPBDAT GPBSET GPBCLEAR GPBTOGGLE Reserved GPDDAT GPDSET GPDCLEAR GPDTOGGLE GPEDAT GPESET 地 址 0x0000 70E0 0x0000 70E1 0x0000 70E2 0x0000 70E3 0x0000 70E4 0x0000 70E5 0x0000 70E6 0x0000 70E7 0x0000 70E8~ 0x0000 70EB 0x0000 70EC 0x0000 70ED 0x0000 70EE 0x0000 70EF 0x0000 70F0 0x0000 70F1 1 1 1 1 1 1 GPIOD 数据寄存器 GPIOD 置位寄存器 GPIOD 清除寄存器 GPIOD 反转寄存器 GPIOE 数据寄存器 GPIOE 置位寄存器 大小(16 位) 1 1 1 1 1 1 1 1 4 描 述 GPIOA 数据寄存器 GPIOA 置位寄存器 GPIOA 清除寄存器 GPIOA 反转寄存器 GPIOB 数据寄存器 GPIOB 置位寄存器 GPIOB 清除寄存器 GPIOB 反转寄存器 保留
GPBMUX GPBDIR GPBQUAL Reserved GPDMUX GPDDIR GPDQUAL Reserved GPEMபைடு நூலகம்X GPEDIR GPEQUAL Reserved GPFMUX GPFDIR Reserved GPGMUX GPGDIR Reserved
0x0000 70C4 0x0000 70C5 0x0000 70C6 0x0000 70C7~ 0x0000 70CB 0x0000 70CC 0x0000 70CD 0x0000 70CE 0x0000 70CF 0x0000 70D0 0x0000 70D1 0x0000 70D2 0x0000 70D3 0x0000 70D4 0x0000 70D5 0x0000 70D6~ 0x0000 70D7 0x0000 70D8 0x0000 70D9 0x0000 70DA~ 0x0000 70DF
GPECLEAR GPETOGGLE GPFDAT GPFSET GPFCLEAR GPFTOGGLE GPGDAT GPGSET GPGCLEAR GPGTOGGLE Reserved
0x0000 70F2 0x0000 70F3 0x0000 70F4 0x0000 70F5 0x0000 70F6 0x0000 70F7 0x0000 70F8 0x0000 70F9 0x0000 70FA 0x0000 70FB 0x0000 70FC~ 0x0000 70FF
第5章
通用输入/输出接口的应用
【本章要点】 ª 了解通用输入/输出接口的概念 ª 了解通用输入/输出接口的相关寄存器 ª 掌握通用输入/输出接口的仿真方法 ª 掌握通用输入/输出接口的应用程序设计
5.1 通用输入/输出接口概述 5.1.1 通用输入/输出接口的概念
芯片有一部分管脚上用作数字 I/O 引脚, 也就是它们中间的每一个管脚都可以由用户单 独控制输出高电平(数字量 1)或低电平(数字量 0)信号,也可以读取管脚上输入的高、 低电平信号。这样的管脚接口称为通用输入/输出接口(General Purpose Input/Output,简称 GPIO) 。 在 TMS320F2812 处理器上共有 56 根 GPIO 管脚,分为 A 组(16 根) 、B 组(16 组) 、 D 组(4 根) 、E 组(3 根) 、F 组(15 组)及 G 组(2 根) 。 芯片上的管脚资源是有限的, 这一部分 GPIO 管脚实际上是与片内外设的外部管脚共用 的,也就是说,一个 GPIO 管脚可以用作数字量电平的输入/输出,它同时可能也是某个片 内外设的外部管脚的一部分。所以在应用 GPIO 时,需要指定相关的管脚切换到 GPIO 功能 上去,也就是通过 GPxMUX 寄存器来配置选择具体的管脚功能(作为数字 I/O 管脚,屏蔽 其作为片内外设管脚的功能) 。
GPIO 口的工作方式可以通过配置功能选择控制、方向、数据、设置、清除和反转寄存 器等实现。 1. GPxMUX 寄存器 每个 I/O 口都对应一个功能选择寄存器。该寄存器配置 I/O 口工作在外设操作模式还是 数字 I/O 模式。在复位时,所有的 GPIO 配置为 I/O 功能。 如果 GPxMUX.bit = 0,配置为数字 I/O 功能; 如果 GPxMUX.bit = 1,配置为外设功能。 I/O 的输入功能和外设的输入通道总是被使能的,输出通道是 GPIO 和外设共用的。因 此,如果把管脚配置为 I/O 功能,就必须屏蔽其相应的外设功能,否则将会产生随机的中断 信号。 2. GPxDIR 寄存器 每个 I/O 口都对应一个方向控制寄存器,用来配置 I/O 的方向(输入/输出) 。复位时所 有的 GPIO 配置为输入。 如果 GPxDIR.bit = 0,管脚配置为输入; 如果 GPxDIR.bit = 1,管脚配置为输出。 3. GPxDAT 寄存器 每个 I/O 口都对应一个数据寄存器。 数据寄存器是可读/写寄存器, 如果 I/O 配置为输入, 反映当前经过量化后 I/O 输入信号的状态。如果 I/O 配置为输出,向寄存器写值设定 I/O 的 输出。 如果 GPxDAT.bit = 0,且设置为输出功能,将相应的管脚拉低; 如果 GPxDAT.bit = 1,且设置为输出功能,将相应的管脚拉高。 4. GPxSET 寄存器 每个 I/O 口都对应一个设置寄存器,该寄存器是只写寄存器,任何读操作都将返回 0。 如果将相应的管脚配置为输出,写 1 后相应的管脚将会被拉高,写 0 时没有影响。 如果 GPxSET.bit = 0,没有影响; 如果 GPxSET.bit = 1,且管脚设置为输出,将相应的管脚置为高电平。 5. GPxCLEAR 寄存器 每个 I/O 口都对应一个清除寄存器,该寄存器是只写寄存器,任何读操作都将返回 0。
1 1 1 5 1 1 1 1 1 1 1 1 1 1 2 1 1 6
GPIO B 功能选择控制寄存器 GPIO B 方向控制寄存器 GPIO B 输入量化寄存器 保留
GPIO D 功能选择控制寄存器 GPIO D 方向控制寄存器 GPIOD 输入量化寄存器 保留 GPIO E 功能选择控制寄存器 GPIO E 方向控制寄存器 GPIO E 输入量化寄存器 保留 GPIO F 功能选择控制寄存器 GPIO F 方向控制寄存器 保留
表 5-3 GPxQUAL 寄存器的功能定义 位 15~8 7~0 QUALPRD 名 称 Reserved 指定采样周期 0x00:不限制(仅与 SYSCLKOUT 同步) 0x01:QUALPRD = 2 个 SYSCLKOUT 周期 0x02:QUALPRD = 4 个 SYSCLKOUT 周期 … 0xFF:QUALPRD = 512 个 SYSCLKOUT 周期 说 明 保留
相关文档
最新文档