您好,欢迎来到年旅网。
搜索
您的当前位置:首页DSP2812实验指导书第二部分

DSP2812实验指导书第二部分

来源:年旅网
第2章 F2812-A评估板硬件使用指导

2.1 F2812-A评估板技术指标

                

主处理芯片:TMS320F2812,运行速度为150M; 工作速度可达 150MIPS; 片上RAM 18k*16bit;

片上扩展RAM存贮空间K×16Bit;

自带16路12bit A/D, 最大采样速率12.5msps; 4路的DAC7617转换,100K/S,12Bit; 两路UART串行接口,符合RS232标准; 16路PWM输出; 1路CAN接口通讯;

片上128*16bit FLASH,自带128位加密位; 设计有用户可以自定义的开关和测试指示灯; 4组标准扩展连接器,为用户进行二次开发提供条件;

具有IEEE1149.1相兼容的逻辑扫描电路,该电路仅用于测试和仿真; +5V电源输入,内部+3.3V、+1.6V电源管理; 4层板设计工艺,工作稳定可靠;

具有自启动功能设计,可以实现脱机工作;

可以选配多种应用接口板,包括语音板,网络板等。

2.2 F2812 –A评估板原理图和实物图

一. F2812-A评估板实物图 JP1 P4 扩展插座 ADREFIN1 ADREFLO1 模式跳线设置 P2 扩展插座 标准RS-232 5V电源开关 MP/MC1 MCXA1 SCITXDA1 SPICLKA1 SPISTEA1 模式跳线设+5V电 源插座 JP2 CAN接复位按DS1-DS4 用户可控 指示灯 JTAG 仿真插头

电源 指示灯 P3 扩展插座 U9四路用户可控开关 P1 扩展插座 图2.2.1 F2812-A评估板实物图

二. F2812-A器件分布图

图1.2 ICETEK-F2812-A器件分布图

图2.2.2 F2812-A器件分布图

三. F2812-A评估板原理框图

TMS320F2812PGFA JTAG SRAM:K*16bit 数据 地址 控制 JTAG PORT 片上资源: 主频:150MHz RAM:128K*16bit FLASH:128*16bit CAN 扩展DSP引脚 I/O PWM SPI SPI D/A: 4路, 12bit 16路,12bit A/D DSP总线 CPLD RS232 CAN 驱动 驱动 LED 4个用户可控开关

图2.2.3 F2812-A评估板原理框图

2.3 F2812-A评估板接口说明

以下将详细说明这些外围接口的功能和特征定义。首先,表2-3-1 归纳总结了这些跳线和功能分类,接口位置请参考图2.2.1

表2-3-1:接口和功能分类

功能分类 电源接口 外设接口 接口名称 +5v电源插座 标准RS-232 P1扩展插座 总线接口 P2扩展插座 P3扩展插座 P4扩展插座 指示灯 电源指示灯 用户可控指示灯 辅助接口 开关 跳线设置 JTAG仿真接口 用户可控开关 复位按钮 JP1 JP2 ADREFLO1 模式跳线设置2 ADREFIN1 5V电源输入 九针D型异步串口(可以和计算机直接通讯) 用于二次开发的34芯外扩总线 用于二次开发的34芯外扩总线 用于二次开发的34芯外扩总线 用于二次开发的34芯外扩总线 接通电源后会亮 共有四个 DSP仿真器从此处接入 共有四个 手动复位开关 SCI复用选择 Can总线使能。 2812芯片上管脚ADCLO AD参考低电压输入,默认2,3连接。 2812芯片上管脚ADCBGREFIN, 测试端,可以悬空或2,3脚连接 接口定义 MP/MC1 MDXA1 模式跳线设置1 SCITXDA1 SPICLKA1 2812芯片上管脚XMP/MC, MP/MC工作方式选择,默认2,3连接 2812芯片上管脚MDXA, 默认1,2连接。 2812芯片上管脚SCITXDA, 默认1,2连接。 2812芯片上管脚SPICLKA, 默认1,2连接。 2812芯片上管脚SPISTEA, 默认1,2连接。 SPISTEA1

下面将分别介绍这些接口:

1. +5v电源插座: 这个接口用于接入为整个板子供电的电源,电源电压为+5V,标准配

置的电源电流为1A,如果不使用随板提供的电源,请注意电源的正负极性和电流

的大小。下面是这个接口的插孔示意图:

+5V

地(GND)

图2.3.1 电源插孔示意图

2. 标准RS-232: 9针D型连接器,异步串口连接器,符合RS-232规范,输出电平

为正负12V.下面是9针连接器的管脚定义:

图2.3.2 异步串口连接器示意图

1 2 3 4 5 6 7 8 9 表2-3-2 DB9管脚定义表 管脚号 1 2 3 4 5 6 7 8 9 管脚定义 NC TxD RxD NC GND NC NC NC NC 说明 无连接 数据输出引脚,与对方的输入脚连接 数据输入引脚,与对方的输出脚连接 无连接 共地端 无连接 无连接 无连接 无连接 3. P1扩展插座: 34芯扩展总线接口。P1接口主要是扩展评估板上空闲的DSP外设引

脚,以便于定制用户的硬件环境。

注意:由于这组引脚是直接来自于F2812 DSP芯片,因此,这些引脚为TTL 3.3V标

准,其输出最高电压为3.3V。如果要接入5V器件,请在外接时注意电平转

换。

表2-3-3 P1的管脚定义和说明 管脚号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 管脚名 +5V电源 +5V电源 PWM1 PWM2 PWM3 PWM4 PWM5 PWM6 PWM7 PWM8 PWM9 T1PWM T2PWM T3PWM T4PWM T1CTRP GND GND T2CTRP T3CTRP T4CTRP C1CTRIP C2CTRIP C3CTRIP TDIRA TCKINA SCITXB SCIRXB SPSIMA SPSOMA SPICLKA SPISTEA GND GND 说明 由POWER提供的+5V电源 由POWER提供的+5V电源 PWM1输出引脚 PWM2输出引脚 PWM3输出引脚 PWM4输出引脚 PWM5输出引脚 PWM6输出引脚 PWM7输出引脚 PWM8输出引脚 PWM9输出引脚 T1输出引脚 T2输出引脚 T3输出引脚 T4输出引脚 定时器1比较输出 地线 地线 定时器2比较输出 定时器3比较输出 定时器4北京输出 比较器1比较输出 比较器2比较输出 比较器3比较输出 定时器计数方向选择信号A 定时器时钟输入A 异步串口TX端B 异步串口RX端B SPI 从收主发 端 SPI 主发从收 端 SPI 时钟 SPI Slave设备发送使能 地线 地线

4. 2扩展插座: 34芯扩展总线接口。P2接口主要是AD和DA接口,P2中扩展了所有

的AD和DA引脚。请注意评估板的对采集信号的要求。

