DSP基础知识问答(五)
四十五.关于LF2407A的FLASH烧写问题的几点说明
TI现在关于LF24x写入FLASH的工具最新为c2000flashprogsw_v112。可以支持LF2407、LF2407a、LF2401及相关的LF240x系列。建议使用此版本。在http://focus.ti.com/docs/tool/to ... Number=C24XSOFTWARE上可以下载到这个工具。我们仿真器自带的光盘中也有此烧写程序。 在使用这个工具时注意:
一,先解压,再执行setup.exe。
二、进入cc中,在tools图标下有烧写工具;
1、关于FLASH时钟的选择,此烧写工具默认最高频率进行FLASH的操作。根据目标系统的工作主频重新要进行PLL设置。方法:先在advance options下面的View Config file中修改倍频。存盘后,在相应的目录下(tic2xx\\algos\\相应目录)运行buildall.bat就可以完成修改了。再进行相应的操作即可。
2、若是你所选的频率不是最高频率,还需要设定你自已的timings.xx来代替系统默认的最高频率的timings.xx。例如LF2407a的默认文件是timings.40。Timings.xx可以利用include\\timings.xls的excel工作表来生成。然后在advance options下面的View Config file中修改相应的位置。存盘后,在相应的目录下运行buildall.bat就可以完成修改了。
3、对于TMS320LF240XA系列,还要注意:由于这些DSP的FLASH具有加密功能,加密地址为程序空间的0x40-0X43H,程序禁止写入此空间,如果写了,此空间的数据被认为是加密位,断电后进入保护FLASH状态,使FLASH不可重新操作,从而使DSP报废,烧写完毕后一定要进行Program passwords的操作,如果不做加密操作就默认最后一次写入加密位的数据作为密码。
4、2407A不能用DOS下的烧写软件烧写,必须用c2000flashprogsw_v112软件烧写;
5、建议如下:
1)、一般调试时,在RAM中进行;
2)、程序烧写时,避开程序空间0x40-0x43H加密区,程序最好小于32k;
3)、每次程序烧写完后,将word0,word1,word2,word3分别输入自己的密码,再点击 Program password,如果加密成功,提示Program is arrayed,如果0x40-0x43h中写入的是ffff,认为处于调试状态,flash不会加密;
4)、断电后,下次重新烧写时需要往word0~word3输入已设的密码,再unlock,成功后可以重新烧写了;
6、VCPP管脚接在+5V上,是应直接接的,中间不要加电阻。
7、具体事宜请阅读相应目录下的readme1,readme2帮助文件。
8.注意*.cmd文件的编写时应该避开40-43H单元,好多客户由于没有注意到这里而把FALSH加密。
四十六.如何设置硬件断点?
在profiler ->profile point -> break point
四十七.c54x的外部中断是电平响应还是沿响应?
是沿响应,准确的说,它要检测到100(一个clk的高和两个clk的低)的变化才可以。
参考程序,里面好象都要 disable wachdog,不知道为什么?
watchdog是一个计数器,溢出时会复位你的DSP,不disable的话,你的系统会动不动就reset。
四十九.时钟电路选择原则
1,系统中要求多个不同频率的时钟信号时,首选可编程时钟芯片;
2,单一时钟信号时,选择晶体时钟电路;
3,多个同频时钟信号时,选择晶振;
4,尽量使用DSP片内的PLL,降低片外时钟频率,提高系统的稳定性;
5,C6000、C5510、C5409A、C5416、C5420、C5421和C5441等DSP片内无振荡电路,不能用晶体时钟电路;
6,VC5401、VC5402、VC5409和F281x等DSP时钟信号的电平为1.8V,建议采用晶体时钟电路
五十.C程序的代码和数据如何定位
1,系统定义:
.cinit 存放C程序中的变量初值和常量;
.const 存放C程序中的字符常量、浮点常量和用const声明的常量;
tch 存放C程序tch语句的跳针表;
.text 存放C程序的代码;
.bss 为C程序中的全局和静态变量保留存储空间;
.far 为C程序中用far声明的全局和静态变量保留空间;
.stack 为C程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果;
.sysmem 用于C程序中malloc、calloc和realloc函数动态分配存储空间
2,用户定义:
#pragma CODE_SECTION (symbol, "section name");
#pragma DATA_SECTION (symbol, "section name")
五十一.cmd文件
由3部分组成:
1)输入/输出定义:.obj文件:链接器要链接的目标文件;.lib文件:链接器要链接的库文件;.map文件:链接器生成的交叉索引文件;.out文件:链接器生成的可执行代码;链接器选项
2)MEMORY命令:描述系统实际的硬件资源
3)SECTIONS命令:描述"段"如何定位
五十二.为什么要设计CSL?
1,DSP片上外设种类及其应用日趋复杂
2,提供一组标准的方法用于访问和控制片上外设
3,免除用户编写配置和控制片上外设所必需的定义和代码
五十三.什么是CSL?
1,用于配置、控制和管理DSP片上外设
2,已为C6000和C5000系列DSP设计了各自的CSL库
3,CSL库函数大多数是用C语言编写的,并已对代码的大小和速度进行了优化
4,CSL库是可裁剪的:即只有被使用的CSL模块才会包含进应用程序中
5,CSL库是可扩展的:每个片上外设的API相互独立,增加新的API,对其他片上外设没有影响
五十四.CSL的特点
1,片上外设编程的标准协议:定义一组标准的APIs:函数、数据类型、宏;
2,对硬件进行抽象,提取符号化的片上外设描述:定义一组宏,用于访问和建立寄存器及其域值
3,基本的资源管理:对多资源的片上外设进行管理;
4,已集成到DSP/BIOS中:通过图形用户接口GUI对CSL进行配置;
5,使片上外设容易使用:缩短开发时间,增加可移植.
五十五.为什么需要电平变换?
1)DSP系统中难免存在5V/3.3V混合供电现象;
2)I/O为3.3V供电的DSP,其输入信号电平不允许超过电源电压3.3V;
3)5V器件输出信号高电平可达4.4V;
4)长时间超常工作会损坏DSP器件;
5)输出信号电平一般无需变换
五十六.电平变换的方法
1,总线收发器(Bus Transceiver):
常用器件: SN74LVTH245A(8位)、SN74LVTH16245A(16位)
特点:3.3V供电,需进行方向控制,
延迟:3.5ns,驱动:-32/64mA,
输入容限:5V
应用:数据、地址和控制总线的驱动
2,总线开关(Bustch)
常用器件:SN74CBTD3384(10位)、SN74CBTD16210(20位)
特点:5V供电,无需方向控制
延迟:0.25ns,驱动能力不增加
应用:适用于信号方向灵活、且负载单一的应用,如McBSP等外设信号的电平变换
3,2选1切换器(1 of 2 Multiplexer)
常用器件:SN74CBT3257(4位)、SN74CBT16292(12位)
特点:实现2选1,5V供电,无需方向控制
延迟:0.25ns,驱动能力不增加
应用:适用于多路切换信号、且要进行电平变换的应用,如双路复用的McBSP
4,CPLD
3.3V供电,但输入容限为5V,并且延迟较大:>7ns,适用于少量的对延迟要求不高的输入信号
5,电阻分压
10KΩ和20KΩ串联分压,5V×20÷(10+20)≈3.3V
五十七.未用的输入/输出引脚的处理
1,未用的输入引脚不能悬空不接,而应将它们上拉活下拉为固定的电平
1)关键的控制输入引脚,如Ready、Hold等,应固定接为适当的状态,Ready引脚应固定接为有效状态,Hold引脚应固定接为无效状态
2)无连接(NC)和保留(RSV)引脚,NC 引脚:除非特殊说明,这些引脚悬空不接,RSV引脚:应根据数据手册具体决定接还是不接
3)非关键的输入引脚,将它们上拉或下拉为固定的电平,以降低功耗
2,未用的输出引脚可以悬空不接
3,未用的I/O引脚:如果确省状态为输入引脚,则作为非关键的输入引脚处理,上拉或下拉为固定的电平;如果确省状态为输出引脚,则可以悬空不接 |