DSP原理及应用_第05章汇总
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
当端口被设定为数字量I/O时,必须要禁止相应的外设 I/O功能,否则可能引起误操作;
• 数据寄存器GPxDAT是可读/可写寄存器。读此寄 存器将返回相应引脚上限定后的输入信号值,写 此寄存器将把值从相应的IO引脚输出 ;
输入限定控制寄存器
位 名称
功能定义
7~0
QUALPRO
设置输入限定的采样周期 0x00:不限定,与SYSCLKOUT同 步; 0x01:QUALPRD=2个 SYSCLKOUT周期; 0x02:QUALPRD=4个 SYSCLKOUT周期;
delay_loop(); } }
使用TOGGLE寄存器反转触发I/O引脚
void Gpio_example3(void) { //先将端口设置成已知状态
GpioDataRegs.GPASET.all =0xAAAA; GpioDataRegs.GPACLEAR.all =0x5555;
//使用TOGGLE寄存器将引脚状态反转,被写1 //的位将使引脚状态反转,写0的位不改变引脚状态 while(1) { GpioDataRegs.GPATOGGLE.all = 0xFFFF; delay_loop(); } }
while(1) {
GpioDataRegs.GPASET.all =0xAAAA; GpioDataRegs.GPACLEAR.all =0x5555; delay_loop(); GpioDataRegs.GPACLEAR.all =0xAAAA; GpioDataRegs.GPASET.all =0x5555;
EDIS;
}
主程序
void main(void)
{
InitSysCtrl(); //系统初始化:PLL、WatchDog、使能外设时钟
Gpio_select();
//GPIO设置
DINT;
//清除所有中断,初始化PIE向量表,关闭CPU中断
InitPieCtrl(); //将PIE控制寄存器初始化为默认值,即所有PIE中断被关闭,
while(1)
{ GpioDataRegs.GPADAT.all =0xAAAA; delay_loop();
GpioDataRegs.GPADAT.all delay_loop(); } }
=0x5555;
使用SET/CLEAR寄存器反转触发I/O引脚
void Gpio_example2(void) {
//所有中断,标志清零。
IER = 0x0000; //关闭CPU中断,清除所有CPU中断标志;
IFR = 0x0000;
InitPieVectTable(); //初始化PIE向量表,将指针指向ISR
#if EXAMPLE1 // 该例程使用GPxDAT寄存器反转触发I/O引脚
Gpio_example1();
…… 0Xff:QUALPRD=510个 SYSCLKOUT周期。
5.3
GPIO应用举例
LED硬件电路,L1~L8接 DSP的GPIO端口
对GPIO端口取反输出的三种方法
使用GPxDAT寄存器反转触发I/O引脚 void Gpio_example1(void) {
//当使用GPxDAT寄存器时,可能会丢失输入信号。 //如果端口有输入信号,可以使用 // CLEAR/SET/TOGGLE 寄存器实现反转触发I/O引脚
第五章 通用输入/输出端口(GPIO)
5.1 输入/输出端口概述
5.2 GPIO寄存器 5.3 GPIO应用举例
dsp2812外部引脚电路图
5.1
输入/输出端口概述
‘28xDSP有多个通用输入输出引脚GPIO ; 很多为复用引脚,由复用功能选择寄存器 GPxMUX选择具体功能,可以将引脚设定 为片内外设的输入输出引脚,也可以设定 为通用输入输出引脚(数字量IO);
// sets the Input qualifier values
EALLOW;
GpioMuxRegs.GPAMUX.all=var1;
//将GPIO端口设置成数字量I/O
GpioMuxRegs.GPADIR.all=var2; // 将GPIO端口设置为输出
GpioMuxRegs.GPAQUAL.all=var3; //设置GPIO输入限定值
输入限定
设置GPxQUAL寄存器,配置输入限定器,决定引脚 量化采样周期 ;
输入信号被限定是指只有宽度满足要求的信号才能 输入,限定输入信号可以有效抑制噪声的进入。
5.2
GPIO寄存器
• 复用功能选择寄存器GPxMUX设置GPIO为数字 量IO或外设IO,复位时所有GPIO配置为数字量 IO;
• 方向寄存器GPxDIR配置数字量IO的输入/输出方 向,当某一位为0时,相应的引脚设定为输入, 复位时所有GPIO引脚均设置为输入 ;
端口设置
void Gpio_select(void)
{
Uint16 var1;
Uint16 var2;
Uint16 var3;
var1= 0x0000;
Leabharlann Baidu
// sets GPIO Muxs as I/Os
var2= 0xFFFF;
// sets GPIO DIR as outputs
var3= 0x0000;
GPxSET寄存器设置每个引脚为高电平; GPxCLEAR清除每个引脚信号; GPxTOGGLE反转触发每个引脚信号; GPxDAT读写每个引脚信号 。
GPIO复用引脚的结构
如果一个引脚被设定为 数字量I/O,却没有禁止 相应的外设功能,那么输 入信号会同时进入数字量 I/O和外设I/O,外设会发 出中断请求。如果外设中 断被允许,CPU就可能响 应中断,造成错误操作!
#endif
#if EXAMPLE2 //该例程使用GPxSET/GPxCLEAR寄存器反转触发I/O引脚
Gpio_example2();
#endif
#if EXAMPLE3
//该例程使用GPxTOGGLE寄存器反转触发I/O引脚
Gpio_example3();
#endif
}
本章重点小结
‘28X系列DSP的通用数字输入输出GPIO端口是复用功 能引脚,通过GPxMUX、GPxDIR、GPxQUAL等复用功 能控制寄存器以及GPxDAT、GPxSET、GPxCLEAR和 GPxTOGGLE等GPIO数据寄存器对引脚的功能和操作进 行控制;
• 数据寄存器GPxDAT是可读/可写寄存器。读此寄 存器将返回相应引脚上限定后的输入信号值,写 此寄存器将把值从相应的IO引脚输出 ;
输入限定控制寄存器
位 名称
功能定义
7~0
QUALPRO
设置输入限定的采样周期 0x00:不限定,与SYSCLKOUT同 步; 0x01:QUALPRD=2个 SYSCLKOUT周期; 0x02:QUALPRD=4个 SYSCLKOUT周期;
delay_loop(); } }
使用TOGGLE寄存器反转触发I/O引脚
void Gpio_example3(void) { //先将端口设置成已知状态
GpioDataRegs.GPASET.all =0xAAAA; GpioDataRegs.GPACLEAR.all =0x5555;
//使用TOGGLE寄存器将引脚状态反转,被写1 //的位将使引脚状态反转,写0的位不改变引脚状态 while(1) { GpioDataRegs.GPATOGGLE.all = 0xFFFF; delay_loop(); } }
while(1) {
GpioDataRegs.GPASET.all =0xAAAA; GpioDataRegs.GPACLEAR.all =0x5555; delay_loop(); GpioDataRegs.GPACLEAR.all =0xAAAA; GpioDataRegs.GPASET.all =0x5555;
EDIS;
}
主程序
void main(void)
{
InitSysCtrl(); //系统初始化:PLL、WatchDog、使能外设时钟
Gpio_select();
//GPIO设置
DINT;
//清除所有中断,初始化PIE向量表,关闭CPU中断
InitPieCtrl(); //将PIE控制寄存器初始化为默认值,即所有PIE中断被关闭,
while(1)
{ GpioDataRegs.GPADAT.all =0xAAAA; delay_loop();
GpioDataRegs.GPADAT.all delay_loop(); } }
=0x5555;
使用SET/CLEAR寄存器反转触发I/O引脚
void Gpio_example2(void) {
//所有中断,标志清零。
IER = 0x0000; //关闭CPU中断,清除所有CPU中断标志;
IFR = 0x0000;
InitPieVectTable(); //初始化PIE向量表,将指针指向ISR
#if EXAMPLE1 // 该例程使用GPxDAT寄存器反转触发I/O引脚
Gpio_example1();
…… 0Xff:QUALPRD=510个 SYSCLKOUT周期。
5.3
GPIO应用举例
LED硬件电路,L1~L8接 DSP的GPIO端口
对GPIO端口取反输出的三种方法
使用GPxDAT寄存器反转触发I/O引脚 void Gpio_example1(void) {
//当使用GPxDAT寄存器时,可能会丢失输入信号。 //如果端口有输入信号,可以使用 // CLEAR/SET/TOGGLE 寄存器实现反转触发I/O引脚
第五章 通用输入/输出端口(GPIO)
5.1 输入/输出端口概述
5.2 GPIO寄存器 5.3 GPIO应用举例
dsp2812外部引脚电路图
5.1
输入/输出端口概述
‘28xDSP有多个通用输入输出引脚GPIO ; 很多为复用引脚,由复用功能选择寄存器 GPxMUX选择具体功能,可以将引脚设定 为片内外设的输入输出引脚,也可以设定 为通用输入输出引脚(数字量IO);
// sets the Input qualifier values
EALLOW;
GpioMuxRegs.GPAMUX.all=var1;
//将GPIO端口设置成数字量I/O
GpioMuxRegs.GPADIR.all=var2; // 将GPIO端口设置为输出
GpioMuxRegs.GPAQUAL.all=var3; //设置GPIO输入限定值
输入限定
设置GPxQUAL寄存器,配置输入限定器,决定引脚 量化采样周期 ;
输入信号被限定是指只有宽度满足要求的信号才能 输入,限定输入信号可以有效抑制噪声的进入。
5.2
GPIO寄存器
• 复用功能选择寄存器GPxMUX设置GPIO为数字 量IO或外设IO,复位时所有GPIO配置为数字量 IO;
• 方向寄存器GPxDIR配置数字量IO的输入/输出方 向,当某一位为0时,相应的引脚设定为输入, 复位时所有GPIO引脚均设置为输入 ;
端口设置
void Gpio_select(void)
{
Uint16 var1;
Uint16 var2;
Uint16 var3;
var1= 0x0000;
Leabharlann Baidu
// sets GPIO Muxs as I/Os
var2= 0xFFFF;
// sets GPIO DIR as outputs
var3= 0x0000;
GPxSET寄存器设置每个引脚为高电平; GPxCLEAR清除每个引脚信号; GPxTOGGLE反转触发每个引脚信号; GPxDAT读写每个引脚信号 。
GPIO复用引脚的结构
如果一个引脚被设定为 数字量I/O,却没有禁止 相应的外设功能,那么输 入信号会同时进入数字量 I/O和外设I/O,外设会发 出中断请求。如果外设中 断被允许,CPU就可能响 应中断,造成错误操作!
#endif
#if EXAMPLE2 //该例程使用GPxSET/GPxCLEAR寄存器反转触发I/O引脚
Gpio_example2();
#endif
#if EXAMPLE3
//该例程使用GPxTOGGLE寄存器反转触发I/O引脚
Gpio_example3();
#endif
}
本章重点小结
‘28X系列DSP的通用数字输入输出GPIO端口是复用功 能引脚,通过GPxMUX、GPxDIR、GPxQUAL等复用功 能控制寄存器以及GPxDAT、GPxSET、GPxCLEAR和 GPxTOGGLE等GPIO数据寄存器对引脚的功能和操作进 行控制;