表2-3-4 P2的管脚定义和说明 管脚号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 名称 VCCA VCCA CAP1 CAP2 ADINA2 ADINA3 ADINA4 ADINA5 ADINA6 ADINA7 ADINB0 ADINB1 ADINB2 ADINB3 ADINB4 ADINB5 AGND AGND ADINB6 ADINB7 ADREFIN ADCREFLO ADINA0 ADINA1 DAOUT1 DAOUT2 DAOUT3 DAOUT4 CAP3 CAP4 CAP5 CAP6 AGND AGND 说明 模拟电源+5V 模拟电源+5V CAP输入端1 CAP输入端2 模拟输入通道A2 模拟输入通道A3 模拟输入通道A4 模拟输入通道A5 模拟输入通道A6 模拟输入通道A7 模拟输入通道B0 模拟输入通道B1 模拟输入通道B2 模拟输入通道B3 模拟输入通道B4 模拟输入通道B5 模拟地 模拟地 模拟输入通道B6 模拟输入通道B7 测试引脚,必须悬空 模拟参考低电压输入 模拟输入通道A0 模拟输入通道A1 模拟输出通道1 模拟输出通道2 模拟输出通道3 模拟输出通道4 CAP输入端3 CAP输入端4 CAP输入端5 CAP输入端6 模拟地 模拟地

a) P3扩展插座: 34芯扩展总线接口。包含16根地址线和16根数据线(A16,A17, A18扩展在P4),可以用于读入和输出并行的数据。

注意:这个插座上的地址线是由F2812芯片提供的,如果您在外部扩展的话,请

注意F2812的地址线只能输出3.3V的电平。

表2-3-5 P3的管脚定义和说明

管脚号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 名称 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 GND GND D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 说明 F2812地址线A0 F2812地址线A1 F2812地址线A2 F2812地址线A3 F2812地址线A4 F2812地址线A5 F2812地址线A6 F2812地址线A7 F2812地址线A8 F2812地址线A9 F2812地址线A10 F2812地址线A11 F2812地址线A12 F2812地址线A13 F2812地址线A14 F2812地址线A15 数字地 数字地 F2812数据线D0,双向总线 F2812数据线D1,双向总线 F2812数据线D2,双向总线 F2812数据线D3,双向总线 F2812数据线D4,双向总线 F2812数据线D5,双向总线 F2812数据线D6,双向总线 F2812数据线D7,双向总线 F2812数据线D8,双向总线 F2812数据线D9,双向总线 F2812数据线D10,双向总线 F2812数据线D11,双向总线 F2812数据线D12,双向总线 F2812数据线D13,双向总线 F2812数据线D14,双向总线 F2812数据线D15,双向总线

6. 展插座:34芯扩展总线接口。包括F2812外部扩展总线的控制线、McBSP接口线、

外部中断和外部复位等重要的引脚信号。

注意:这里的引脚都是由DSP直接引出的,在和外部设备连接时注意电平转换。

表2-3-6 P4管脚定义和说明 管脚号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 管脚定义 VCC VCC XZCS01 XZCS2 XZCS6 A16 WE RD R/W A17 READY A18 RS EXT_RST NMI INT1 GND GND INT2 TDIRB TCLKINB XF MDRA MDXA PWM10 PWM11 PWM12 MCLKRA MFSXA MCLKXA MFSRA CLKOUT GND GND +5V电源 +5V电源 XINTF 0区1区选择信号 XINTF 2区 选择信号 XINTF 6区7区选择信号 F2812地址线A16 写信号,低电平有效 读信号,低电平有效 F2812的读/写信号,常为高电平。低电平时写有效,高电平时读有效。 F2812地址线A17 READY信号线 F2812地址线A18 Reset信号(输入);Watchdog Reset信号(输出) 外部输入DSP评估板的复位信号 不可屏蔽中断 外部中断1 数字地 数字地 外部中断2 定时器方向选择B 定时器时钟输入B F2812同名引脚 McBsp 数据接收端 McBsp 数据发送端 PWM10输出引脚 PWM11输出引脚 PWM12输出引脚 McBsp 接收时钟 McBsp 发送帧同步 McBsp 发送时钟 McBsp 接收帧同步 F2812的时钟输出 数字地 数字地 管脚说明

7. 指示灯:如果评估板工作正常,此灯常亮。

8. 用户可控指示灯: 用户指示灯,在板上有4个可编程的指示灯,分别为DS1..DS4,这

4 个指示灯的开关由F2812编程控制。

9. JTAG仿真接口:F2812的仿真接口,用于连接ICETEK-5100系列的仿真器或兼容产

品。注意,使用的仿真器必须支持3.3V仿真。

10.JP2:Can总线使能。当1、2短路时禁止Can总线工作;当2、3短路时,允许Can

总线工作。 11.JP1:SCI复用选择。当JP1的1,2 连接时,允许第2个SCI工作;当JP1的2,3

连接时,禁止第2个 SCI工作。 12.用户可控开关:4个用户开关输入。可以用作DSP的输入信号。软件可以读取它的状

态。当开关处于断开状态,即OFF状态时,开关输出高电平,DSP读到逻辑“1”,而

当开关处于连通状态,即ON状态时,开关输出低电平,DSP读到逻辑“0”。 13. 位按钮:手动复位开关。 14. 式跳线设置1:

MP/MC1,MCXA1,SCITXDA1,SPICLKA1,SPISTEA1这几个跳线都是2812芯片上对应管脚引出,在2812的datasheet手册中可以查阅到(手册在配套光盘“外围器件参考资料”目录中有提供,或从www.ti.com上下载最新版本的文档)。

每个跳线的1,2,3脚定义:靠近名称这边(例如:MP/MC1)为跳线1脚,

往右一个为2脚,再往右一个是3脚。1、2脚相连为设置该2812管脚高电平,2、3脚相连为设置该2812管脚低电平

例如:

MP/MC1 1 2 3 15.模式跳线设置2:

ADREFIN1, ADREFLO1这几个跳线都是2812芯片上对应管脚引出,在2812的datasheet手册中可以查阅到(手册在配套光盘“外围器件参考资料”目录中有提供,或从www.ti.com上下载最新版本的文档)。

每个跳线的1,2,3脚定义:靠近三个小电阻这边为跳线1脚,往右一个为2

脚,再往右一个是3脚。1、2脚相连为设置该2812管脚高电平,2、3脚相连为设置该2812管脚低电平。

例如: ADREFLO1 1 2 3 16.F2812-A评估板跳线及开关位置示意图:

下图中说明了F2812-A评估板中,跳线和开关以及扩展口的具体描述。其中MP/MC1 与 SPITEA1之间自下而上分别是MDXA1,SCITXDA1,SPICLKA1。

P4 P2 33 1 33 1 34 2 34 2 J P1 1 ADREFIN1 1 ON

ADREFLO1 1 TMS320 OFF

F2812PGFA SPISTEA1 1 MP/MC1 1 JP3 1

JP2 1 P3 P1

33 1 33 1 34 2 34 2

图2.3.3 跳线及开关位置示意图

2.4 F2812-A评估板的存储空间定义及寄存器映射说明

一、 F2812-A评估板的内存映射

F2812-A评估板(以下简称评估板)的内存映射图如下,与TMS320F2812A芯片不同的是,所有的寄存器和存储器全部映射在XINTF ZONE 2译码的空间内,占用TMS320F2812A芯片的80000h-0FFFFFh地址单元中。因此,如果您需要使用DSP芯片的管脚外扩硬件设备的话,请避免使用这部分地址资源。

