2812需要注意的几点
采用软件补偿,参考文档spra989a。
程序经常跑飞
程序没有结尾或不是循环的程序。
nmi管脚没有上拉。
在看门狗动作的时候程序会经常跑飞。
程序编制不当也会引起程序跑飞。
硬件系统有问题。
程序访问了非法的地址。
用示波器观测的时候程序跑飞
示波器的探头接地不好,探头上的电位可能会比较高,接到信号线上产生干扰会跑飞。
大程序有时运行异常,但加一两条空指令就正常,是何原因
由于TMS320C采用了多级的流水线操作,因此流水线冲突是不可避免的,解决办法为在适合的问题插入1到多条NOP指令。
参考Ti的相关文档了解详细信息
C语言中如何从指定的地址读写数据
#define ADDR1 (unsigned int *)0x300000
#define ADDR2
(unsigned int *)0x300004
*ADDR1 = 0x05;//write
x = *ADDR2;//read
调试TMS320C2000系列的常见问题?
1)单步可以运行,连续运行时总回0地址: Watchdog没有关,连续运行复位DSP回到0地址。
2)OUT文件不能load到片内flash中:
Flash不是RAM,不能用简单的写指令写入,需要专门的程序写入。CCS和C Source Debugger中的load命令,不能对flash写入。
OUT文件只能load到片内RAM,或片外RAM中。
3)在flash中如何加入断点:
在flash中可以用单步调试,也可以用硬件断点的方法在flash中加入断点,软件断点是不能加在ROM中的。硬件断点,设置存储器的地址,当访问该地址时产生中断。
4)中断向量:
C2000的中断向量不可重定位,因此中断向量必须放在0地址开始的flash内。在调试系统时,代码放在RAM中,中断向量也必须放在flash内
DSP系统构成的常用芯片有哪些?
1)电源: TPS73HD3xx,TPS7333,TPS56100,PT64xx...
2)Flash:
AM29F400,AM29LV400...
3)SRAM: CY7C1021,CY7C1009,CY7C1049...
4)FIFO:
CY7C425,CY7C42x5...
5)Dual port: CY7C136,CY7C133,CY7C1342...
6)SBSRAM:
CY7C1329,CY7C1339...
7)SDRAM: HY57V651620BTC...
8)CPLD:
CY37000系列,CY38000系列,CY39000系列... 9)PCI: PCI2040,CY7C09449...
10)USB:
AN21xx,CY7C68xxx...
DSP为什么要初始化?
DSP在RESET后,许多的寄存器的初值一般同用户的要求不一致,例如:等待寄存器,SP,中断定位寄存器等,需要通过初始化程序设置为用户要求的数值。
初始化程序的主要作用:
1)设置寄存器初值。
2)建立中断向量表。
3)外围部件初始化
如何判断DSP能正常的工作。
最简单的办法是测量它的clkout脚输出是否正常。
有源晶振与晶体的区别,应用范围及用法
1)晶体需要用DSP片内的振荡器,在datasheet上有建议的连接方法。晶体没有电压的问题,可以适应于任何DSP,建议用晶体。
2)有源晶振不需要DSP的内部振荡器,信号比较稳定。有源晶振用法:一脚悬空,二脚接地,三脚接输出,四脚接电压。
DSP系统中实现UART功能
1,C2000系列DSP片内已集成有UART功能;
2,用McBSP模拟实现UART功能
3,外部扩展UART器件1)通过SPI总线扩展:MAX3100(Maxim公司)通过8位异步存储器接口扩展PC
UART: 单通道;TL16C450/550/750(TI公司); 双通道:TL16C452/552/752(TI公司);
四通道:TL16C454/554/754(TI公司)
为什么需要电平变换?
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,总线开关(Bus
Switch)
常用器件: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,系统中要求多个不同频率的时钟信号时,首选可编程时钟芯片;
2,单一时钟信号时,选择晶体时钟电路;
3,多个同频时钟信号时,选择晶振;
4,尽量使用DSP片内的PLL,降低片外时钟频率,提高系统的稳定性;
5,C6000、C5510、C5409A、C5416、C5420、C5421和C5441等DSP片内无振荡电路,不能用晶体时钟电路;
6,VC5401、VC5402、VC5409和F281x等DSP时钟信号的电平为1.8V,建议采用晶体时钟电路
一个完整的单DSP应用系统包括那些方面
DSP芯片:DSPs的核心运算单元
电源模块:给DSP以及外围元件提供电压和监控的功能模块
时钟电路:给DSP提供CLK输入;驱动其他需要时钟的元件
存储器:存储数据和程序(SRAM/SDRAM/SBSRAM/ZBTRAM/FLASH)
输入输出模块:执行数据的传输(串口/USB/CAN/Ethernet/AD/DA)
多处理器接口:多CPU协同工作的接口(HPI/PCI/双口RAM)
如何开始调试一个DSP系统
先不焊接器件,用万用表量电源和地看是否短路
先焊电源部分,看电源输出是否正常
焊晶振和复位电路、调试。焊接DSP并对其进行调试
加RAM,调试
加FLASH,调试
DSPs的异步串口扩展
LF2407/F2812:片内集成SCI通信接口
SPI总线扩展:MAX3100
MCBSP模拟扩展UART接口
DSP端接口:EMIF(存储扩展接口)
UART扩展芯片:TL16C750、TL16C752、TL16C754、SC28L91、SC28L92
DSPs常见音视频扩展
音频:
DSP端接口:MCBSP(多通道缓冲串口)MCASP(多通道音频串口)
编解码芯片:AIC23、AIC13、PCM180X、PCM1851…
视频:
DSP端接口:VideoPort(DM64X、Davinci),利用CPLD做扩展视频物理连接口(其他)
编解码芯片:TVP5150、TVP5154、SAA7111、SAA7113、SAA7121、SAA7105
DSP系统如何消除信号干扰、静电干扰等问题
消除干扰:模拟和数字分开,多层板,电容滤波。
静电干扰:一般情况下,机壳接大地,即能满足要求。特殊情况下,电源输入、数字量输入串接专用的防静电器件。
如何降低和克服PCB布线对模拟信号失真和串音的影响
1)模拟信号与模拟信号之间的干扰:布线时模拟信号尽量走粗一些,如果有条件,2个模拟信号之间用地线间隔。(啥意思?)
2)数字信号对模拟信号的干扰:数字信号尽量远离模拟信号,数字信号不能穿越模拟地。
JTAG接头的设计
DSP内部有EMU0/EMU1有弱上拉,如果走线过远则需要额外接10K~30K的电阻进行上拉。