目前使用2812的朋友还真的不少,小结一下使用过程中常见到的一些问题,希望有用。
一、程序经常跑飞的几种情况?
答:1、程序没有结尾或不是循环的程序;
2、nmi管脚没有上拉;
3、在看门狗动作的时候程序会经常跑飞;
4、程序编制不当也会引起程序跑飞;
二、程序访问了非法的地址,用示波器观测的时候程序跑飞?
答:示波器的探头接地不好,探头上的电位可能会比较高,接到信号线上产生干扰会跑飞。
三、大程序有时运行异常,但加一两条空指令就正常,是何原因?
答:由于TMS320C采用了多级的流水线操作,因此流水线冲突是不可避免的,解决办法为在适合的问题插入1到多条NOP指令。
参考Ti的相关文档了解详细信息。
四、调试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,CY7C68**...
六、DSP为什么要初始化?
4 M O7 f# E2 c/ N/ c
答:DSP在RESET后,许多的寄存器的初值一般同用户的要求不一致,例如:等待寄存器,SP,中断定位寄存器等,需要通过初始化程序设置为用户要求的数值。 初始化程序的主要作用:
1)设置寄存器初值。
2)建立中断向量表。
3)外围部件初始化
七、如何判断DSP能正常的工作?
答:最简单的办法是测量它的clkout脚输出是否正常。
八、有源晶振与晶体的区别,应用范围及用法?
答:1)晶体需要用DSP片内的振荡器,在datasheet上有建议的连接方法。晶体没有电压的问题,可以适应于任何DSP,建议用晶体
2)有源晶振不需要DSP的内部振荡器,信号比较稳定。有源晶振用法:一脚悬空,二脚接地,三脚接输出,四脚接电压。
九、为什么需要电平变换?
答:1、DSP系统中难免存在5V/3.3V混合供电现象;
2、I/O为3.3V供电的DSP,其输入信号电平不允许超过电源电压3.3V;
3、5V器件输出信号高电平可达4.4V;
4、长时间超常工作会损坏DSP器件;
5、输出信号电平一般无需变换
十、时钟电路选择原则?
答: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芯片:DSP的核心运算单元
电源模块:给DSP以及外围元件提供电压和监控的功能模块
时钟电路:给DSP提供CLK输入;驱动其他需要时钟的元件
存储器:存储数据和程序(SRAM/SDRAM/SBSRAM/ZBTRAM/FLASH)
输入输出模块:执行数据的传输(串口/USB/CAN/Ethernet/AD/DA)
多处理器接口:多CPU协同工作的接口(HPI/PCI/双口RAM) |