对于这部分地址单元,基本上分为两个部分,从80000h到0BFFFFh共256K的地址单元分配给片外扩展存储器。这里有一个声明,一般来说,在出厂时,板上所连接的存储器一般为K的存储器,因此这部分的实际有效内存是80000h-8FFFFh。为了特殊的需求,这里最多可以扩展到256K的实际存储器。

从C0000h到FFFFFh是外围其他设备的寄存器接口,这里包含一个12位的模数转换器DAC7616/7,以及四位的状态显示数码管和四位可读入数字量的开关。

下面是评估板的内存映射图,红色部分是板子上有外扩硬件资源的地址空间,其他部分来自于TMS320F2812A芯片的数据手册(data sheet),关于与芯片相关的地址空间的详细介绍,请参考tms320f2812数据手册的相关说明。

块起始地址 0x00 0000 0x00 0040 0x00 0400 0x00 0800 片内存储空间(On-Chip) 数据空间 程序空间 M0 向量 –随机存储器(32*32) (当 VMAP = 0时有效) M0 SARAM(单存取随机存储器) 1K*16 M1 SARAM(单存取随机存储器) 1K*16 外设寄存器组 0 (2K*16) 外设向量 (PIE Vector) (256*16) (当VMAP=1,ENPIE=1时有效) 0x00 0E00 保留 片外空间0(8K*16 XZCS0AND1) 0x00 2000 保留 片外空间1(8K*16 XZCS0AND1)(保护) 0x00 6000 0x00 7000 0x00 8000 外设寄存器组 1 (4K*16)受保护 外设寄存器组 2 (4K*16)受保护 (安全块) 保留 0x00 2000 0x00 4000 无效 保留 片外存储空间(XINTF) 数据空间 程序空间 相当于TMS320F24x/LF240x数据存储空间 0x00 0D00 L0 SARAM(单存取随机存储器) 4K*16 相当于块起始地址 0x00 9000 片内存储空间(On-Chip) L1 SARAM(单存取随机存储器) 4K*16 (安全块) 片外存储空间(XINTF) 片外空间2(0.5M*16 XZCS2) 片外扩展存储器(256K*16) 0x00 A000 保留 片外空间2(0.5M*16 XZCS2) 片外扩展寄存器(256K*16) 片外空间6(0.5M*16 XZCS6AND7) 0x3D 7800 0x3D 7C00 0x3D 8000 相当于TMS320F24x/LF240x程序存储空间 0x3F 7FF8 0x3F 8000 0x3F A000 0x3F F000 0x3F FFC0 OTP ROM (1K *16,安全块) 保留 片上Flash( 128K*16安全块) 128位加密字 H0 SARAM(单存取随机存储器) 8K*16 (安全块) 保留 启动代码(4K*16)当MP/MC=0时有效 BROM向量,(32*32)当VMAP =1,MP/MC=0,ENPIE=0时有效 片外空间7(16K*16 XZCS6AND7)当MP/MC=1时有效 外部扩展向量(32*32)当VMAP=1,MP/MC=,ENPIE=0时有效 保留 0x08 0000 0x0c 0000 0x10 0000 0x18 0000 0x3F C000

图2.4.1 评估板的内存映射图

① 存储器不能任意调整

② 保留区为今后的扩展做准备,用户应用不应该访问这些区域

③ 启动代码和片外扩展空间7依赖MP/MC引脚的状态来选择其中之一,不能同时映射

到DSP的地址空间中 ④ 外设寄存器组 0、1和2仅仅作为数据存储器访问,不能作为程序存储器访问。 ⑤ 保护表示为了配合流水线的工作在读操作之后的写操作将会被妥善的处理, ⑥ 一部分存储器被EALLOW保护,(参见TMS320F2812数据手册)是不希望在初始化之后再次改变它们的值

⑦ 片外空间0和1,6和7共享相同的片选信号,因此,它们虽然地址不同,但却是相同

存储器的镜像 ( mirrored locations)。

二. 片外扩展存储器

板上在芯片外扩展了K*16位的存储器,存储器占用的地址空间共有256K,因此片外存储器实际占用的地址是0x080000-0x08FFFF,其他的部分暂时没有使用,如果有特殊需要,可以最多放置256K的存储器,或者0x90000-0xBFFFF可以用作其他外围设备的译码空间。

片外扩展的存储器型号是IS61LV16,这种器件可以按照8位或16位的方式使用,它的电平可以和通常的3.3V器件连接。存储器与DSP连接的示意图如下所示。

XZCS2 XWE

XRD TMS320F2812 A15-A0 D15-D0 地址译码 CE WE OE IS61LV16 A15-A0 D15-D0 图2.4.2 存储器与DSP连接的示意图

外扩的存储器可以实现随机访问,这部分映射空间可以在DSP上电复位后的任何时候访问,此时不需要对DSP做任何初始化。如果需要这部分存储器在高速的状态下运行,需要修改DSP的存储器等待状态。具体设置DSP的存储器和数值可以参考TMS320F2812数据手册。一般来说,为保证存储器的稳定读写,当DSP在最高速状态运行时,只需要1个软件等待状态。

三. 外扩硬件的存储器映射寄存器总结

除了外部扩展存储器之外,板上还扩展了一些数据和控制端口,这些端口用来驱动板上的

其他外设。在这一节我们给出所有外扩寄存器的地址和数据信息,详细的编程分别在接下来的

其他小节说明。下面是所有的外扩寄存器列表和简单的介绍:

表2-4-1 外扩寄存器列表

外扩寄存器地址 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 注意:0xc0003---0xc0007这几个寄存器定义在第五章的DA说明中有介绍。

F2812-A评估板提供了四位的状态显示数码管和四位可读入数字量的开关,这些接口不使用TMS3202812的芯片管脚实现。下面是显示数码管和开关的寄存器定义和说明:

7 4 无效位 3 0 LEDR3 LEDR2 LEDR1 LEDR0 R/W-0 R/W-0 R/W-0 R/W-0

图2.4.3 LEDR寄存器:地址是0xC0000

图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值

位 3 2 1 0 名称 LEDR3 LEDR2 LEDR1 LEDR0 四位显示数码管。向某位写“1”,点亮相应的发光管,写“0”,则使数码管熄灭。这个寄存器可读,在使用时可以通过读操作得到最后一次写操作的值。 说明 图2.4.4 LEDR寄存器说明

7 4 无效位

3 0 SWR3 R-x

SWR2 R-x

SWR1 R-x

SWR0 R-x

图2.4.5 SWR寄存器: 地址是0xC0001

图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值

位 3 2 1 0 名称 SWR3 SWR2 SWR1 SWR0 说明 四位开关。当开关连通(处于ON一侧)时,寄存器读入“0”,当开关断开(不处于ON一侧)时,寄存器读入“1”。寄存器可读,在使用时可以通过读操作得到四个开关的当前状态。 图2.4.6 SWR寄存器: 地址是0xC0001

2.5 数模转换器DAC7616/7简介和编程

