2010年9月29日星期三

关于DSP供电GND的问题

今天在调试DSP的时候连续烧毁了3块2812,都很诡异,很无奈,很纠结。

鼓起勇气再试一次的时候,终于发现了问题所在:

每次在CCS连接仿真器的时候,+5V供电的电流就会突然升高,DSP的内核部分+1.8V和外设部分+3.3V的阻值<50Ω。初步认为是+5VGnd对保护地的压差>54V,连接仿真器的瞬间产生一个很大的冲击,将DSP内核烧掉。

问题待解决

2010年9月22日星期三

关于EALLOW之类的汇编宏定义

今天,在编写TMS320F28035程序的时候,添加了某个配置功能,但必须要Rude Retry才能运行,否则无法采用Realtime Mode来运行程序。
后来,恢复到上一个运行正常的版本后,一点点加入之前添加的内容,终于发现了问题。原来是配置寄存器的时候调用了DRTM,但是配置完后没有使能ERTM。在配置寄存器之后,补上了一个ERTM就解决了问题。一时的疏忽大意,导致查找了将近半个小时的错误。

总结一下TI在TMS320F28xx标准库里定义的一些汇编语言:

// 全局中断使能
#define EINT asm(" clrc INTM")

// 全局中断禁止
#define DINT asm(" setc INTM")

// Enable RealTime Mode, 使能实时模式
#define ERTM asm(" clrc DBGM")

// Disable RealTime Mode, 禁止实时模式
#define DRTM asm(" setc DBGM")

// E Allow, 解除保护,使能特殊寄存器的修改
#define EALLOW asm(" EALLOW")

// E Disable,恢复保护,禁止特殊寄存器的修改
#define EDIS asm(" EDIS")

// Emulator Stop,停止仿真,程序在此处会停住
// 类似端点的的功能
#define ESTOP0 asm(" ESTOP0")


当DRTM后,处理器是不能进入实时模式的,除非勾选了Rude Retry。

2010年9月21日星期二

关于DSP -- 算是开始吧

写过51的程序,写过PIC,最近专注于TI的处理器方面。

51是基础,这点毋庸置疑,只要有人指引,入门可以很快很快很快,嵌入式开发的思想里面全都有。

现在做TMS320F2812和TMS320F28035,原先还可以算是DSP,但是由于偏重控制方面,现在已经归属在MCU范畴里了。

2812:

2812很经典,但是毕竟也老了,就像2407一样,从今年的芯片价格暴涨开始,是时候该被后浪拍在沙滩上了。新生代的处理器一个是向强大的处理能力上发展,一个是向更低的成本方向发展,因此28035应运而生。

28035:

新生代的低成本处理器向小型化,低功耗,供电简单,内置晶振的方向发展,28035完全满足这些要求,并且以CLA为卖点,带来了额外的并行浮点处理核心*。今后的主攻方向就是它了。

*这里的浮点是伪浮点,通过转成定点精度来计算,再转换为浮点数。

DSP:Digital Signal Processors,数字信号处理器

MCU:Micro Control Unit,微控制核心

CLA:Control Law Accelerator,控制率加速器