一、 资料准备篇 1. 不瞒大家说,以前基本没用过adi的mcu,不管是单片机,还是dsp,还是arm。Arm?额,有过一次AduC7026,至今这个字符串跟我还比较有缘的。但是,限于当时的水平,也只是浅尝辄止。因为computer00搞了个这个芯片的测试板,所以就跟风搞了一个。 2. 今天拿到的这个板子,原以为是一个dsp的板子,结果不然,居然是使用的M4核心的ARM板,大跌眼镜。估计是ADI也想整合他的产品吧。大公司的事情,咱搞不懂,也没必要搞懂,懂得应用就是了。 3. 上网搜索资料吧,其实www.analog.com上提供了非常全的资料了。具体链接在此http://www.analog.com/zh/processors-dsp/cm4xx/adsp-cm408f/products/CM40X-EZ/eb.html。不过要下载里面的内容,需要登录。额,这貌似又是一个关卡。试试我的账户 zxq6@qq.com,也,居然不得行。试试找回密码,还是不得行:
看来只有重新注册一下了。注册过程还是比较简单的,填写一些基本信息,提交即可。 4. 注册后,来看看需要哪些东西来开发这个东东?首先是编译环境,我目前使用的是MDK4.7,器件列表里面没有这个芯片。怎么弄?来看看官方推荐的,IAR6.6及以上。点击链接到IAR的下载位置一看,额滴个神啊, IAR7.1,
700多Mbyte,让我这个2M的ADSL情何以堪啊。没办法,慢慢下呗。 ,
看今天下午下班之前能不能下的完。 5. 下载开发环境的同时,通过浏览网站内容,得知还得下载一个SDK才行,全名叫:SOFTWARE MODULEAND SOFTWARE DEVELOPMENT KIT (SDK),这个SDK需要注册才能下载。 6. 经过一个多小时的下载,终于搞定。再经过半个多小时的安装,也基本搞定。 7. 然后需要安装SDK,这个很快。安装了这个SDK后,会在安装的那个分区下面增加一个AnalogDevice 的文件夹,里面ADSP-CM40x\CM403F_CM408F_EZ-KIT\examples目录下面包含了所有的例程,可以通过这些例程来对这个板子进行初步入门。
安装过程就不赘述了。经历过的都明白。
二、开始使用 1. 资料下载的同时,拿出其他附件仔细欣赏欣赏,大图,额,就请到ADI网站或者联系xinxin吧,我拍照技术不怎么滴。 2. 通过研究电路图,发现这个板子的用料极其奢华。其中电源的处理就比一般的产品还精致。使用了共轭电感,大电流二极管+自恢复保险丝实现防止电源反接。CAN接口更是使用了AduM系列隔离芯片来实现隔离。外部io通过MCP23017实现扩展,还有很多路的模拟开关实现io的复用等等,不胜枚举。相比之下,那个随机带的调试器就略显寒酸了。不过,能够有一个进行调试都不错了,甭挑肥拣瘦的了哈哈。 3. 电源接口220V端也有很多种转接头,美规的,中国的,日规的,香港的。感觉就是想的很周到。
4. 通信转接口更多,有4个,都不知道干嘛用的。 5. 数据线有好几条。因为我的评估用不上,所以也没去具体研究了。 三、转折过程 1. 因为以前没仔细注意过CM408F板子上的那个旋转编码器,还简单的以为就是一个做AD用的电位器,所以旋转了一下,然后又很随意的旋转到0.结果,就是因为这个细节,导致了后来耽误半个月的时间,才查到是因为这个问题导致了启动方式的改变,从而导致芯片在调试的时候,没法将变异好的程序下载到芯片而进行调试。
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. CM4088所有资料所在页面: http://www.analog.com/zh/processors-dsp/cm4xx/adsp-cm408f/products/CM40X-EZ/eb.html
|