作为一个完整的系统,评估板提供了数模转换器,以便于用户连接模拟I/O输出。外扩数模转换器的型号是DAC7616或DAC7617。这两个芯片在管脚上仅有很小的差异,评估板

综合了这两者之间的特征。无论评估板上焊接了哪一颗芯片,对于我们来说他们的编程和控制都是一致的。

关于数模转换器的详细信息,可以参考document目录下的dac目录中的芯片数据手册。在连接到评估板上之后,主要的技术指标如下:

表2-5-1 DAC7616/7的主要参数

低功耗设计: 转换时间 转换精度 芯片工作温度 3mW 10s to 0.012% 12位线性转换,同时4路转换 –40C to +85C 电源 单电源+3V供电

关于数模转换器的详细信息,可以参考document目录下的dac目录中的芯片数据手册。在连接到评估板上之后,主要的技术指标如下:

表2-5-2 DAC7616/7的主要技术指标

低功耗设计: 转换时间 转换精度 芯片工作温度 电源 操作方式 输出电压 3mW 10s to 0.012% 12位线性转换,同时4路转换 –40C to +85C 单电源+3V供电 并行操作 0----+5V之间 注意:电压值在0-4.5V之间保持线性,如果需要特殊的电压,需要对板子作修改。

DAC7616/7芯片本身是串行接口,其接口速率小于10M。为了方便用户的使用,评估板修改了数模转换器的操作方法,改为并行接口的方式。因此,在介绍评估板上的数模转换编程的时候,将说明并行接口的控制方式,这里会和芯片数据手册上的编程方式有所不同。下图是DSP和数模转换器连接的示意图:

CLKOUT XZCS2 A18-A12 XWE XRD F2812 D7-D0 译码逻辑 时钟产生器 CLK DAC7616/7 串并变换 LDAC LOADREG CS DATIMEN DATIMCNDADATL DADATH DACTL 图2.5.1 DSP和数模转换器连接示意图

其中,DATIMEN、DATIMCNT、DADATL、DADATH和DACTL是DSP可以访问的寄存器,它们分为两组,一组由DATIMEN和DATIMCNT组成,利用DSP的CLKOUT引脚驱动数模转换器的时钟。另一组由DADATL、DADATH和DACTL组成,它们负责启动数模转换并提供要转换的数字量。下面对这些寄存器的具体使用方法逐一说明。

7 1

0

保留位 图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值

TIMOE R/W-0 图2.5.2 DATIMENR寄存器:地址0xC0004 位 0 名称 TIMOE 说明 这个控制位控制数模转换器的时钟,当此位为“0”时,数模转换器的时钟按照DATIMCNTR寄存器的数值分频,操作数模转换器的DACTL寄存器可以产生送给DAC7616/7芯片SCK的时钟。此时DATIMCNTR寄存器不能修改。当此位为“1”时,数模转换器的时钟输出被关闭,DATIMCNTR寄存器可以修改,直到此位再次置“0”后,按照新的DATIMCNTR寄存器值分频输出。 图2.5.3 DATIMENR寄存器说明

注意:数模转换器的时钟以DSP芯片的CLKOUT引脚作为驱动源,分频后使用,因此,

如果使用数模转换器,请不要在DSP程序中关闭或修改CLKOUT的输出特性。

7 CNT7 R/W-0 6 CNT6 R/W-0 5 CNT5 R/W-0 4 CNT4 R/W-0 3 CNT3 R/W-0 2 CNT2 R/W-0 1 CNT1 R/W-0 0 CNT0 R/W-1 图2.5.4 DATIMCNTR寄存器:地址0xC0005

图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值

位 7-0 名称 CNT7..CNT0 说明 这个寄存器保存对DSP芯片CLKOUT引脚的分频值,上电复位时为“0x1”;当DATIMEN寄存器的TIMOE位为“0”时,此寄存器各位不能修改,分频器按照这个寄存器的值工作,并输出数模转换器的数字时钟。当DATIMEN寄存器的TIMOE位为“1”时,此寄存器各位可以修改,分频器不工作。直到DATIMEN寄存器重新置“0”。此寄存器的值可以是1-255,当寄存器值为“0”时,分频器不工作。 图2.5.5 DATIMCNTR寄存器说明

作为数模转换器的时钟,当这个寄存器的值为“0x1”时,输出的波形为输入频率的1/12。注意DAC7616/7芯片的最快时钟频率不应该超过10MHz。一般来讲,上电复位后的时钟分频可以满足大多数需要。

7 0 无效 W-x 图2.5.6 DACTLR寄存器:地址0xC0003

图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值

这个寄存器的所有数据位都无效,既不可写也不可读。对这个寄存器执行读或写操作都会产生一个内部信号,这个信号将通知串并变换模块启动、工作,把DADATLR和DADATHR寄存器里的值送到数模转换器上,并且启动数模转换器工作。对于这个寄存器的任何位进行写操作都不能够读到返回值。同时,读这个寄存器的内容也不固定。

7 D7 6 D6 5 D5 4 D4 3 D3 2 D2 1 D1 0 D0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

图2.5.7 DADATLR寄存器:地址0xC0006

图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值 位 7-0 名称 D7-D0 说明 这个寄存器保存要进行数模转换的数据的低8位。这里的值与DADATHR寄存器中的低4位一起构成12位数模转换的数字量。上电复位时为0x0。注意,写着个寄存器仅仅代表要转换的数据已经锁存。此时数据并未送到数模转换芯片上。这个寄存器的值可以回读,回读的值是最后一次写进这个寄存器中的值。 图2.5.8 DADATLR寄存器:地址0xC0006

7 CHN_NUM1 R/W-0 6 CHN_NUM0 R/W-0 5 4 保留 3 D11 R/W-0 2 D10 R/W-0 1 D9 R/W-0 0 D8 R/W-0 图2.5.9 DADATHR寄存器:地址0xC0007

图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值

位 名称 说明 这个部分寄存器保存要进行数模转换的数据的高4位。这里的值与DADATLR寄存器中的值一起构成12位数模转换的数字量。上3-0 D11-D8 电复位时为0x0。注意,写着个寄存器仅仅代表要转换的数据已经锁存。此时数据并未送到数模转换芯片上。这个寄存器的值可以回读,回读的值是最后一次写进这个寄存器中的值。 5-4 保留 保留 这个部分指定进行数模转换的通道号。通道号如下: CHN_NUM1 7-6 CHN_NUM1-CHN_NUM0 0 0 1 1 CHN_NUM2 0 1 0 1 通道号 第1通道 第2通道 第3通道 第4通道 图2.5.10 DADATHR寄存器说明

上面是这些寄存器的说明,在编程中,当数据锁存到DADATLR和DADATHR寄存器

时,并没有启动数据转换,只有在对DACTL寄存器操作之后,数模转换才得以实现,同时,数据直接转换,送到模拟通道上。如果希望得到上一次的转换通道和数据,可以通过读DADATLR和DADATHR寄存器来得到。

2.6 语音编解码芯片TLV320AIC23编程指南

(注意:此芯片是在一个语音背板上扩展的,背板型号为:ICETEK-AIC23-E)

