您好,欢迎访问三七文档
第6章:数字输入/输出模块(I/O)6.1数字I/O端口概述6.2数字I/O端口寄存器6.3I/O端口应用6.1数字I/O端口概述数字I/O脚有专用和复用之分。其功能可通过9个16位控制寄存器来控制。控制寄存器分为两类:①I/O复用控制寄存器(MCRx),用来选择I/O脚是片内外设功能还是通用I/O功能;②数据方向控制寄存器(PxDATDIR):用来控制双向I/O脚的数据传送方向。注意:上述数字I/O脚是通过控制寄存器(映射在数据存储器空间)来控制的,与器件的I/O空间无任何关系。LF240x系列DSP多达41只I/O引脚,大部分是复用的。6.2数字I/O寄存器I/O复用引脚的结构见图6.1。由图可看出复用I/O引脚如何来实现引脚功能选择和数据传送方向选择的。图6.1复用引脚配置图I/O端口数据位(读/写)基本功能I/O端口方向位0=输入1=输出上拉或下拉MUX控制位0=I/O功能1=基本功能引脚输入输出01基本功能或I/O引脚6.2数字I/O寄存器表6.1(P97)列出了与I/O模块有关的寄存器,地址为:7090h-709Fh注意:映射到数据存储器空间。当复用I/O脚无论是被配置为外设功能还是为通用I/O时,引脚的状态都可通过读I/O数据寄存器来获取。保留位是不可操作的,读出为0,写入对它无影响。6.2数字I/O寄存器地址寄存器功能7090hMCRAI/O复用控制寄存器A7092hMCRBI/O复用控制寄存器B7094hMCRCI/O复用控制寄存器C7098hPADATDIRI/O端口A数据和方向寄存器709AhPBDATDIRI/O端口B数据和方向寄存器709ChPCDATDIRI/O端口C数据和方向寄存器709EhPDDATDIRI/O端口D数据和方向寄存器7095hPEDATDIRI/O端口E数据和方向寄存器7096hPFDATDIRI/O端口F数据和方向寄存器表6.1数字I/O控制寄存器地址6.2数字I/O寄存器I/O口复用输出寄存器LF240x/240xA具有3个I/O端口复用控制寄存器:MCRA、MCRB、MCRC。(1)I/O端口复用控制寄存器A(MCRA),映射地址:7090h,其配置见表6.2(P97)。6.2数字I/O寄存器位基本功能及描述(MCRA.n=1)通用I/O(MCRA.n=0)MCRA.0SCITXD:SCI异步串行口发送数据IOPA0MCRA.1SCIRXD:SCI异步串行口接收数据IOPA1MCRA.2XINT1:外部用户中断1IOPA2MCRA.3CAP1/QEP1:捕捉输入1/正交编码脉冲输入1(EVA)IOPA3MCRA.4CAP2/QEP2:捕捉输入2/正交编码脉冲输入2(EVA)IOPA4MCRA.5CAP3:捕捉输入3(EVA)IOPA5MCRA.6PWM1:比较/PWM输出引脚1(EVA)IOPA6MCRA.7PWM2:比较/PWM输出引脚2(EVA)IOPA7MCRA.8PWM3:比较/PWM输出引脚3(EVA)IOPB0MCRA.9PWM4:比较/PWM输出引脚4(EVA)IOPB1MCRA.10PWM5:比较/PWM输出引脚5(EVA)IOPB2MCRA.11PWM6:比较/PWM输出引脚6(EVA)IOPB3MCRA.12T1PWM/T1CMP:TMR1比较输出(EVA)IOPB4MCRA.13T2PWM/T2CMP:TMR2比较输出(EVA)IOPB5MCRA.14TDIRA:通用定时器计数方向选择(EVA);1=加计数;0=减计数IOPB6MCRA.15TCLKINA:通用定时器(EVA)的外部时钟输入IOPB76.2数字I/O寄存器(2)I/O端口复用控制寄存器B,映射地址:7092h,其配置见表6.3(P98)。注意:MCRB.9-MCRB.15必须配置成1,其为系统的专用引脚,用作与硬件仿真器接口(JTAG)相连,实现DSP的在线仿真功能。对其写0会引起不可预测的结果。6.2数字I/O寄存器位基本功能及描述(MCRA.n=1)通用I/O(MCRA.n=0)MCRB.0W/R:写/读选定;0=读;1=写IOPC0MCRB.1BIO:分支控制输入;0=执行分支程序IOPC1MCRB.2SPISIMO:SPI从动输入、主动输出IOPC2MCRB.3SPISOMI:SPI从动输出、主动输入IOPC3MCRB.4SPICLK:SPI时钟IOPC4MCRB.5SPISTE:SPI从动发送使能IOPC5MCRB.6CANTX:CAN发送数据IOPC6MCRB.7CANRX:CAN接收数据IOPC7MCRB.8XINT2/ADCSOC:外部用户中断2/AD转换开始输入IOPD0MCRB.9EMU0:带内部上拉仿真器I/O引脚0保留位MCRB.10EMU1:带内部上拉仿真器I/O引脚1保留位MCRB.11TCK:带内部上拉JTAG测试时钟保留位MCRB.12TDI:带内部上拉JTAG测试数据输入保留位MCRB.13TDO:带内部上拉JTAG测试数据输出保留位MCRB.14TMS:带内部上拉JTAG测试方式选择保留位MCRB.15TMS2:带内部上拉JTAG测试方式选择2保留位6.2数字I/O寄存器(3)I/O端口复用控制寄存器C(MCRC),映射地址:7094h,其配置见表6.4(P99)。6.2数字I/O寄存器位基本功能(MCRA.n=1)通用I/O(MCRA.n=0)MCRC.0CLKOUT:时钟输出IOPE0MCRC.1PWM7:比较/PWM输出引脚7(EVA)IOPE1MCRC.2PWM8:比较/PWM输出引脚8(EVA)IOPE2MCRC.3PWM9:比较/PWM输出引脚9(EVA)IOPE3MCRC.4PWM10:比较/PWM输出引脚10(EVA)IOPE4MCRC.5PWM11:比较/PWM输出引脚11(EVA)IOPE5MCRC.6PWM12:比较/PWM输出引脚12(EVA)IOPE6MCRC.7CAP4/QEP3:捕捉输入4/正交编码脉冲输入3(EVA)IOPE7MCRC.8CAP5/QEP4:捕捉输入5/正交编码脉冲输入4(EVA)IOPF0MCRC.9CAP6:捕捉输入6IOPF1MCRC.10T3PWM/T3CMP:TMR3比较输出(EVA)IOPF2MCRC.11T4PWM/T4CMP;TMR4比较输出(EVA)IOPF3MCRC.12TDIRB:通用定时计数器方向选择(EVB)IOPF4MCRC.13TCLKINB:通用定时器(EVB)的外部时钟输入IOPF5MCRC.14保留IOPF6MCRC.15保留保留位6.2数字I/O寄存器I/O口数据和方向寄存器6个数据和方向控制寄存器(PXDATDIR),包含两个功能位。(1)I/O方向位:如果引脚被选择了通用I/O,方向位决定了是输入(0)还是输出(1)。(2)I/O数据位:如果引脚被选择了通用I/O,当方向选为输入,则可从该位上读取数据,当方向选为输出,则可向该位写入数据。如I/O端口被选择作通用I/O引脚,数据和方向控制寄存器可以控制数据和I/O引脚的数据方向。如I/O端口被选择作外设功能时,数据和方向控制寄存器的设置对相应的引脚无影响。6.2数字I/O寄存器(1)端口A数据和方向控制寄存器(PADATDIR),地址:7098h位15-8:AnDIRPA7-PA0的数据方向0:相应引脚配置为输入1:相应引脚配置为输出位7-0:IOPA7-IOPA0如果AnDIR=0,引脚配置为输入0-相应引脚的电平读为低电平1-相应引脚的电平读为高电平如果AnDIR=1,引脚配置为输出0-设置相应引脚,使其输出信号为低电平时有效1-设置相应引脚,使其输出信号为高电平时有效如果I/O端口用作通用I/O,则必须对数据和方向寄存器进行初始化设置,为输入还是输出。6.2数字I/O寄存器(2)端口B数据和方向控制寄存器(PBDATDIR),地址:709Ah位15-8:BnDIRPB7-PB0的数据方向0-相应引脚配置为输入1-相应引脚配置为输出位7-0:IOPBn如果BnDIR=0,引脚配置为输入方式。0-相应引脚的电平读为低电平1-相应引脚的电平读为高电平如果BnDIR=1,引脚配置为输出0-设置相应引脚,使其输出信号为低电平时有效1-设置相应引脚,使其输出信号为高电平时有效6.2数字I/O寄存器(3)端口C数据和方向控制寄存器(PCDATDIR),地址:709Ch位15-8:CnDIRPC7-PC0的数据方向0-相应引脚配置为输入1-相应引脚配置为输出位7-0:IOPCn如果CnDIR=0,引脚配置为输入方式。0-相应引脚的电平读为低电平1-相应引脚的电平读为高电平如果CnDIR=1,引脚配置为输出0-设置相应引脚,使其输出信号为低电平时有效1-设置相应引脚,使其输出信号为高电平时有效6.2数字I/O寄存器(4)端口D数据和方向控制寄存器(PDDATDIR),地址:709Eh位15-9:保留位8:D0DIR0-相应引脚配置为输入1-相应引脚配置为输出位7-1:保留位0:IOPD0如果D0DIR=0,引脚配置为输入方式。0-相应引脚的电平读为低电平1-相应引脚的电平读为高电平如果D0DIR=1,引脚配置为输出0-设置相应引脚,使其输出信号为低电平时有效1-设置相应引脚,使其输出信号为高电平时有效6.2数字I/O寄存器(5)端口E数据和方向控制寄存器(PEDATDIR),地址:7095h位15-8:EnDIRPE7-PE0的数据方向0-相应引脚配置为输入1-相应引脚配置为输出位7-0:IOPEn如果EnDIR=0,引脚配置为输入方式。0-相应引脚的电平读为低电平1-相应引脚的电平读为高电平如果EnDIR=1,引脚配置为输出0-设置相应引脚,使其输出信号为低电平时有效1-设置相应引脚,使其输出信号为高电平时有效6.2数字I/O寄存器(6)端口F数据和方向控制寄存器(PFDATDIR),地址:7096h位15:保留位14-8:FnDIRPF6-PF0的数据方向0-相应引脚配置为输入1-相应引脚配置为输出位7:保留位7-0:IOPFn如果FnDIR=0,引脚配置为输入方式。0-相应引脚的电平读为低电平1-相应引脚的电平读为高电平如果FnDIR=1,引脚配置为输出0-设置相应引脚,使其输出信号为低电平时有效1-设置相应引脚,使其输出信号为高电平时有效6.2数字I/O寄存器数字I/O端口配置实例配置:选择I/O引脚的功能,且设置I/O引脚的方向。I/O配置实例程序:MCRA.set7090h;可将这些映射语句放于240x.h文件中PADATDIR.set7098h;可将这些映射语句放于240x.h文件中PBDATDIR.set709Ah;可将这些映射语句放于240x.h文件中LDP#0E1h;指向相应的数据页面LACC#0h;设置MCRA所有位均为0SACLMCRA;配置为I/O脚,选择引脚IOPA0-IOPA7和IOPB0-IOPB7SACLPADATDIR;引脚IOPA0-IOPA7配置为输入,低有效LACC#0F00h;引脚IOPB7-IOPB4配置为输入SACLPBDATDIR;引脚IOPB3-IOPB0配置为输出LACCPBDATDIR;读取引脚IOPB7-IOPB4输入状态AND#00F0h;A为输入状态6.3I/O端口应用1、I/O端口作为输出使用I/O端口输出8个信号,这8个信号分别连接到8个LED,硬件接口电路如图6.2(P102)所示。输出引脚与LED之间接一触发器74HC273,来实现对LED的驱动。在此使用IOPB作为输出信号来控制发光二极管的亮灭,而IOPF2作为选通74HC273的输出信号。图6.2TMS320LF2407与LED接口电路6.3I/O端口应用下面的实例程序实现对8个LED的循环驱动,即LED循环发光LED1→LED2→LED3→LED
本文标题:第6章数字IO模块
链接地址:https://www.777doc.com/doc-3172928 .html