ADSP-CM408F评估套件使用经验之谈

作者: 小马哈
上传时间为: 2015-01-20 05:56 PM
2015-01-20
阅读:

一、 资料准备篇

1. 不瞒大家说,以前基本没用过adi的mcu,不管是单片机,还是dsp,还是arm。Arm?额,有过一次AduC7026,至今这个字符串跟我还比较有缘的。但是,限于当时的水平,也只是浅尝辄止。因为computer00搞了个这个芯片的测试板,所以就跟风搞了一个。

2. 今天拿到的这个板子,原以为是一个dsp的板子,结果不然,居然是使用的M4核心的ARM板,大跌眼镜。估计是ADI也想整合他的产品吧。大公司的事情,咱搞不懂,也没必要搞懂,懂得应用就是了。

3. 上网搜索资料吧,其实www.analog.com上提供了非常全的资料了。具体链接在此http://www.analog....zxq6@qq.com,也,居然不得行。试试找回密码,还是不得行:


未命名.JPG

看来只有重新注册一下了。注册过程还是比较简单的,填写一些基本信息,提交即可。

4. 注册后,来看看需要哪些东西来开发这个东东?首先是编译环境,我目前使用的是MDK4.7,器件列表里面没有这个芯片。怎么弄?来看看官方推荐的,IAR6.6及以上。点击链接到IAR的下载位置一看,额滴个神啊, IAR7.1,


未命名.JPG

700多Mbyte,让我这个2M的ADSL情何以堪啊。没办法,慢慢下呗。 ,


未命名.JPG

看今天下午下班之前能不能下的完。

5. 下载开发环境的同时,通过浏览网站内容,得知还得下载一个SDK才行,全名叫:SOFTWARE MODULEAND SOFTWARE DEVELOPMENT KIT (SDK),这个SDK需要注册才能下载。

6. 经过一个多小时的下载,终于搞定。再经过半个多小时的安装,也基本搞定。

7. 然后需要安装SDK,这个很快。安装了这个SDK后,会在安装的那个分区下面增加一个AnalogDevice 的文件夹,里面ADSP-CM40x\CM403F_CM408F_EZ-KIT\examples目录下面包含了所有的例程,可以通过这些例程来对这个板子进行初步入门。


未命名.JPG

安装过程就不赘述了。经历过的都明白。

二、开始使用

1. 资料下载的同时,拿出其他附件仔细欣赏欣赏,大图,额,就请到ADI网站吧,我拍照技术不怎么滴。

2. 通过研究电路图,发现这个板子的用料极其奢华。其中电源的处理就比一般的产品还精致。使用了共轭电感,大电流二极管+自恢复保险丝实现防止电源反接。CAN接口更是使用了AduM系列隔离芯片来实现隔离。外部io通过MCP23017实现扩展,还有很多路的模拟开关实现io的复用等等,不胜枚举。相比之下,那个随机带的调试器就略显寒酸了。不过,能够有一个进行调试都不错了,甭挑肥拣瘦的了哈哈。

3. 电源接口220V端也有很多种转接头,美规的,中国的,日规的,香港的。感觉就是想的很周到。

4. 通信转接口更多,有4个,都不知道干嘛用的。

5. 数据线有好几条。因为我的评估用不上,所以也没去具体研究了。

三、转折过程

1. 因为以前没仔细注意过CM408F板子上的那个旋转编码器,还简单的以为就是一个做AD用的电位器,所以旋转了一下,然后又很随意的旋转到0.结果,就是因为这个细节,导致了后来耽误半个月的时间,才查到是因为这个问题导致了启动方式的改变,从而导致芯片在调试的时候,没法将变异好的程序下载到芯片而进行调试。


未命名.JPG

2. 后来,实在没辙后,将板子快递给xinxin,经过他们的指导后,终于解决了这个看似很小的问题。所以啊,在没有了解清楚板子上元器件功能的时候,不能妄动。

四、 结果

经过一周的断断续续的测试,感觉如下:

1. 虽然号称的是DSP,但是结果是CM4的核心,外围扩展了不少的模块。并集成浮点数单元,增强了计算能力

2. 标称的是240M的内核计算速度,但是根据对比来看,计算速度跟240M的ADSP-BF531还是有一定的差别,估计是核心问题导致的吧。

3. 因为定位于控制器,所以,官方提供了封装后的库函数,使得开发过程变得简单,而BF531因为需要的是运行效率,所以基本都是寄存器方式开发

4. 跟M3比起来,增加了一个浮点数单元,计算更快。性能更好了。

五、测试代码如下:

adi_gpio_SetDirection(
                                 ADI_GPIO_PORT_E,
                                 ADI_GPIO_PIN_7,
                                 ADI_GPIO_DIRECTION_OUTPUT);
  adi_pwr_SetFreq(240000000,96000000);
  volatile unsigned long a;
  volatile unsigned long b;
  a=100;
  b=6;
  while(1)
  {
    adi_gpio_Toggle(ADI_GPIO_PORT_E, ADI_GPIO_PIN_7);
    b=a/b;
    b=sqrt(a);
    adi_gpio_Toggle(ADI_GPIO_PORT_E, ADI_GPIO_PIN_7);
  }

附录:

1. IAR下载地址:http://www.iar.com/ewarm/

2. CM408F所有资料所在页面:

http://www.analog.com/en/processors-dsp/cm4xx/adsp-cm408f/products/product.html

作者其它经验
全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示