关于使用ADI公司ARM的一点点经验 我以前在读书的时候帮老师做项目,用过LPC的21系列ARM,资料比较多。现在工作了,由于项目需求的多样性,使用了多家ARM。比如st,adi,三星等。在使用adi——ARM-aduc70XX完成项目过程中,可能是由于ADI的arm不是很流行,遇到了别家遇不到的问题。现在回顾一下。 首先,外部中断无边沿触发中断,edge-triggered为level-triggered。Demo里面的例子是要死等待才能跳出中断。 搞了很久才知道,原来还有一种方法可以实现edge-triggered那就是通过所谓的pla来实现。但是手册和ic资料里面一点都没有说,还是后来从技术支持人员那才知道。(不是破坏我的知情权吗?)。不过由于是通过改变PLA的门去实现。反应就比较慢需要5 to 50 processor 周期。一般估计都是50>or=; 如果用新版本的KEIL。 提供的startup.s文件需要修改,dac.h也需要改。 Keil出现了对ADI软件仿真支持的错误。A./B成了/A.B
图1 PLA工具中 PLAELM0=0X2C9;
图二 KEIL中的PLAELM0=0X2C9; 尽管用的人不多,资料也比较匮乏。但是可以称道的是ADI的AD你不得不佩服人家。 自带的AD是绝对可以用的AD.比st,lpc的自带AD.误差小很多。绝对不是一个档次的。 INL =0.5LSB; DNL=1LSB; OFFSET ERRPOR =0.5LSB; St等公司的AD显然误差是ADI的好几倍。 这东西,有时候当个AD用也成。希望ADI的支持力度加大用的人多才好。 |