新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 找出微处理器ADC电压的十六进制编码值

找出微处理器ADC电压的十六进制编码值

作者:时间:2012-07-05来源:网络收藏

这种设计方案针对低档八管脚flash存储的8位,例如Freescale的MC68HC908QT4A,但是它也同样适用于任何一款拥有模块的8位。在芯片内,转换输入的模拟成数字信号格式。数字信号格式为8位的十六进制值,如$00。端口采集输入模拟信号范围从VSS对应的 $00到VDD对应的$FF。基于这些十六进制,在VSS和VDD之间的输入呈现出总共256个电平的线性变换。换句话说,输入越高,十六进制值就越大。

本文引用地址:http://www.eepw.com.cn/article/186147.htm

  最困难的地方在于写汇编代码实现算法的程序员必须知道不同输入模拟电平(例如1.6V)对应什么十六进制编码值。涉及到微处理器规格,甚至联系生产厂商也不能给出满意的答案。

  然而,本文提出解决这个问题的方案。假定微处理器工作电源电压为VDD,应用下面这个简单公式得到十六进制编码值:VIN/(VDD/255)=result value=hex code(见编者按)。注意,在更高的十六进制编码转换精度之前,必须保证转换出的十六进制值能够覆盖整个模拟信号范围。下面的例子计算表明了使用已知电源电压5V的微处理器时,测量输入模拟信号电压为1.6V的十六进制编码值:1.6V/(5V/255)=81.6=82,或者$52。

  编者按:

  作者还提供了两个附件,一个查询表(PDF格式)和一个Excel格式的表格,读者可以对照这些附件与公式相互映证。最后,作者还在“反馈环”这篇文章为本篇文章提供了一些注释。

英文原文:

  Find hex-code values for microcontroller’s ADC voltages

  Ease 8-bit microcontroller programming with a simple formula to calculate hex values of ADC output.

  Harry Gibbens Jr, Deafworks, Provo, UT; Edited by Charles H Small and Brad Thompson -- EDN, 4/12/2007

  This Design Idea is for low-end, eight-pin, flash-memory, 8-bit microcontrollers, such as the MC68HC908QT4A from Freescale, but it would apply to any 8-bit microcontrollers that use the ADC feature. In a nutshell, the ADC converts an input-analog-voltage level to a digital-signal format. The digital-signal format has an 8-bit hex-code value, such as $00. The microcontroller “sees” the input-analog-voltage level from its ADC ports ranging from $00 at VSS to $FF at VDD. Based on those hex-code values, there are a total of 256 ticks. The input voltages between VSS and VDD represent a straight-line linear conversion. In other words, the higher the input voltage, the higher the hex-code value.

  The difficulty is that a programmer who needs to write assembly code for a programming algorithm must know what the hex-code value is for a different input-analog-voltage level—1.6V, for example. Referring to the microcontroller’s specs and even contacting its manufacturers do not yield satisfactory answers.

  However, this Design Idea presents a solution to the problem. Given the microcontroller’s power operating-voltage source, VDD, use the following simple formula to obtain the hex-code value corresponding to an identified input-analog-voltage level: VIN/(VDD/255)=result value=hex code (see Editor's note). Note that you must round off the result value to a whole number before converting to a hex-code value for better accuracy. The following sample calculation finds the hex-code value for a measured input-analog-voltage level of 1.6V when using a known microcontroller’s VDD of 5V:1.6V/(5V/255)=81.6=82, or $52

  Editor's Note:

  Correction and addition (4/27/2007): Due to an editing error, we originally printed the formula as VIN×VIN/(VDD/255). In addition, the author has provided two attachments, a lookup table (PDF) and an Excel spreadsheet that allows you to interact with the formula. Finally, the author has posted some comments in the Feedback Loop section for this article.



评论


相关推荐

技术专区

关闭