DSP核心板使用手册Word格式.docx
- 文档编号:7854040
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:33
- 大小:1.50MB
DSP核心板使用手册Word格式.docx
《DSP核心板使用手册Word格式.docx》由会员分享,可在线阅读,更多相关《DSP核心板使用手册Word格式.docx(33页珍藏版)》请在冰点文库上搜索。
图1.1核心板正面照
图1.2核心板侧面照
2.电原理框图
如图2所示,其中双向箭头线表示的是数据总线,单向箭头线表示的是地址总线或者控制总线(注:
AD接口、DA接口处的数据总线例外,这两处数据总线单向传输)
图2.电原理框图
三.电原理图说明
本章节将分别说明各个模块的电原理图
原理图使用PROTEL2004DXP软件绘画(压缩包“DSP核心板.rar”),项目文件中包括:
1.system.SchDoc总体框图
2.power.SchDoc电源部分原理图
3.DSP.SchDocDSP芯片部分原理图
4.RamFlash.SchDoc储存芯片部分原理图
5.CPLD.SchDocCPLD芯片原理图
6.boardIO.SchDoc板载外围器件原理图
7.buffer.SchDoc缓冲器件原理图
8.ADDA.SchDocAD/DA原理图
9.interface.SchDoc核心板接口原理图
10.capacitor.SchDoc板载滤波电容原理图
11.PCB1.PcbDocPCB版图
1.电源部分power.SchDoc:
图3.10电源部分A
如图3.10所示,核心板的电源部分A由一个4芯插座以及两个LM1117电压转换芯片组成。
可通过外接5V、GND电源供电,通过LM1117转换成3.3V以及1.8V两种直流电压给核心板上的芯片供电。
另外,4芯插座中第23针为-5V,给核心板上的AD7822芯片以及TxDAC9708芯片供应负电压。
图3.11电源部分B
如图3.11所示,核心板的电源部分B由TPS767芯片组成(该模块目前没有使用)。
可以代替LM1117芯片进行电压转换工作。
该芯片是DC-DC电压芯片,输入电压为5V,输出电压为3.3V和1.8V两种规格。
2.处理器部分DSP.SchDoc:
图3.2处理器部分
处理器部分如图3.2所示,主芯片为DSPTMS320VC5402,使用JTEG调试方式。
JTEG插座表示为14芯双排插座,通过74HC244芯片连接至DSP芯片上。
晶振可以使用有源4脚晶振或者无源两脚晶振。
3.逻辑控制电路CPLD.SchDoc:
图3.3逻辑控制电路CPLD95144
如图3.3所示,核心板的逻辑控制电路由Xilinx的CPLD芯片95144PC100组成。
该芯片使用JTEG下载方式进行逻辑编程。
CPLD完成以下几个功能:
(1)对DSP外围读写信号IOSTRB、MSTRB、PS、DS、IS、R/W进行译码,生成IOR、IOW、ROMR、ROMW、RAMR、RAMW信号线,控制板上IO、RAM、ROM的读写。
(2)对DSP数据地址进行译码,给板上各个资源分配地址空间。
(3)内部设定寄存器,对板子的某些功能进行设置
(4)占有一部分IO地址,进行简单外围器件的扩展,板上目前拥有拨盘开关、按钮、8位LED外围器件。
(注:
关于CPLD的功能在第四章节会有详述)
4.储存器RamFlash.SchDoc:
图3.4DSP外部储存器
如图3.4所示,核心板的储存器由两片IS61LV6416SRAM芯片以及一片AM29LV160DBFLASH芯片构成。
由于5402芯片使用哈佛结构,因此片外RAM空间和片外ROM空间在地址以及读写信号上两者是分离的。
如图所示:
左上角的SRAM芯片构成了DSP的外部ROM空间;
左下角的SRAM芯片以及右上角的FLASH芯片构成了DSP的外部RAM空间,可以由CPLD内部的寄存器来设置DSP的外部RAM空间挂载在SRAM上还是FLASH上。
5.ADDA部分ADDA.SchDoc:
图3.5ADDA部分
如图3.5所示,AD芯片采用AD7822芯片,8bit转换,理论最高采样速度为2MSPS。
采用3.3V单电源供电。
前置放大器由三级TLC2274运放串联组成,可以通过量程选择开关,选择串联的环节,即可以选择输入电压的范围,共有两档:
(a)-3.3V~3.3V
(b)0~3.3V
DA芯片采用TxDAC9708芯片,8bit转换,理论转换速度125MSPS。
采用+5v、-5v双电压供电。
输出电压幅度范围为-3.3v~3.3v。
6.外部接口部分interface.SchDoc:
图3.6外部接口部分
由于核心板需要与外围器件配合工作,因此外部标准接口必不可少。
如图3.6所示,核心板具有4个双针插座,并排列于pcb板的上方。
按照图中的顺序,左上角为MbSP接口;
左下角为HPI接口;
中间为DSP高位地址、IO使能线以及部分外围控制线接口;
右边为数据接口以及中断接口。
7.缓冲器部分Buffer.SchDoc:
图3.7缓冲器部分
由于板上芯片资源较多,因此需要设置缓冲器来进行驱动,增强系统的驱动能力。
如图3.7所示:
从左至右依次为DSP数据缓冲器、外部接口数据缓冲器、DSP地址缓冲器、DSP控制信号缓冲器、外部接口HPI缓冲器。
说明:
由于使用LVTH16245作为外扩接口与核心板的缓冲器件。
因此核心板上的外扩接口可以使用TTL3.3V以及TTL5V两种电压标准。
四.CPLD内部逻辑说明:
核心板的工作除了依靠DSP芯片以外,CPLD的工作也必不可少。
CPLD的功能已经在3.3小节中描述,程序压缩包为“核心板CPLD.rar”,下面将详细说明CPLD如何实现这些功能。
1.译码部分
图4.1译码部分
如图4.1所示,该图表示CPLD译码DSP数据线,完成地址译码的模块。
CPLD使用DSP高位地址线A12~A15进行部分译码,0000h~7FFFh地址留给外部接口使用。
8000h~FFFFh地址留给板上资源使用。
其中,FFF8地址用作内部状态寄存器、FFF9地址用作FLASH高位地址寄存器、FFFA地址用作LED状态寄存器、FFFB地址用作外部状态读取寄存器、FFFC地址用作DA睡眠模式寄存器。
EFF8地址表示AD启动转换端、EFF9地址表示AD使能选择端、EFFA地址表示DA使能端。
IFDCE以及BDCE端用作板上缓冲器的使能,当STATE2为0时,DSP访问IO端口时,IFDCE有效;
当STATE2为1时,DSP访问IO端口时,BDCE有效。
STATE2状态位通过内部状态寄存器可以进行设置。
IOS0~IOS7表示DSP外部IO空间使能端。
当地址为0000~0FFF时,IOS0有效;
当地址为1000~1FFF时,IOS1有效;
当地址为2000~2FFF时,IOS2有效;
以此类推,当地址为7000~7FFF时,IOS7有效。
2.控制信号线部分
图4.2控制信号线部分
如图4.2所示,该图表示CPLD对DSP提供的控制线进行逻辑控制,产生出可供板上资源使用的控制信号线。
其中,IOOESTRB、IOWESTRB表示IO读写脉冲信号。
IOWE、IOOE表示IO读写电平信号;
RAMOE、RAMWE表示RAM读写信号(SRAM与FLASH共用);
RAM1CE表示DSP程序空间使能,连接至第一片SRAM的使能端;
RAM0CE以及FLASHCE都表示DSP数据空间使能,由STATE0状态位进行控制,当STATE0为0时,DSP访问数据空间,访问的是FLASH空间,当STATE0为1时,DSP访问数据空间,访问的是第二片SRAM空间。
3.内部寄存器部分
图4.3内部寄存器部分
在4.1小节中已经说明:
FFF8~FFFC地址保留为CPLD内部寄存器,如图4.3所示,该图即表示CPLD内部寄存器。
FFF8地址表示CPLD内部状态寄存器,使用了数据线低三位,从低到高分别为STATE0、STATE1、STATE2位。
STATE0位决定了DSP数据空间挂载的地方。
当该位为0时,DSP挂载FLASH作为数据空间、当该位为1时,DSP挂载SRAM作为程序空间。
STATE1位决定了DSP中断来源,当该位为0时,DSP中断来源于核心板的板上按钮;
当该位为1时,DSP中断来源于核心板的外部中断接口。
STATE2位决定了DSP是否能够访问外部IO数据接口。
当该位为0时,DSP不能访问外部IO数据接口,当该位为1时,DSP能够访问外部IO数据接口。
FFF9地址表示FLASH高位地址寄存器,使用了数据线低四位,从低到高分别为FLASHADD16~FLASHADD19。
(说明:
由于板上FLASH地址线是20位,而DSP地址线是16位。
因此FLASH的高四位地址线是挂载在CPLD上。
由DSP向该寄存器写的数据来决定FLASH高四位地址线的电平)。
FFFA地址表示板上LED数据地址。
使用了数据线低八位,从低到高分别为LED0~LED7。
DSP向该地址写入数据,就可以控制板上LED灯的状态。
0表示发亮、1表示熄灭。
4.中断部分
图4.4中断部分
如图4.4所示,通过STATE1状态位可以选择DSPNMI、INT0、INT1、INT2的信号来源。
当STATE1位为0时,DSP的中断信号来源于板上的按钮,当STATE1位为1时,DSP的中断信号来源于板上的中断接口。
1.HPI口简单控制
图4.5HPI口控制部分
如图所示,CPLD对于HPI缓冲器进行了数据读写上的使能控制。
其中IFHDCE连接至HPI数据缓冲的使能端。
五.实验板使用说明
1.一般调试步骤
1.在JTEG调试环境下,使用CCSIDE环境进行仿真。
a.接好电源连线,关闭电源电压输出。
b.接上JTEG插头。
c.打开电源,板上电源指示灯发亮。
d.打开ccs软件。
选择硬件仿真。
e.正常工作,进入ccs环境。
进行软件的编写与调试。
2.自举加载步骤
在脱离JTEG调试环境的情况下,使用板子上自加载程序进行工作,步骤如下:
b.打开电源,板上电源指示灯发亮。
c.正常工作,LED灯最低位闪烁。
3.DSP自加载说明
1、自举加载简介
Bootloader(自举加载程序,也称引导装载程序)是在出厂前固化在DSP芯片内ROM中的一段程序代码,其主要功能是在上电或复位时将用户程序从外部加载至程序存储器(片内RAM或扩展的RAM)中。
TI公司的TMS320C5402系列DSP提供了五种自举加载模式:
主机接口HPI、并行口、标准串行口、8位串行EEPROM及I/O口自举引导方式。
在'
C5402的五种自举加载方式中,并行自举加载是最常用的一种。
欲加载的各代码段存放在字宽为8位或16位的外部存储器中,在自举加载时,通过外部并行接口总线将这些代码从数据存储空间传送到程序存储空间。
2、并行自举加载流程
DSP上电复位后,首先检查其MP/MC引脚,如果该引脚为高电平,说明DSP被设置为微处理器工作方式,即从外部程序存储器0FF80h地址开始执行用户程序;
若该引脚为低电平说明DSP被设置为微计算机工作方式,即从片内ROM的0FF80h起执行程序。
'
C5402DSP片内4KROM掩膜了TI设计的几段程序,其中包括bootloader自举加载程序(存放在0F800h地址)。
在片内ROM的0FF80h处有一条分支跳转指令(BD0F800h)。
当DSP上电复位后(MP/MC=0),该跳转指令使程序跳转到0F800h,并从此开始执行bootloader自举加载程序。
Bootloader自举加载程序首先开始执行一些初始化工作,初始化的内容主要包括:
①关闭所有可屏蔽中断(INTM=1);
②将片内DARAM映射至程序/数据存储空间(OVLY=1);
③将程序、数据及I/O存储空间均设置为7个等待状态(SWWSR=07FFFh)
初始化完成后,根据外部设定的条件,选择不同的自举加载方式,判断条件是有先后顺序的,其流程如下图所示。
本实验平台主要提供8位,16位的自举加载功能,当根据判断条件选择了并行加载方式时,其加载的流程如下图所示。
解决
3、自举加载表的建立
自举加载表就是存放在DSP外部空间,加载时读至DSP程序空间,根据一定格式组织在一起的欲加载的程序。
因此,自举表内容不仅包括了欲加载的各段代码,而且包括各段代码长度、各代码段存放的目标地址、程序入口地址等信息。
自举加载表可由hex500格式转换器自动生成。
Hex500实际为一通用程序,它将公共目标文件格式——COFF文件转换成各种EPROM或FLASH的编程格式。
因此,在使用hex500工具之前,首先必须对DSP的汇编语言、C语言或两者的混合编程语言进行汇编、编译、链接,生成COFF格式的.out文件,然后再通过设置适当的选项生成用户所要求的自举表。
具体hex500工具的使用请参见
SPRU102“TMS320C54xAssemblyLanguageToolsUser'
sGuide”
下面详细说一下8位并行加载的操作步骤:
首先请下载“8位并行加载”文件包,其中包括下面文件:
FLSHPROG.cFlash烧写程序文件
flashprog.cmdFlash烧写程序命令文件
HEX500.EXEHEX转换工具
HEXBIN.EXEBIN转换工具
hex.cmdHEX工具的命令文件
然后,请执行下面步骤:
(假设需要的自启动的工程叫led.prj)
1、启动ccs,打开led.prj,选择project->
BuildOptions;
选中Compiler页面,在ProcessorVersion中填入548;
选中Linker页面,在MapFilename中填入map文件名(如led.map)。
2、重新编译工程文件led.prj,生成led.out和led.map。
3、打开led.map文件,找到
ENTRYPOINTSYMBOL:
XXXXaddress:
XXXX
记住address的值。
4、修改hex.cmd文件,打开该文件,将-e后的参数值改为前一步骤中address的值。
5、在命令行中输入“hex500hex.cmd”命令,生成led.hex。
6、在命令行中输入“HexBin”命令,生成led.bin。
选项InputHEXfilename:
led.HEX
OutputBinfilename:
[led.BIN]:
HEXfileformat
<
I>
ntel/<
M>
otorola/<
T>
ektronix
X>
TISDSMAC/<
S>
traightHEX/<
D>
MD16HEX[I]:
Unusedbyteswillbe<
1>
00<
2>
FF[1]:
Wait…
INTELHextoBinaryconverter
Convertcomplete
7、修改flash烧写程序FLSHPROG.c,具体语句如下(红色位置的需要修改):
(1)“#defineFlashMap1BaseAddr0x4000”
FlashMap1BaseAddr定义了flash烧写的基地址,实验板从0x4000开始为flash地址,一般修改为0x4000。
(2)“fp=fopen("
E:
\\MyBootLoader\\led.bin"
"
rb"
);
”
需要修改led.bin的文件位置。
(3)“WriteByte(0xbffe,0x0040);
WriteByte(0xbfff,0x0000);
根据FlashMap1BaseAddr的值修改数据空间0xfffe和0xffff地址的值,0xfffe为高8位值,0xffff为低8位值。
8、将led.bin文件通过FLSHPROG.c程序,烧入flash中。
(其中flashprog.cmd要根据FLSHPROG程序空间分配情况做部分修改)
4.板上自举加载程序
压缩包“测试程序.rar”内包含有自举加载程序项目以及测试程序。
主程序请察看附录。
附录
1.外扩标准接口信号排列顺序
J9.外扩地址线以及信号线:
1.DSPA0
2.DSPA1
3.DSPA2
4.DSPA5
5.GND
6.IOS0
7.IOS1
8.IOS2
9.IOS3
10.IOS4
11.IOS5
12.IOS6
13.IOS7
14.NC
15.NC
16.NC
17.RESET
18.NC
19.IOSTRB
20.NC
21.GND
22.IOOE
23.IOWE
24.NC
25.VCC5V
26.XF
27.MSC
28.IAQ
29.HOLDA
30.IACK
31.CLKOUT
32.TOUT
33.NC
34.NC
J10.外扩数据接口
1.D0
2.D1
3.D2
4.D3
5.D4
6.D5
7.D6
8.D7
9.D8
10.D9
11.D10
12.D11
13.D12
14.D13
15.D14
16.D15
17.GND
19.NC
21.NC
22.NC
23.READY
24.HOLD
25.BIO
26.INT0
27.INT1
28.INT2
29.INT3
30.NMI
31.NC
32.NC
J8.外扩HPI接口
1.HD0
2.HD1
3.HD2
4.HD3
5.HD4
6.HD5
7.HD6
8.HD7
9.GND
10.GND
11.HCS
12.HAS
13.HBIL
14.HCNTL0
15.HCNTL1
16.HDS1
17.HDS2
18.HR/W
J7.外扩MBSP接口
1.VCC3.3V
2.NC
3.NC
4.BCLKR0
5.BFSR0
6.BDR0
7.BCLKX0
8.BDX0
9.BFSX0
10.NC
11.NC
12.BCLKR1
13.BFSR1
14.BDR1
15.BCLKX1
16.BFSX1
17.BDX1
20.GND
2.DSP自加载程序flashprog.c
#include<
stdio.h>
#defineFlashMap1BaseAddr0x4000
voidWriteIsOver(void);
voidEraseChip(void);
voidWriteWord(unsignedint,unsignedchar);
main()
{
FILE*fp;
int*ptr1=(int*)0x2600;
int*ptr2=(int*)0x2601;
int*ptr=(int*)0x2602;
unsignedinti;
intcodelengthstart,codelengthend,codelength;
EraseChip();
fp=fopen("
D:
\\MyBoot~1\\Led.bin"
if(fp==NULL)
{
exit(0);
}
fseek(fp,0,SEEK_END);
codelengthend=(int)ftell(fp);
fseek(fp,0x0,SEEK_SET);
codelengthstart=(int)ftell(fp);
codelength=codelengthend-codelengthstart;
for(i=0;
i<
codelength/2;
i++)
{
fread(ptr1,1,1,fp);
fread(ptr2,1,1,fp);
*ptr=(int)((*ptr1&
0xff)<
8)+(int)((*ptr2)&
0xff);
WriteWord(i,*ptr);
}
WriteWord(0xbfff,0x4000);
}
voidEraseSector(unsignedintSectorAddr)
*(volatileunsignedchar*)(FlashMap1BaseAddr+0xaaa)=0xaa;
*(volatileunsignedchar*)(FlashMap1BaseAddr+0x555)=0x55;
*(volatileunsignedchar*)(FlashMap1BaseAddr+0xaaa)=0x80;
*(volatileunsignedchar*)(FlashMap1BaseAddr+SectorAddr)=0x30;
WriteIsOver();
voidEraseChip(void)
*(volatileunsignedchar*)(FlashMap1BaseAddr+0x555)=0xaa;
*(volatileunsignedchar*)(FlashMap1BaseAddr+0x2aa)=0x55;
*(volatileunsignedchar*)(FlashMap1BaseAddr+0x555)=0x80;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 核心 使用手册