昨天晚上有位刚学DSP的朋友问我2407与2812是否差别很大的时候,我只能回答他差别不大。今天,刚好看到这篇文章,便共享之,原文作者为:小申,很不错的工程师。
2407和2812是dsp2000系列性能最让人关注的两款芯片,在使用过两种芯片后,特将两款芯片的异同来作一比较。
都是对于电机控制开发使用。由此,在外设上的配备上有较多的相似之处。
相同点:
1 时间管理器,来管理定时器和pwm,及电机光电码盘的接口,
2 多路ad来接受传感器的信号
3 通讯接口 spi can sci 使得可以方便的通讯
4 程序存储器和内部ram都有一定的容量满足不同的需求
5 3。3V电压供电,突出了低功耗的节电功能
6 可以进行程序和数据空间的外扩
7 jtag接口相同
8 内核相同 ,方便程序移植
不同:
1 电压 2407 3。3V内核和IO供电,flash烧写电压5V
2812 1。8V或者1.9V内核和3。3VIO供电,flash烧写电压3.3V
上电次序,2407没有关系 ,2812 io先上电,核后上电
2 clk 2407最大40M
2812 最大150M(内核电压1.9V)或者 135M(内核电压 1.8V)
3 下载程序方式 2407 编程器下载
2812 编程器下载 串口 spi
4 cpu 2407为16位处理器
2812为32处理器
5 程序和数据空间 2407 flash32k ram2。5K可扩展196K
2812 flash 16×128K ram 16×18K可扩展4M空间
6 时间管理器 2407 定时器16位 一个光电码盘接口
2812 定期器32位 有两个光电码盘接口
7 ad 2407 10位 2812 12位
8 sci 2407 1个 没有缓冲单元 2812 两个 具有缓冲单元
8 can 2407标准can符合2。0B协议 2812增强can和标准can 符合2。0B
9 mcbsp 2407 没有 2812 有
10 语言 2407 汇编 c 2812 汇编 c c++
11 TI支持 2407没有提供较多的例程支持 2812 提供完整的模块例程支持
12 编程风格 2407倾向于模块编程 2812 类编程,并且结构性更强
13 寄存器的保护。2407没有对系统寄存器的保护,2812提供了保护机制
14 在开发环境的帮助文件上看,2407比2812要好点,
2812的寄存器的设置和定 义帮助文件基本没有说明
对dsp及其开发环境及支持的一点建议:
1 dsp没有象arm一样把用于外扩的数据地址线和IO功能复用,这对io管脚使用较多的人来讲不方便,还要进行扩展,如果不需要外扩的话,这些线就浪费了
2 对于现在3。3V和5V共存的时期,如果管脚能和5V兼容,那是最好不过了
3 不明白为什么把管脚的电源和地总是放在相邻的位置上,焊不好很容易短路
4 用程序下载器,下载程序速度很慢,耽误时间
5 开发环境如果能实现软件仿真那就好了,不用非要硬件板了,调试起来那就方便多了
6 作为芯片开发商,最了解自己的芯片的功能,如果能够免费为大家提供各种芯片,尤其是处理器的外设例程,无论对于大家对芯片的上手速度和开发进度来讲都是好事,而且对于芯片的推销也是很好的事情。
大家有什么好的想法,尽可补充,共同进步!
实际上对开发带来最大影响的不同点是2812程序,数据,I/O空间统一编址,在同一个地址空间,并且带bootloader,2407程序,数据,I/O空间分开编址,不在同一个地址空间,不带bootloader,这导致了2812程序必须用一段汇编代码才能跳转到用户的c程序。而2407不需要这样做。