DSP

TMS320F2812需要注意的几点

2019-07-13 17:28发布

如何提高F2812 AD的转换精度 采用软件补偿,参考文档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器件 4,  通过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的电阻进行上拉。