语音背板上有一个语音编解码芯片TLV320AIC23。TLV320AIC23是一个高性能的多媒体数字语音编解码器,它的内部ADC和DAC转换模块带有完整的数字滤波器。(digital interpolation filters)数据传输宽度可以是16位,20位,24位和32位,采样频率范围支持从8khz到96khz。在ADC采集达到96khz时噪音为90-dBA,能够高保真的保存音频信号。在DAC转换达到96khz时噪音为100-Dba,能够高品质的数字回放音频,在回放时仅仅减少23 mW。

TLV320AIC23详细指标:

+高品质的立体声多媒体数字语音编解码器 *在ADC采用48 kHz采样率时噪音90-dB *在DAC采用48 kHz采样率时噪音100-dB

*1.42 V – 3.6 V核心数字电压: 兼容TI F28x DSP内核电压 *2.7 V – 3.6 V缓冲器和模拟:兼容TI F28x DSP内核电压 *支持8-kHz – 96-kHz的采样频率 +软件控制通过TI McBSP接口

+音频数据输入输出通过TI McBSP接口

立体声接口图示:

右声道 左声道

AIC23芯片是通过2812的mcbsp接口来控制和传输音频数据的。下表是AIC23芯片的映射寄存器地址及名称。

表2-6-1 TLV320AIC23的 映射寄存器定义

ADDRESS 0000000 0000001 0000010 0000011 0000100 0000101 0000110 0000111 0001000 0001001 0001111 REGISTER 左声道输入控制 右声道输入控制 左耳机通道控制 右耳机通道控制 模拟音频通道控制 数字音频通道控制 启动控制 数字音频格式 样本速度控制 数字界面激活 初始化寄存器 图 2.6.1 立体声接口

表2-6-2 左声道输入控制(Address: 0000000)

8

7

6

5

4

3

2

1

0

LRS LIM X X LIV4 LIV3 LIV2 LIV1 LIV0 R/W-0 R/W-1 R/W-0 R/W-0 R/W-1 R/W-0 R/W-1 R/W-1 R/W-1 图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值 LRS:左右声道同时更新0 = 禁止1 = 激活 LIM:左声道输入衰减

0 = Normal

1 = Muted

LIV[4:0]: 左声道输入控制衰减 (10111 = 0 dB缺省)

最大11111 = +12 dB最小00000 = –34.5 dB

表2-6-3 右声道输入控制(Address: 0000001)

8 7 6 5 4 3 2 1 0 RLS RIM X X RIV4 RIV3 RIV2 RIV1 RIV0 R/W-0 R/W-1 R/W-0 R/W-0 R/W-1 R/W-0 R/W-1 R/W-1 R/W-1 图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值 LRS:左右声道同时更新0 = 禁止1 = 激活 LIM:右声道输入衰减

0 = Normal

1 = Muted

LIV[4:0]: 右声道输入控制衰减 (10111 = 0 dB缺省)

最大11111 = +12 dB最小00000 = –34.5 dB

表2-6-4 左耳机通道控制 (Address: 0000010)

8 7 6 5 4 3 2 1 0 LRS LZC LHV6 LHV5 LHV4 LHV3 LHV2 LHV1 LHV0 R/W-0 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-0 R/W-0 R/W-1 图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值 LRS:左右耳机通道控制 0 = 禁止1 = 激活 LZC:0点检查 0 = Off 1 = On

LHV[6:0]:左耳机通道控制音量衰减(1111001 = 0 dB default)

最大1111111 = +6 dB 最小0110000 = –73 dB (mute)

表2-6-5 右耳机通道控制(Address: 0000011)

8 7 6 5 4 3 2 1 0 RLS RZC RHV6 RHV5 RHV4 RHV3 RHV2 RHV1 RHV0 R/W-0 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-0 R/W-0 R/W-1 图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值 LRS:左右耳机通道控制 0 = 禁止1 = 激活 LZC:0点检查 0 = Off 1 = On

LHV[6:0]:右耳机通道控制音量衰减(1111001 = 0 dB default)

最大1111111 = +6 dB 最小0110000 = –73 dB (mute)

表2-6-6 模拟音频通道控制 (Address: 0000100)

8 X 7 STA1 6 STA0 R/W-0

5 STE R/W-0

4 DAC R/W-1

3 BYP R/W-1

2 INSEL R/W-0

1 MICM R/W-1

0 MICB R/W-0

R/W-0 R/W-0

STA[1:0] STE DAC BYP INSEL MICM MICB 侧音衰减 侧音激活 DAC选择 旁路 模拟输入选择 麦克风衰减 麦克风增益 00= –6 dB 0 = 禁止 0 = DAC关闭 0 = 禁止 0 = 线路 0 = 普通l 0=OdB

01= –9 dB 1 = 激活 1 = DAC选择 1= 激活 1= 麦克风 1 = 衰减 1 =20dB

10= –12 dB

11= –15 dB

表2-6-7 数字音频通道控制 (Address: 0000101)

8 X R/W-0 7 X R/W-0 6 X R/W-0 5 X R/W-0 4 X R/W-0 3 2 1 0 DACM DEEMP1 DEEMP0 ADCHP R/W-0 R/W-1 R/W-0 R/W-0 图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值 DACM:DAC软件衰减 0 = 禁止1 = 激活

DEEMP[1:0]:De-emphasis控制00=禁止01=32kHz 10 = 44.1kHz 11= 48 Khz ADCHP:ADC滤波器 0 = 禁止1 = 激活 X:保留

表2-6-8 启动控制 (Address: 0000110)

8 7 X OFF R/W-0 R/W-0 OFF CLK OSC OUT DAC ADC MIC LINE

6 5 CLK OSC R/W-0 R/W-0 设备电源 时钟 振荡器 输出 DAC ADC 麦克风输入 Line输入

4 3 OUT DAC R/W-0 R/W-0 0= On 0= On 0= On 0= On 0= On 0= On 0= On 0= On

2 ADC R/W-1 1 MIC R/W-1 1=OFF 1=OFF 1=OFF 1=OFF 1=OFF 1=OFF 1=OFF 1=OFF

0 LINE R/W-1 表2-6-9 数字音频格式(Address: 0000111)

8 X R/W-0 7 X R/W-0 6 5 4 MS LRSWAP LRP R/W-0 R/W-0 R/W-0 3 IWL1 R/W-0 2 IWL0 R/W-0 1 FOR1 R/W-0 0 FOR0 R/W-1 图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值 MS:主从选择 0 = 从模式 1 = 主模式

LRSWAP:DAC左/右通道交换 0 = 禁止1 = 激活 LRP: DAC左/右通道设定 0 = 右通道在LRCIN高电平 1 =右通道在LRCIN低电平 IWL[1:0]:输入长度

00 = 16 bit 01 = 20 bit 10 = 24 bit 11 = 32 bit

FOR[1:0]:数据初始化 11 = DSP初始化, 帧同步来自于两个字

10 = I2S初始化,

01 = MSB优先 ,左声道排列00 = MSB优先 ,右声道排列

X:保留

表2-6-10 样本速度控制(Address: 0001000)

