Kinetis 内部自带的16位ADC一直是其非常大的优势和特色,毕竟目前市场上ARM MCU端的江山把16位ADC集成到片内去也只有Freescale 这样做了, 当然这里的16位是指其最高分辨率,其ENOB最好可以做到13.5 位,但是这也让其他家MCU的12位ADC拍马也赶不上了(12位ADC,其ENOB能达到10位就已经算是很好了) ,在一些医疗电力等应用还是有其独特的优势的。当然, 不能一概而论的想当然为其他家也肯定不能把16位ADC做到片内, 我觉着各家有各家的权衡,面向的应用对象不同,精度和速度这两个永远是一个矛盾( ADI 家那种高大上的高速高精度ADC除外,谁让人家舍得本钱呢,贵有贵的理由) ,其他家比如ST和Atmel 等内部的12位ADC的采样率还是比较快的( 12位模式,上1M还是松松的, Freescale的16位ADC配置成12位模式下最高为800多ksps )。
既然Kinetis 主打的是高精度, 那我们当然要让这个优势发挥到淋漓尽致了, 为保证片内ADC的精度和线性度, Freescale 在ADC内部集成了自校准功能,这部分最近有人也问过我,我觉着还是写出来分享给大家好了。如下图为校准前(黄色线)与理论值(蓝色线)的比较, 当然这个图只是个简单的示意图了, 这个时候肯定会有人问到, 他之前代码中没有校准也可以正常转换且转换出来的值与实际值也差不多, 这个是为什么呢。这个不用担心, 实际上可以理解为芯片出厂已经在相关寄存器被写入了一个校准值了, 所以一般情况下下图中不校准和校准后的这个offset 和gain 差是很小的, 但是如果我们不是一般情况下呢, 呵呵,比如外界环境比较恶劣等条件下还是强烈建议在使用ADC模块前将ADC校准一下为好。说到这,还会有较真的人问到具体的校准原理是什么, 我也只能把头摇成个拨浪鼓, 俺也不知道,我只能说在校准时VREFL和VREFH这两个脚的电压肯定是需要采样做两点校准的, 至于还有哪些点要采样或者中间还有哪些操作,我也懒得再往深了找了,想想头大,呵呵。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !