关于DSP学习我说几句

[复制链接]
37059|204
手机看帖
扫描二维码
随时随地手机跟帖
fmj2008|  楼主 | 2010-2-8 16:03 | 显示全部楼层 |阅读模式
接触DSP也快一年了,从刚开始及其不适宜,到现在真正喜欢上了这个系列的芯片
我原先用的是AVR,然后到STM32,进入公司之后开始用TI C2000系列DSP直到现在,我下面也就结合TI的DSP来说

关于DSP和普通51 AVR还有STM32的区别
DSP是为运算而生的芯片,他最强大的地方就在与它的数**算性能,那是由它的指令集支持的。那些拿DSP和STM32比较的,省省吧,如果你两者都熟悉你就知道根本没啥好比的,如果我需要很多高级的接口,比如以太网和USB,那么我自然选STM32,如果我需要实现一些算法,那肯定会选DSP。如果你对运算速度不敏感,反正72M的速度已经比原先单片机快很多了,那当然是看你熟悉哪个,哪个价格比较好,支持比较好。

从51 AVR到DSP最大的障碍
1、应该是编译环境吧,TI的DSP都用的是CCS,CCS界面和原先IAR区别不是一般的大,比如程序导入,比如观察变量,比如烧写FLASH。恩,是的。用过了IAR那种傻瓜化的操作了之后,真是怎么弄怎么别扭,CCS真是太不友好了。但是没办法,IAR他们是专门做编译软件的,TI主要是做DSP的,TI也意识到这个问题了,所以现在推出的CCSV4好像在这方面有很大的加强。不过网上还是CCS3.3的资料最多,大家也熟悉,如果刚接触还是先用CCS3.3为好。
如果你手头有快开发板,那里面应该有对这些操作的详细说明。所以这个慢慢应该也可以熟悉。

2、库文件。TI的库文件都是联合+结构+位域的形式。对这些结构不是非常熟悉的话可能看着有点晕,这个只能慢慢去看C的书。最纳闷的可能就是它的地址映射,如何把寄存器映射到相应的地址,那是它由编译器来支持的主要通过#PROGRM来实现,可以去看看它的CMD文件

3、CMD,CMD文件可能是入门最大的一个坎了,单片机或者ARM根本就没这么一说,这破东西到底啥用呐?CMD文件主要作用就是用来做内存分配,你的芯片里面有FLASH有RAM有BOOT ROM,你编写的程序有代码,要烧到FLASH中,有全局变量要存到RAM的全局变量区域,有局部变量,要存到堆栈中。CDM文件其实就是把你代码中的这些一块一块的东西和具体的硬件存储对应起来。你可以随你需要任意来配置,比如我有一个数据表格,普通的单片机你定义好了之后会有编译器来帮你存放到一个地方,但是DSP里面你可以通过配置CMD把它放在你认为合适的地方。再比如堆栈空间的大小,以前从来没关心过堆栈大小,但是开辟的太大的话可能浪费内存空间。当然,每个芯片都有一个标准的CMD文件,初学者完全可以不用去修改它。

4、文档。TI的文档包括数据手册和外设指南,很多人说很乱,不像其它芯片,所有外设的资料都会放在一起,但是TI会每个外设弄一个。这就要说说TI的外设,它的外设都非常专业,是的专业。比如它的PWM外设,叫ePWM,也就是增强型的PWM,这个外设可以轻松输出非常复杂的PWM波形,而且不用CPU参与。所以它的外设指南有100多页,你会发现很多外设都是这样,里面有很多很多增强的功能,相对应的它的说明文档也就非常长。要是全部都集合在一起那就会非常的大。而且它的每个外设都是有独立版本的,比如ADC,已经从0版到3版,而ePWM还是1版,分开之后升级的维护会方便很多,很多外设在类似的芯片都是一样的。

用STM32的时候我从来没看懂过它的库,甚至都没仔细看过它的手册。但是最后也搞出来了,完了之后我对这块芯片没多少熟悉的感觉。但是用C2000系列的DSP的时候则要反反复复的去看外设指南,分析手册上给出的结构,让我对芯片非常熟悉,再加上它的编译环境是完全可以配置的,我甚至都知道我某个变量会在哪个地方。

JJWW废话一大堆,只是说说个人的理解,路过的大侠请手下留情。
评分
参与人数 1威望 +1 收起 理由
westra + 1 很给力!

相关帖子

司徒老鹰| | 2010-2-9 00:48 | 显示全部楼层
这么好的帖子没人顶……

使用特权

评论回复
宇宙飞船| | 2010-2-9 13:36 | 显示全部楼层
//。。。。那些拿DSP和STM32比较的,省省吧。。。。??

STM32的FFT转换时间并不弱呀,外设丰富,开发环境容易上手入门。
STM32是专为至低挡DSP死地而生的。

使用特权

评论回复
zwll| | 2010-2-9 23:28 | 显示全部楼层
STM32很不错啊

使用特权

评论回复
zls5320| | 2010-2-10 12:31 | 显示全部楼层
好贴

使用特权

评论回复
fmj2008|  楼主 | 2010-2-25 15:42 | 显示全部楼层
回复3楼,不是说STM32不好,我也很喜欢SMT32,比如你要做个电机的算法,其实你更想要的是芯片的运算能力,外设方面你更喜欢能在PWM方面强化一下,所以当然选择DSP。更多的时候我们可能需要芯片的资源非常丰富,一片能解决所有问题,那当然选STM32这种比较全面的芯片。

这段时间用TI 的C2000系列DSP,发现他们在设计芯片的时候本来就比较针对某个领域,比如电机控制,电源等,你去芯片厂商的网站上也很容易能找到一些这方面相关的笔记。

使用特权

评论回复
Dongfangyuxiao| | 2010-2-26 23:48 | 显示全部楼层
顶楼主!
我也正在学习,感同身受。

使用特权

评论回复
leezheng2008| | 2010-3-3 17:12 | 显示全部楼层
好啊,楼主经典

使用特权

评论回复
leezheng2008| | 2010-3-3 17:13 | 显示全部楼层
我搞单片机有几年了,2009冬天正式搞DSP,是C2000系列的,觉得DSPC2000系列的用汇编就很好

使用特权

评论回复
leezheng2008| | 2010-3-3 17:14 | 显示全部楼层
需要了解DSP内部的结构,这样比较C程序是复杂了点,但是很直观

使用特权

评论回复
arthur02| | 2010-3-28 16:35 | 显示全部楼层
8错8错,有点收获

使用特权

评论回复
itelectron| | 2010-3-29 02:58 | 显示全部楼层
回复3楼,不是说STM32不好,我也很喜欢SMT32,比如你要做个电机的算法,其实你更想要的是芯片的运算能力,外设方面你更喜欢能在PWM方面强化一下,所以当然选择DSP。更多的时候我们可能需要芯片的资源非常丰富,一片 ...
fmj2008 发表于 2010-2-25 15:42


电机的算法 ST32 也够用 了吧

使用特权

评论回复
zxzy007| | 2010-3-30 13:25 | 显示全部楼层
最怕的是烧片子
现在2812很难买到了

使用特权

评论回复
zzh3632| | 2010-4-1 11:38 | 显示全部楼层
才开始学有点晕.......

使用特权

评论回复
adofu2008| | 2010-4-21 22:19 | 显示全部楼层
DSP也不难学,看看文档照着例程跑跑基本上就可以自己去编程序了。STM32配置都是配置好的,剩下的也没有多少东西要自己弄的了。

使用特权

评论回复
eric-yes| | 2010-4-24 09:51 | 显示全部楼层
刚开始学2000

使用特权

评论回复
tiaomiaodu| | 2010-4-24 16:37 | 显示全部楼层
准备玩dsp的啊,谢谢啊

使用特权

评论回复
TopV| | 2010-4-25 14:44 | 显示全部楼层
还没有深入了解呢

使用特权

评论回复
f2bosi| | 2010-4-25 14:56 | 显示全部楼层
明天就要学习了。

使用特权

评论回复
xgd_09213| | 2010-4-27 18:06 | 显示全部楼层
不错,有收获

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

24

帖子

1

粉丝