文章目录
一、28377开发板的led电路分析
led电路图:
LED串联1k欧限流电阻,正极接3.3V电源,负极接28377引脚。3个LED用共阳接法。当引脚P89输出低电平,LED1点亮;当引脚P89输出高电平,LED1熄灭。其他LED同样受P91、P93引脚控制亮灭。
二、28377的GPIO相关寄存器介绍
2.1 前言
28377引脚是多功能复用的,因此需要将P89、P91和P93设置为GPIO功能,并上拉输出。
在2837xD系列的DSP芯片中,有高达8组I/O端口,它们的关系为
Port | GPIO |
---|---|
A | 0~31 |
B | 32~63 |
C | 64~95 |
D | 96~127 |
E | 128~159 |
F | 160~191 |
G | 192~223 |
H | 224~255 |
因此点亮LED所需的P89、P91和P93引脚属于PortC.
此外值得一提的是,在TI官方资料《TMS320F2837xD Dual-Core Microcontrollers Technical Reference Manual (Rev. K)》(可在TI官网下载)中可以看到2837xD系列的外设复用、CPU复用和引脚选项只能通过CPU1进行配置。
所以该工程只使用CPU1进行GPIO的配置与控制。
2.2 GPySET 寄存器介绍
该寄存器用于驱动引脚输出为高电平,且不影响其他的引脚。GPySET其中的y用于指代不同引脚的Port,例如P89就是GPCSET。因此设置P89为高电平,可以采用下列程序:
GpioDataRegs.GPCSET.bit.GPIO89 = 1; //用于GPIO89置高
同时在程序中选中GPCSET按下F3可以看到GPCSET是GPCSET_REG类型的数据,GPCSET_REG的定义如下:
union GPCSET_REG {
Uint32 all;
struct GPCSET_BITS bit;
};
其中GPCSET_BITS 为包含GPIO64~GPIO95的结构体。
struct GPCCLEAR_BITS {
// bits description
Uint16 GPIO64:1; // 0 Output Clear bit for this pin
Uint16 GPIO65:1; // 1 Output Clear bit for this pin
Uint16 GPIO66:1; // 2 Output Clear bit for this pin
Uint16 GPIO67:1; // 3 Output Clear bit for this pin
...
}
2.3 GPyCLEAR 寄存器介绍
与GPySET刚好相反,GPyCLEAR 用于驱动引脚输出为底电平。同样的,设置P89为低电平,可以采用下列程序:
GpioDataRegs.</