本帖最后由 suyong_yq 于 2015-5-6 22:56 编辑
Kinetis单片机ADC模块扩展阅读
2015-05
最近在社区里碰到有问关于ADC校准的,我刚好整理了之前看过的关于ADC相关的应用笔记,分享给大家,共同学习。
【AN3031:Temperature Sensor for the HCS08 Microcontroller Family】 【AN4374:Cookbook for SAR ADC - Measurements ADC measurements done properly】 【AN3949:ADC16 Calibration Procedure and Programmable Delay Block Synchronization】
如果想学好单片机,看文档的工夫是不能省的,磨刀不误砍柴工,否则也写不出好的代码。要想玩转Kinetis单片机上的ADC,阅读手册上关于ADC模块的说明是基本的需求,但是一些扩展阅读能帮助更好地理解ADC内部的工作机制。本文中列出了几篇比较实用的关于ADC的应用笔记,这些线索全部在K64的参考手册中,然后在Freescale的官网上搜索找到的。好东西就在那里,等着我们发现它们。
在浏览器中打开Freescale的官网主页,在右上角找到搜索栏,输入应用笔记的编号,如“AN3031”,就能在搜索清单中找到应用笔记的摘要和下载链接,运气好的话,还有可能找到文档配套的代码包。
AN3031:Temperature Sensor for the HCS08 Microcontroller Family
这份文档讲的是关于ADC模块内部的一个温度传感器的用法,仔细阅读过KL25、K60、K64或是其它Kinetis芯片的手册中关于ADC模块的童鞋们就会了解到,这个ADC模块自带了一个温度传感器,直接从26号通道采样就能得到温度传感器的值。
(该表来自于K64的参考手册K64P144M120SF5RM, Rev. 2, January 2014的“3.7.1.3.1.1 ADC0 Channel Assignment for 144-Pin Package”一节)
AN3031描述的ADC模块虽然是基于经典的S08单片机,但这个ADC的IP同在Kinetis单片机上用到的ADC基本上是同一个IP。在文档中讲述了如何读取有效的温度值,并且探讨了优化温度传感器采样温度的方法。
官网上还提供了样例工程,但我看了一下觉得意义不大,为啥?刚解压压缩包我就不淡定了,一看看内容就知道这个样例工程的代码肯定是用PE工具生成的,神一样的组织结构,反正我是没看明白。
AN4374:Cookbook for SAR ADC - Measurements ADC measurements done properly
这份文档看名字就知道是好东西,Cookbook嘛,可以当小说看的,探讨了在使用ADC的时候遇到的一些问题。这本小说,哦不,是应用笔记,它的主角还是同一个ADC模块,只不过这次是搭载到了DSC MCF56F8257和 Kinetis K70的芯片上。开篇第一句话是我非常欣赏的,“An analog-to-digital converter (ADC) cannot ensure ideal accuracy by itself.”就是说ADC转换全靠转换器的硬件是搞不定的,一方面还需要外部电路配合,另一方面,软件的处理也会起到很大的作用。
在这份文档中讨论应用ADC的很多细节问题,包括: ü ADC工作的时间,例如采样保持时间、转换时间等。 ü ADC模块的供电特性,噪声干扰,内部阻抗等。 ü 模拟系统与数字系统的结合 ü 阻抗匹配 ü 输入/输出转换 ü PCB走线
说明生动形象,要图有图,要公式有公式,是论文引用,工程设计的最佳参考资料。
AN3949:ADC16 Calibration Procedure and Programmable Delay Block Synchronization
这篇文档里有两个彩蛋,一个是关于硬件校准的,另一个是关于ADC和PDB联动的用法。PDB这厮可是在K60和K64中都有的存在。具体的内容我就不多说了,总是很给力的文章,上一张图,是说明硬件校准的作用,撩拨一下各位的小冲动。
附上已经下载好的文档,不过仍然建议大家自己试试从官网上下载: |