您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > DSP第7章可编程数字量通用IO
盐城工学院电气与新能源综合实验教学示范中心DSP应用技术1第7章可编程数字量通用I/O盐城工学院电气与新能源综合实验教学示范中心DSP应用技术27.1功能概述F28x系列有56个独立可编程复用的通用I/O(GPIO)引脚。引脚可以通过寄存器GPxMUX(x——A、B、D、E、F和G端口)分别设置成数字I/O端口或外设模块I/O端口。如果设置成数字I/O端口模式,通过寄存器GPxDIR设置引脚的数据传输方向,并且还可以通过GPxQUAL对输入信号分频以便滤除不需要的噪音。盐城工学院电气与新能源综合实验教学示范中心DSP应用技术37.2端口配置TMS320F2812复用引脚功能对照盐城工学院电气与新能源综合实验教学示范中心DSP应用技术4TMS320F2812复用引脚功能对照盐城工学院电气与新能源综合实验教学示范中心DSP应用技术5GPIO控制寄存器盐城工学院电气与新能源综合实验教学示范中心DSP应用技术6复用功能引脚图盐城工学院电气与新能源综合实验教学示范中心DSP应用技术77.3数字量I/O寄存器及其应用F2812处理器的所有外设寄存器全部分组为外设帧PF0、PF1和PF2,这些帧都映射到处理器的数据区。外设帧PF0包括控制访问内部Flash和SARAM速度的控制寄存器;外设帧PF1包括绝大部分外设控制寄存器;外设帧PF2主要用于CAN模块的控制寄存器。盐城工学院电气与新能源综合实验教学示范中心DSP应用技术8外设帧存储空间映射关系盐城工学院电气与新能源综合实验教学示范中心DSP应用技术97.3.1I/O复用寄存器及其应用GPIO复用控制寄存器名称地址空间大小(×16)寄存器功能描述GPAMUX0x70C01GPIOA复用控制寄存器GPADIR0x70C11GPIOA方向控制寄存器GPAQUAL0x70C21GPIOA输入量化控制寄存器保留0x70C31GPBMUX0x70C41GPIOB复用控制寄存器GPBDIR0x70C51GPIOB方向控制寄存器GPBQUAL0x70C61GPIOB输入量化控制寄存器保留0x70C7~0x70CB5盐城工学院电气与新能源综合实验教学示范中心DSP应用技术10名称地址空间大小(×16)寄存器功能描述GPDMUX0x70CC1GPIOD复用控制寄存器GPDDIR0x70CD1GPIOD方向控制寄存器GPDQUAL0x70CE1GPIOD输入量化控制寄存器保留0x70CF1GPEMUX0x70D01GPIOE复用控制寄存器GPEDIR0x70D11GPIOE方向控制寄存器GPEQUAL0x70D21GPIOE输入量化控制寄存器保留0x70D31GPFMUX0x70D41GPIOF复用控制寄存器GPFDIR0x70D51GPIOF方向控制寄存器保留0x70D61保留0x70D71GPGMUX0x70D81GPIOG复用控制寄存器GPGDIR0x70D91GPIOG方向控制寄存器保留0x70DA~0x70DF6盐城工学院电气与新能源综合实验教学示范中心DSP应用技术11采用C/C++编程GPIO复用寄存器的结构体定义StuctGPIO_MUX_REGS{unionGPAMUX_REGGPAMUX;unionGPADIR_REGGPADIR;unionGPAQUAL_REGGPAQUAL;Uint16rsvd1;unionGPBMUX_REGGPBMUX;unionGPBDIR_REGGPBDIR;unionGPBQUAL_REGGPBQUAL;Uint16rsvd2[5];unionGPDMUX_REGGPDMUX;unionGPDDIR_REGGPDDIR;unionGPDQUAL_REGGPDQUAL;Uint16rsvd3;盐城工学院电气与新能源综合实验教学示范中心DSP应用技术12unionGPEMUX_REGGPEMUX;unionGPEDIR_REGGPEDIR;unionGPEQUAL_REGGPEQUAL;Uint16rsvd4;unionGPFMUX_REGGPFMUX;unionGPFDIR_REGGPFDIR;Uint16rsvd5[2];unionGPGMUX_REGGPGMUX;unionGPGDIR_REGGPGDIR;Uint16rsvd6[6];};盐城工学院电气与新能源综合实验教学示范中心DSP应用技术13用结构体定义后,对外部引脚进行初始化操作。voidGpio_select(void){Uint16var1;Uint16var2;Uint16var3;//设置GPIOMux寄存器,使相关I/O工作在GPIO模式var1=0x0000;//设置GPIODIR寄存器,使相关I/O工作在GPIO输出模式var2=0xFFFF;var3=0x0000;//配置量化功能盐城工学院电气与新能源综合实验教学示范中心DSP应用技术14EALLOW;GpioMuxRegs.GPAMUX.all=var1;GpioMuxRegs.GPBMUX.all=var1;GpioMuxRegs.GPDMUX.all=var1;GpioMuxRegs.GPFMUX.all=var1;GpioMuxRegs.GPEMUX.all=var1;GpioMuxRegs.GPGMUX.all=var1;//GPIOPORT配置为输出GpioMuxRegs.GPADIR.all=var2;GpioMuxRegs.GPBDIR.all=var2;GpioMuxRegs.GPDDIR.all=var2;盐城工学院电气与新能源综合实验教学示范中心DSP应用技术15GpioMuxRegs.GPDDIR.all=var2;GpioMuxRegs.GPEDIR.all=var2;GpioMuxRegs.GPFDIR.all=var2;GpioMuxRegs.GPGDIR.all=var2;//配置量化器的值GpioMuxRegs.GPAQUAL.all=var3;GpioMuxRegs.GPBQUAL.all=var3;GpioMuxRegs.GPDQUAL.all=var3;GpioMuxRegs.GPEQUAL.all=var3;EDIS;}盐城工学院电气与新能源综合实验教学示范中心DSP应用技术16由于引脚的输出缓冲直接连接到输入缓冲,当前GPIO引脚上的任何信号都会同时传送到外设模块。因此,当引脚配置为GPIO功能时,相应的外设功能(和产生中断功能)必须通过复用寄存器禁止,否则将会首先触发中断,这一点对于PDPINTA和PDPINTB引脚尤其重要。盐城工学院电气与新能源综合实验教学示范中心DSP应用技术17处理器GPIO内部结构图盐城工学院电气与新能源综合实验教学示范中心DSP应用技术18由于所有多功能复用引脚都可以通过相应的控制寄存器的位独立配置,因此在使用时需要详细了解各GPIO引脚对应的控制位。表7.3~表7.6给出相关寄存器位对应的被控引脚,并以C语言编程的结构体定义为例给出了采用C/C++编程时的定义方法。以GPIOA复用为例介绍位结构定义。盐城工学院电气与新能源综合实验教学示范中心DSP应用技术19表7.3GPIOA复用引脚功能分配表盐城工学院电气与新能源综合实验教学示范中心DSP应用技术20//GPIOA功能复用控制寄存器位结构定义structGPAMUX_BITS{//位功能描述Uint16PWM1_GPIOAO:1;//0Uint16PWM2_GPIOA1:1;//1Uint16PWM3_GPIOA2:1;//2Uint16PWM4_GPIOA3:1;//3Uint16PWMS_GPIOA4:1;//4Uint16PWM6_GPIOA5:1;//5Uint16T1PWM_GPIOA6:1;//6Uint16T2PWM_GPIOA7:1;//7Uint16CAP1Q1_GPIOA8:1;//8Uint16CAP2Q2_GPIOA9:1;//9Uint16CAP3QI1_GPIOA10:1;//10Uint16TDIRAGPIOA11:1;//11Uint16TCLKINA_GPIOA12:1;//12Uint16C1TRIP_GPIOA13:1;//13Uint16C2TRIP_GPIOA14:1;//14Uint16C3TRIP_GPIOA15:1;//15};盐城工学院电气与新能源综合实验教学示范中心DSP应用技术217.3.2I/O数据寄存器及其应用如果复用引脚配置为数字I/O模式,则可以直接利用数据寄存器对I/O操作(读/写),也以利用其他辅助寄存器对各I/O进行独立操作,如数字I/O置位(GPxSET寄存器)、数字I/O清零(GPxCLEAR寄存器)及数字I/O电平转换(GPxTOGGLE寄存器),如表7.7所列。盐城工学院电气与新能源综合实验教学示范中心DSP应用技术22名称地址空间大小(×16位)寄存器功能描述GPADAT0x70E01GPIOA数据寄存器GPASET0x70E11GPIOA置位寄存器GPACLEAR0x70E21GPIOA清零寄存器GPATOGGLE0x70E31GPIOA单独触发寄存器GPBDAT0x70E41GPIOB数据寄存器GPBSET0x70E51GPIOB置位寄存器GPBCLEAR0x70E61GPIOB清零寄存器GPBTOGGLE0x70E71GPIOB单独触发寄存器保留0x70E8~0x70EB4GPDDAT0x70EC1GPIOD数据寄存器GPDSET0x70ED1GPIOD置位寄存器GPDCLEAR0x70EE1GPIOD清零寄存器GPDTOGGLE0x70EF1GPIOD单独触发寄存器GPIO数据控制寄存器盐城工学院电气与新能源综合实验教学示范中心DSP应用技术23名称地址空间大小(×16位)说明GPEDAT0x70F01GPIOE数据寄存器GPESET0x70F11GPIOE置位寄存器GPECLEARL0x70F21GPIOE清零寄存器GPETOGGLE0x70F31GPIOE单独触发寄存器GPFDAT0x70F41GPIOF数据寄存器GPFSET0x70F51GPIOF置位寄存器GPFCLEAR0x70F61GPIOF清零寄存器GPFTOGGLE0x70F71GPIOF单独触发寄存器GPGDAT0x70F81GPIOG数据寄存器GPGSET0x70F91GPIOG置位寄存器GPGCLEAR0x70FA1GPIOG清零寄存器GPGTOGGLE0x70FB1GPIOG单独触发寄存器保留0x70FC~0x70FF4盐城工学院电气与新能源综合实验教学示范中心DSP应用技术24voidGpio_example1(void){//使用数据寄存器设置I/0的输出,或者通过数据寄存器读取//外部引脚的状态信息while(1){GpioDataRegs.GPADAT.all=0xAAAA;GpioDataRegs.GPBDAT.all=0xAAAA;GpioDataRegs.GPDDAT.all=0x0022;GpioDataRegs.GPEDAT.all=0x0022;GpioDataRegs.GPFDAT.all=0xAAAA;GpioDataRegs.GPGDAT.all=0x0020;delay_loop();盐城工学院电气与新能源综合实验教学示范中心DSP应用技术25GpioDataRegs.GPADAT.all=0x55555;GpioDataRegs.GPBDAT.all=0x55555;GpioDataRegs.GPDDAT.all=0x0041;//只有4个I/0GpioDataRegs.GPEDAT.all=0x0005;//只有3个I/0GpioDataRegs.GPFDAT.all=0x5555;GpioDataRegs.GPGDAT.all=0x0010;//只有2个I/0delap_loop();}}盐城工学院电气与新能源综合实验教学示范中心DSP应用技术267.4数字量I/O应用举例图7.6GPIO_ap
本文标题:DSP第7章可编程数字量通用IO
链接地址:https://www.777doc.com/doc-6943496 .html