一、实验目的
1、掌握TMS320F281x系列DSP的基本接口; 2、熟悉TMS320F281x系列DSP的通用数字I/O;
3、熟悉与TMS320F281x系列DSP的数字I/O相关寄存器; 4、熟悉TMS320F281x系列DSP的通用数字I/O编程方法。
二、实验系统原理及编程
数字I/O是微处理器系统和外界联系的一种典型接口。通过数字输入可检测外部引脚的逻辑电平变化,键盘开关状态;通过设置数字输出为高电平和低电,可控制外部设备的开关状态,如电动机的启动/停止、指示灯的亮/灭等。F281x芯片提供了多大56个通用I/O引脚(GPIO),这些端口中绝大部分是功能复用的引脚,既可以用作通用I/O接口实现一般的数字信号输入/输出,也可以专门用作片内外设接口。
功能分类 电源接口 外设接口 接口名称 +5v电源插座 标准RS-232 P1扩展插座 总线接口 P2扩展插座 P3扩展插座 P4扩展插座 指示灯 电源指示灯 用户可控指示灯 辅助接口 开关 跳线设置 JTAG仿真接口 用户可控开关 复位按钮 JP1 JP2 ADREFLO1 模式跳线设置2 ADREFIN1 MP/MC1 MDXA1 模式跳线设置1 SCITXDA1 SPICLKA1 5V电源输入 九针D型异步串口(可以和计算机直接通讯) 用于二次开发的34芯外扩总线 用于二次开发的34芯外扩总线 用于二次开发的34芯外扩总线 用于二次开发的34芯外扩总线 接通电源后会亮 共有四个 DSP仿真器从此处接入 共有四个 手动复位开关 SCI复用选择 Can总线使能。 2812芯片上管脚ADCLO AD参考低电压输入,默认2,3连接。 2812芯片上管脚ADCBGREFIN, 测试端,可以悬空或2,3脚连接 2812芯片上管脚XMP/MC, MP/MC工作方式选择,默认2,3连接 2812芯片上管脚MDXA, 默认1,2连接。 2812芯片上管脚SCITXDA, 默认1,2连接。 2812芯片上管脚SPICLKA, 默认1,2连接。 接口定义 SPISTEA1 2812芯片上管脚SPISTEA, 默认1,2连接。 表1 接口功能表
除了外部扩展存储器之外,板上还扩展了一些数据和控制端口,这些端口用来驱动板上的
其他外设。在这一节我们给出所有外扩寄存器的地址和数据信息,详细的编程分别在接下来的
其他小节说明。下面是所有的外扩寄存器列表和简单的介绍:
表2 外扩寄存器列表
外扩寄存器地址 0xC0000 0xC0001 0xC0003 0xC0004 0xC0005 0xC0006 0xC0007 寄存器名称 LEDR SWR DACTLR DATIMENR DATIMCNTR DADATLR DADATHR 有效位数 D3到D0有效 D3到D0有效 D0有效 D7到D0有效 D0有效 D7到D0有效 D7到D0有效 读写状态 读/写允许 读允许 读/写允许 读/写允许 写允许 读/写允许 读/写允许 上电复位状态 0000b -------- 1b 0000 0001b -------- 0000 0000b 0000 0000b F2812-A评估板提供了四位的状态显示数码管和四位可读入数字量的开关,这些接口不使用TMS3202812的芯片管脚实现。下面是显示数码管和开关的寄存器定义和说明:
7 4 无效位
3 0 LEDR3 R/W-0
LEDR2 R/W-0
LEDR1 R/W-0
LEDR0 R/W-0
图1 LEDR寄存器:地址是0xC0000
图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值
位 3 2 1 0 名称 LEDR3 LEDR2 LEDR1 LEDR0 四位显示数码管。向某位写“1”,点亮相应的发光管,写“0”,则使数码管熄灭。这个寄存器可读,在使用时可以通过读操作得到最后一次写操作的值。 说明 图2 LEDR寄存器说明
7 4 无效位
3 0 SWR3 R-x
SWR2 R-x
SWR1 R-x
SWR0 R-x
图3 SWR寄存器: 地址是0xC0001
图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值
三、实验要求
1、确定指示灯相关控制寄存器;
2、控制指示灯开关,实现流水灯功能,即灯1~4按序点亮,且每次只有1盏灯被点亮。
3、通过配置延迟,实现不同速度下的流水灯。
四、实验步骤
1、通过设置结构体变量来设置寄存器; 2、通过不同的位置位轮流点亮指示灯;
3、观察流水灯速率,调整延迟时间,实现流水灯功能。
五、实验小结
1、外部通用I/O引脚有几种工作模式?如何设置?
F281X 芯片提供了 56 个通用 I/O 引脚 (GPIO),它们可以有数字I/O 和外设 I/O 两种工作模式,当配置为数字I/O 模式时,F281X 芯片提供了 56 个通用 I/O 引脚 (GPIO),它们可以有数字I/O 和外设 I/O 两种工作模式,
.如果引脚被配置为数字I/O 且为输出模式,则可以通过寄存器GPxSET 将I/O 引 脚置1(高电平),寄存器GPxCLEAR 将I/O 置0(低电平),寄存器GPxTOGGLE 将I/O 状态在0 与1 间切换。寄存器GPxDAT 可直接设定I/O 引脚的状态。 2、通用I/O寄存器有几类寄存器?各功能如何?
GPxMUX 寄存器,每个I/O端口都有一个MUX(多路复用)寄存器。这个寄存器用来在每个引脚(PIN)的外设操作及I/O操作之间进行选择。复位时所有通用I/O引脚都配置成数字I/O功能。任何一个引脚都可通过16位的多路复用寄存器 GPxMUX进行外设或GPIO 功能的设置:当GPxMUX.bit = 0,,相应的一个引脚配置成I/O功能;当GPxMUX.bit = 1,相应的一个引脚配置成外设功能。
GPxDIR寄存器(x=A,B,D,E,F,G),每个I/O端口都有一个方向控制寄存器。不论是将相应的I/O 引脚配置成输入还是输出,都由方向寄存器控制。复位时,所有通用I/O 引脚均配置成输入。当GPxDIR.bit = 0,引脚配置成输入;当GPxDIR.bit = 1,引脚配置成输出。 GPxDAT 寄存器,每个I/O 端口都有一个数据寄存器,它是一个读/写寄存器。读入的该寄存器的值反映了输入限制后输入引脚当前的电平,写寄存器可设置输出引脚为相应的电平。 GPxSET 寄存器,每个I/O 端口都有一个置位寄存器,它是一个只写寄存器,读为0。如果对应的引脚配置为输出,则向置位寄存器的该位写1,将对应引脚电平拉高。写0 无效。 GPxCLEAR 寄存器,每个I/O 端口都有一个清除寄存器,它是一个只写寄存器,读为0。如果对应的引脚配置为输出,则向清除寄存器的该位写1,将把对应引脚拉成低电平。写0 则无效
GPxTOGGLE寄存器,每个I/O端口都有一个切换寄存器,它是一个只写寄存器,读为0.
如果对应的引脚配置为输出,则向切换寄存器的该位写1,将把对应引脚拉成反向电平。即如果引脚输出是低电平,对相应的切换寄存器位写1,把该引脚拉成高电平;类似的,如果引脚输出是高电平,对相应的切换寄存器位写1,把该引脚拉成低电平。写0则无效GPAQUAL 输入限制寄存器,每个I/O 端口都有一个输入限制寄存器。用于生成采样限制信号。所示,为了对信号进行限制,输入要与SYSCLKOUT同步,然后以GPxQUAL寄存器规定的周期进行采样。采样窗口为6个采样点的宽度,只有当所有6 个采样点的采样相同时,输入才会发生改变。因为输入的信号是异步的,为了同步,在限制采样窗开始之前要有一个SYSCLKOUT 的延时 3、谈一下实验中延迟调整的体会。
在主程序中,找到含有带参数的延时函数,改变参数的大小,通过运行,观察流水灯变化的速率,逐渐达到实验中合适的延迟速率。当延时时间过小时,LED的闪烁不明显,从视觉上看感觉是“常亮”。
因篇幅问题不能全部显示,请点此查看更多更全内容