8 X 7 6 CLKOUCLKIN T 5 SR3 4 SR2 3 SR1 2 SR0 1 0 BOSR USB/Normal R/W-0 R/W-0 R/W-0 R/W-1 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 CLKIN 时钟输入分割 0 = MCLK 1 = MCLK/2 CLKOUT 时钟输出分割 0 = MCLK 1 = MCLK/2 SR[3:0] 样本速度控制 BOSR 基础速度比率 USB模式: 0= 250 fs 1= 272 fs 普通模式: 0= 250 f 1= 384 fs USB/Normal 时钟模式选择 0= 普通 1= USB X 保留

表2-6-11 数字界面激活 (Address: 0001001)

8 7 6 5 4 3 2 1 0 X X X X X X X X ACT R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值 ACT:激活控制 0 = 停止 1 = 激活 X: 保留

表2-6-12 初始化寄存器(Address: 0001111)

8 RES

7 RES

6 RES

5 RES

4 RES

3 RES

2 RES

1 RES

0 RES

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 图例:R读允许,W:写允许,R/W:读写允许,-0:复位值,-x没有固定值 RES :写000000000到这个寄存器引发初始化

关于TLV320AIC23的详细信息,请参考随板软件中的数据手册。下图是2812与TLV320AIC23的连接示意图。

SCL SDA

TMS320F2812 CLKR0 CLKX0 FSX0 FSR0 DX0

DR0 SCLK SDIN MODE CS TLV320AIC23 BCLK LRCOUT DIN DOUT GND

图2.6.2 2812与TLV320AIC23的连接示意图

第3章 F2812-A-USB-EDU 教学系统软件实验指导

3.1 实验设备安装

一.开发环境

开发TMS320C28xx应用系统一般需要以下设备和软件调试工具:

1. 通用PC一台,安装Windows9x或Windows2000或WindowsXP操作系统及常用软件(如:WinRAR等)。

2.TMS320C28xx评估板及相关电源。如:ICETEK-F2812-A评估板。 3.通用DSP仿真器一台及相关连线。如:ICETEK-5100USB仿真器。 4.控制对象(选用)。如:ICETEK-CTR控制板(在2812实验箱中已包含)。 5.TI的DSP开发集成环境Code Composer Studio。如:CCS2.21 for ’C2000。 6.仿真器驱动程序。(见配套光盘) 7.实验程序及文档。

二. DSP教学实验箱的硬件连接

1.连接电源:打开实验箱,取出三相电源连接线(如右图),将电源线 的一端插入实验箱外部左恻箱壁上的电源插孔中。确认实验箱面板上电 源总开关(位于实验箱底板左上角)处于“关”的位置,连接电源线的另 一端至220V交流供电插座上,保证稳固连接。

2.使用电源连接线(如右图,插头是带孔的)连接各模块电源:确认 实验箱总电源断开。连接ICETEK-CTR板上边插座到实验箱底板上+12V 电源插座;ICETEK-CTR板下边插座到实验箱底板上+5V电源插座;如

使用PP(并口)型仿真器,则连接仿真器上插座到实验箱底板上+5V电源插座; 连接DSP评估板模块电源插座到实验箱底板上+5V电源插座。注意各插 头要插到底,防止虚接或接触不良。

3.连接DSP评估板信号线:当需要连接信号源输出到A/D输入插座 时,使用信号连接线(如右图)分别连接相应插座。

4、接通电源:检查实验箱上220V电源插座(箱体左侧)中保险管是否完好,在连接电源线

以后,检查各模块供电连线是否正确连接,打开实验箱上的电源总开关(位于实验箱底板左上角),使开关位于“开”的位置,电源开关右侧的指示灯亮。

三.构造DSP开发软件环境

1.安装CCS软件(此文档假定用户将CCS安装在默认目录C:\\TI中,同时也建议用户按照默认安装目录安装)

(1) 在硬盘上建立一个临时目录,如:c:\\4install

(2) 将实验箱附带的教学光盘插入计算机光盘驱动器。

(3) 打开教学光盘的“CCS开发软件”目录,用鼠标右键单击文件ccs2000.exe选择

“用WinRAR打开”。在打开的窗口中选择将所有文件解压缩到第(1)步建立的临时文件夹中。然后关闭WinRAR窗口。

(4) 打开第(1)步建立的临时文件夹,双击“Setup.exe”,进入安装程序。 建议您安装时使用默认路径”c:\i”。

(5) 选择“Code Composer Studio”,按照安装提示进行安装,并重新启动计算机。 (6) 安装完毕,桌面上出现两个新的图标,如右图。 (7) 清空在第(1)步建立的临时文件夹。

2.安装DSP通用仿真器请参看实验箱附带的

《ICETEK-5100PP和ICETEK-5100USB1.1/2.0系列通 用DSP开发系统使用说明书》中相关章节。

需要安装两部分:(1)仿真器的Windows驱动程序(并口无需,usb口要安装);(2)仿真器在CCS环境中的驱动程序。

3.安装实验程序

将教学光盘上的“软件测试程序”目录中的“ICETEK-F2812-EDULab”子目录复制到C:\\上,并将目录中所有文件(包含子目录中的文件)的只读属性去除。 4.安装初始化仿真器程序

将“C:\\ICETEK-F2812-A -EDULab”子目录下的“ICETEKEMUReset.bat”复制

“c:\i\\cc\\bin”目录。将“C:\\ICETEK-F2812-A -EDULab”子目录下的“icetek.cfg”复制到“c:\i\\cc\\bin\\BrdDat”目录。用鼠标右键单击“C:\\ICETEK-F2812-A -EDULab”子目录下的“初始化ICETEK-5100 USB2.0仿真器”文件名,选择“发送到”->“桌面快捷方式”。注:

如果您的CCS系统未安装在默认的c:\i目录,请用鼠标右键单击桌面上“初始化ICETEK-5100 USB2.0仿真器”图标,选择“属性”,将“快捷方式”项和“起始位置”中的路径改成您所安装的路径。

四.设置CCS

1.设置CCS工作在软件仿真环境

CCS可以工作在纯软件仿真环境中,就是由软件在PC机内存中构造一个虚拟的DSP

环境,可以调试、运行程序。但一般软件无法构造DSP中的外设,所以软件仿真通常用于调试纯软件的算法和进行效率分析等。

在使用软件仿真方式工作时,无需连接板卡和仿真器等硬件。

(1) 单击桌(2) 在出现

面上图标:进入CCS设置窗口。 的窗口中按标号顺序进行如下设置:

③单击输入配置 ②单击选择此配置 ①单击清除原先配置 ④单击完成和保存设置

图3.1.1 ccs设置驱动界面

接着在下面出现的窗口中选择“否(N)”。

此时CCS已经被设置成Simulator方式(软件仿真TMS320F2812器件的方式),如果一直使用这一方式就不需要重新进行以上设置操作了。

1. 设置CCS通过ICETEK-5100USB仿真器连接ICETEK-F2812-A硬件环境进行软件调试

和开发。

(1) 单击桌面上图标:

进入CCS设置窗口。

(2) 在出现的窗口中按标号顺序进行如下设置:

③单击输入配置 ②单击选择此配置 ①单击清除原先配置 ④单击关闭窗口

图3.1.2 impor 设置界面

(3) 接着在下面的窗口中按标号顺序进行如下选择:

①用鼠标右键单击此条 ②选择此项功能

图3.1.3 设置gel文件

(4) 在出现的窗口按标号顺序进行如下设置:

①单击此属性卡片 C:\i\\cc\\gel\\f2812.gel 注意:如果ccs安装不是默认路径,请从您指定的ccs安装路径下找。 ②单击此按钮选择指定的gel文件 ③单击完成设置

图3.1.4 加入gel文件

(5) 在出现的窗口按标号顺序进行如下设置:

①单击此按钮退出 ②单击此按钮选择保存

③单击此按钮不启动CCS

图3.1.5 退出ccs设置界面

以上设置完成后,CCS已经被设置成Emulator的方式(用仿真器连接硬件板卡的方式),并且指定通过ICETEK-5100USB仿真器连接ICETEK-F2812-A评估板。如果需要一直使用这一方式就不需要重新进行以上设置操作了。

五.启动CCS

1. 启动Simulator方式 了。)

双击桌面上图标:

2. 启动Emulator方式

(1) 首先将实验箱电源关闭。连接实验箱的外接电源线。

(2) 检查ICETEK-5100USB仿真器的黑色JTAG插头是否正确连接到ICETEK-F2812-A

评估板的P5插头上。注:仿真器的插头中有一个孔加入了封针,与P5插头上的缺针位置应重合,保证不会插错。

(3) 检查是否已经用电源连接线连接了ICETEK-F2812-A评估板上的POW1插座和实验箱底板上+5V电源插座。

(4) 检查其他连线是否符合实验要求。检查实验箱上三个拨动开关位置是否符合实验要求。

(5) 打开实验箱上电源开关(位于实验箱底板左上角),注意开关边上红色指示灯点亮。

ICETEK-F2812-A评估板上指示灯D5和D6点亮。如果打开了ICETEK-CTR的电

源开关,ICETEK-CTR板上指示灯L1、L2和L3点亮。如果打开了信号源电源开关,相应开关边的指示灯点亮。

(6) 用实验箱附带的USB信号线连接ICETEK-5100USB仿真器和PC机后面的USB插

座,注意ICETEK-5100USB仿真器上指示灯Power和Run灯点亮。

(7) 双击桌面上仿真器初始化图标:

如果出现下面提示窗口,表示初始化成功,按一下空格键进入下一步操作。

(请确认已按照上面说明设置为软仿真方式

图3.1.6 仿真器复位

如果窗口中没有出现“按任意键继续…”,请关闭窗口,关闭实验箱电源,再将USB电缆从仿真器上拔出,返回第(2)步重试。

如果窗口中出现“The adapter returned an error.”,并提示“按任意键继续…”,表

示初始化失败,请关闭窗口重试两三次,如果仍然不能初始化则关闭实验箱电源,再将USB电缆从仿真器上拔出,返回第(2)步重试。 ⑻ 双击桌面上图标:

启动CCS2.21。

⑼ 如果进入CCS提示错误,先选“Abort”,然后用“初始化ICETEK-5100 USB2.0仿真器”初始化仿真器,如提示出错,可多做几次。如仍然出错,拔掉仿真器上USB接头(白色方形),按一下ICETEK-F2812-A评估板上S1复位按钮,连接USB接头,再做“初始化ICETEK-5100 USB2.0仿真器”。

⑽ 如果遇到反复不能连接或复位仿真器、进入CCS报错,请打开Windows的“任务管

理”,在“进程”卡片上的“映像名称”栏中查找是否有“cc_app.exe”,将它结束再试。

六.退出CCS

单击此按钮可退出 选择此菜单项可退出

图3.1.7 退出ccs软件

3.2 CCS软件应用指导

Code Composer Studio入门

*开发TMS320C5xxx应用系统一般需要以下几个调试工具来完成:

-软件集成开发环境(Code Composer Studio 2.21):完成系统的软件开发,进行软件和

硬件仿真调试。它也是硬件调试的辅助手段。

-开发系统(ICETEK 5100 USB或ICETEK 5100 PP):实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。

-评估模块(ICETEK F2812-A等):提供软件运行和调试的平台和用户系统开发的参照。

*Code Composer Studio 2.21主要完成系统的软件开发和调试。它提供一整套的程序

编制、维护、编译、调试环境,能将汇编语言和C语言程序编译连接生成COFF (公共目标文件)格式的可执行文件,并能将程序下载到目标DSP上运行调试。

*用户系统的软件部分可以由CCS建立的工程文件进行管理,工程一般包含以下几种文件:

-源程序文件:C语言或汇编语言文件(*.ASM或*.C) -头文件(*.H) -命令文件(*.CMD) -库文件(*.LIB,*.OBJ)

1.启动Code Composer Studio 2.21 选择菜单Debug→Reset CPU。

成功地启动了CCS后会出现如下窗口:

标题区,标明CCS菜单条 编辑工具条 工作区中图象显示窗口 工作区中图形显示窗口 启动方式 编译工具条 工程管理 窗口 调试工具条 工作区中BIOS设置 窗口 编译运行结果信息窗口 工作区中反汇编调试窗口 工作区中C源程序编辑窗口 工作区中数据显示窗口 工作区,用户 文件管理 Y(n) 变量观察 窗口 X(m)h(nmY(n)

X(m)h(nm)X(n)*h(n)m

Y(n)mX(m)h(n图3.2.1 CCS软件界面介绍

2.创建工程

(1) 创建新的工程文件

选择菜单“Project”的“New…”项。

图3.2.2 创建工程文件

如下图,按编号顺序操作建立volume.pjt工程文件:

① 输入新建 工程名volume ②单击此按钮,选择工程所在目录为D:\\dsp\1\\volume ③单击完成设置

图3.2.3 新建工程

展开主窗口左侧工程管理窗口中“Projects”下新建立的“volume.pjt”,其各项均

为空。

(2)在工程文件中添加程序文件:

选择菜单“Project”的“Add Files to Project…”项;在“Add Files to Project”对话框

中选择文件目录为d:\\dsp\1\\volume,选择显示出来的文件“volum.c”;重复上述各步骤,添加D:\\dsp\1\\volume\\volume.cmd文件到volum工程中;添加D:\\dsp\1\\volume\\rts2800_ml.lib。 (3)编译连接工程:

选择菜单“Project”的“Rebuild All”项,或单击工具条编译过程中CCS主窗口下部“Build”提示窗中显示编译信息,误和警告的统计数。

3.编辑修改工程中的文件 (1)查看工程文件

中的按钮;注意

最后将给出错

展开CCS主窗口左侧工程管理窗中的工程各分支,可以看到“volume.pjt”工程中

包含“volume.h”、“rts2800.lib”、“volume.c”和“volume.cmd”文件,其中第一个为程序在编译时根据程序中的“include”语句自动加入的。

(2)查看源文件

*双击工程管理窗中的“volume.c”文件,可以查看程序内容。可以看到,用标准C语言编制的程序,大致分成几个功能块:

-头文件。描述标准库程序的调用规则和用户自定义数据、函数头、数据类型等。

具体包含哪一个头文件,需要根据程序中使用了哪些函数或数据而定。比如:如果程序中使用了printf函数,它是个标准C提供的输入/输出库函数,选中“printf”关键字,按Shift+F1会启动关于此关键字的帮助,在帮助信息中可发现其头函数为stdio.h,那么在此部分程序中需要增加一条语句:#include “stdio.h”。

-工作变量定义。定义全局变量。

-子程序调用规则。这部分描述用户编制的子程序的调用规则。也可以写到用户自己编制的.h文件中去。

-主程序。即main()函数。它可分为两部分:变量定义和初始化部分、主循环部分。

主循环部分完成程序的主要功能。

-用户自定义函数。

这个程序是一个音频信号采集、处理输出的程序。程序的主循环中调用自定义的函

数read_signals来获得音频数据并存入输入缓存inp_buffer数组;再调用自定义函数write_buffer来处理音频数据并存入输出缓存;output_signals将输出缓冲区的数据送输出设备;最后调用标准C的显示信息的函数printf显示进度提示信息。整个系统可以完成将输入的音频数据扩大volume倍后再输出的功能。

read_signal子程序中首先应有从外接AD设备获得音频数据的程序设计,但此例中

由于未采用实际AD设备,就未写相应控制程序。此例打算用读文件的方式获得数据,模拟代替实际的AD输入信号数据。

write_buffer子程序中首先将输入缓冲区的数据进行放大处理,即乘以系数volume,

然后放入输出缓冲区。

output_signals函数完成将处理后的设备输出的功能,由于此例未具体操作硬件输

出设备,所以函数中未写具体操作语句。

*双击工程管理窗中的“volume.h”文件,打开此文件显示,可以看到其中有主程序中要用到的一些宏定义如“BUF_SIZE”等。

*volume.cmd文件定义程序所放置的位置,此例中描述了F2812-A评估板的存储器资源,指定了程序和数据在内存中的位置。 比如:它首先将ICETEK-F2812-A评估板的可用存储器分为八个部分,每个区给定起始地址和长度(区域地址空间不允许重叠);然后指定经编译器编译后产生的各模块放到哪

个区。这些区域需要根据评估板硬件的具体情况来确定。

(3)编辑修改源文件及编译程序

打开“volume.c”,找到“main()”主函数,将语句“input=inp_buffer;”最后的分号

去掉,这样程序中就出现了一个语法错误;重新编译连接工程,可以发现编译信息窗口出现发现错误的提示;双击红色错误提示,CCS自动转到程序中出错的地方;将语句修改正确

(将语句末尾的分号加上);重新编译;注意,重新编译时修改过的文件被CCS自动保

存。

(4)修改工程文件的设置 ①选择菜单 ③单击此卡片

图3.2.4 修改工程文件

通过以上设置操作,重新编译后,程序中的用户堆栈的尺寸被设置成1024个字。

4.基本调试功能

(1)下载程序:执行FileLoad Program ,在随后打开的对话框中选择刚刚建立的D:\\dsp\1\\volume\\Debug\\volume.out文件。

(2)设置软件调试断点:在项目浏览窗口中,双击volume.c激活这个文件,移动光标到main()行上,单击鼠标右键选择Toggle Breakpoint或按F9设置断点(另外,双击此行左边的灰色控制条也可以设置或删除断点标记)。 (3)利用断点调试程序:选DebugRun或按F5运行程序,程序会自动停在main()函数上。

①按F10执行到write_buffer()函数。

②再按F8,程序将转到write_buffer函数中运行。

③此时,为了返回主函数,按shift-F7完成write_buffer函数的执行。

④再次执行到write_buffer一行,按F10执行程序,对比与F8执行的不同。

提示:在执行C语言的程序时,为了快速的运行到主函数调试自己的代码,可以使用DebugGo main命令,上述实验中的使用的是较为繁琐的一种方法。

5.使用观察窗口

(1)执行ViewWatch Window打开观察窗口。

(2)在volume.c中,用鼠标双击一个变量(比如num),再单击鼠标右键,选择“Quick Watch”, CCS将打开Quick Watch窗口并显示选中的变量。

(3)在volume.c中,选中变量num,单击鼠标右键,选择“Add to Watch Window”,CCS将把变量添加到观察窗口并显示选中的变量值。

(4)在观察窗口中双击变量,则弹出修改变量窗口。此时,可以在这个窗口中改变变量的值。

(5)把str变量加到观察窗口中,点击变量左边的”+”,观察窗口可以展开结构变量,并且显示结构变量的每个元素的值。 (6)把str变量加到观察窗口中;执行程序进入write_buffer函数,此时num变量超出了作用范围,可以利用Call Stack窗口察看在其他函数中的变量: ①选择菜单ViewCall Stack打开堆栈窗口。

②双击堆栈窗口的main()选项,此时可以察看num变量的值。 6.文件输入/输出

下面介绍如何从PC机上加载数据到DSP上。用于利用已知的数据流测试算法。 在完成下面的操作以前,先介绍Code Composer Studio的Probe(探针)断点,这种断点允许用户在指定位置提取/注入数据。Probe断点可以设置在程序的任何位置,.当程序运行到Probe断点时,与Probe断点相关的事件将会被触发,当事件结束后,程序会继续执行。在这一节里,Probe断点触发的事件是:从PC机存储的数据文件中的一段数据加载到DSP的缓冲区中。

(1)在真实的系统中,read_signals函数用于读取A/D模块的数据并放到DSP缓冲区中。在这里,代替A/D模块完成这个工作的是Probe断点。当执行到函数read_signals时,Probe断点完成这个工作。

①在程序行read_signals(input);上单击鼠标右键选择“Toggle breakpoint”,设置软件断点。

②再在同一行上单击鼠标右键,选择“Toggle Probe Point”,设置Probe断点。 (2) 执行以下操作

⑧单击选中此项 最后,单击此按钮结束设置 ⑨单击并选择sine2.dat ②选择菜单项 ①选择菜单 ③单击选择数据文件:D:\\dsp\1\\volume\\sine2.dat ⑥单击复 选此框 ④输入放 置地址 ⑦单击设置断点关联 ⑤输入读取数据个数 最后,单击此按钮结束设置 ⑩单击此按钮 图3.2.5 设置file io文件

此时,已经配置好了Probe断点和与之关联的事件.进一步的结果在下面实验中显示。 9.图形功能简介

下面我们使用CCS的图形功能检验上一节的结果。首先进行下面设置操作:

①选择 菜单 ③修改 名称 ④输入数据起始地址 ⑤输入数 据个数 ②选择此菜单项 ⑦单击按钮⑥修改数据类型

图3.2.6 设置图形显示功能

-在弹出的图形窗口中单击鼠标右键,选择“Clear Display”。 -按F12运行程序.观察input窗口的内容。 10.退出CCS 。 11.实验结果

通过对工程文件“volume”的编译、执行后得到结果的图形显示如下:

图3.2.7 结果显示

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务