模数转换器(ADC)是一种将模拟电压转换为微处理器可以理解的数字值的设备。
MCA ADC控制器是12位分辨率,右对齐,无符号格式。MCA ADC通道适用于低频采样(10hz以下)。
可用ADC引脚
在ConnectCore 8M纳米系统模块:
5个MCA焊盘可配置为ADC通道:
MCA_IO1
MCA_IO2
MCA_IO3
MCA_IO4
MCA_IO14
在ConnectCore 8M纳米开发套件:
以下ADC通道可在XBee Cellular插座J39-J40上访问:
MCA_IO1 (MCA ADC通道1)
MCA_IO2 (MCA ADC通道2)
MCA_IO3 (MCA ADC通道3)
MCA_IO4 (MCA ADC通道4)
公式
ADC输入端读取的值响应于公式:
\$ v_ (read) = (v_ (in) * 4095) / v_ (ref)\$
地点:
V读是否读取数字值
V在是模拟输入电压吗
V裁判ADC的基准电压是多少
参考电压
对于MCA adc,参考电压可通过以下设备树属性之一进行配置:
数字,adc-vref =
:此设备树条目使MCA adc使用MCA_VCC作为参考电压。这是ConnectCore 8M Nano的输入电压,因此您必须将其配置为电路板的电压值。数码网络,internal-vref
这个布尔器件树入口使得MCA adc使用稳定的温度补偿1.2 V作为参考电压。Pad MCA_VREF_OUT将输出1.2 V作为外部外设的参考电压。
的值
数码网络,adc-vref
属性将被忽略。
ADC通道映射
MCA ADC通道的索引对应其MCA IO号:MCA_IO1为通道1,MCA_IO2为通道2,以此类推。
并非所有MCA IO引脚都支持adc。看到MCA I/O板查看所有可用的MCA IOs及其功能的列表。
内核配置
您可以通过以下内核配置选项管理ADC驱动程序:
Digi ConnectCore SOMs微控制器辅助ADC(
CONFIG_MCA_ADC
)
这些选项在默认情况下是内置的ConnectCore 8M Nano内核配置文件.
内核驱动程序
ConnectCore 8M Nano MCA ADC驱动:
司机/ iio / adc / mca-adc.c
设备树绑定和自定义
MCA ADC器件树绑定记录在文档/ devicetree /绑定/ iio / adc /数码网络,mca-adc.txt
.
设备树必须包含以下条目:
ADC接口
启用的通道
ConnectCore 8M Nano MCA ADC接口
McA_cc8m: McA@63 {McA_adc: adc {compatible = "digi,mca-cc8m-adc";};};
示例:在ConnectCore 8M Nano Development Kit上启用MCA ADC通道1,2,3和4
例如,MCA ADC通道1,2,3和4可在ConnectCore 8M Nano Development Kit XBee Cellular插座上使用。要启用它们,您必须:
禁用
mca_uart2
设备树节点。添加通道1,2,3和4到
数码网络,adc-ch-list
属性。启用
mca_adc
节点。
为了进行精确的测量转换,必须测量输入电压MCA_VCC并将其通过属性传递给内核数码网络,adc-vref
.
//&mca_uart {// status = "ok ";/* UART连接到XBee蜂窝插座*/ // mca_uart2: serial@0x940 {// iopins-names = "rx", "tx", "cts", "rts";// iopins = <2 1 3 4>;/ /};/ /};&mca_adc {digi,adc-ch-list = <1 2 3 4>;Digi,adc-vref = <3000000>;};
为您的平台定制adc
按照以下步骤在您的定制设计上配置ADC通道:
确定要配置为ADC的引脚,并验证它们是否支持ADC。
在平台的设备树中,为您计划使用的ADC接口创建或取消注释节点(
mca_adc
MCA)。启用要启用的通道索引,请使用
数码网络,adc-ch-list
.编译设备树并将其安装到您的平台中。
使用adc
ADC驱动程序被设计为标准工业I/O (IIO)设备驱动程序,可以从系统或用户应用程序访问。
Sysfs访问
启用后,ADC驱动程序在IIO sysfs目录中创建相应的设备项(/ sys /汽车/ iio /设备
).要确定哪个条目对应于哪个驱动程序,请读取名字
描述符:
#Cat /sys/bus/iio/devices/iio\:device0/name McA-cc8m-adc
驱动程序创建一个名为in_voltageX_raw
为每个ADC通道,其中X对应通道号。读取通道的输入值:
#Cat /sys/bus/iio/devices/iio\:device0/in_voltage1_raw
返回值是一个带有转换结果的十进制数。在i.MX8M纳米ADC的示例中:
美元\ V_(读)= (V_(中)* 4095)/ V_ (REF) - > V_(在)= (V_(读)* V_ (REF)) / 4095 - > V_(在)= (37 * 1.8)/ 4095 = 0.016 V \ $
方法中包含的值乘以读取值即可帮助进行计算in_voltage_scale
描述符:
#Cat /sys/bus/iio/devices/iio\:device0/in_voltage_scale 0.439453125 .使用实例
\$V_(IN) = V_(READ) * "
样例应用程序
一个示例应用程序apix-adc-example
包含在dey-examples-digiapix食谱(一部分)dey-examples的包)meta-digi层。这个应用程序展示了如何使用Digi APIx库ConnectCore 8M Nano平台
去GitHub查看应用程序说明和源代码。
看到ADC API获取有关ADC APIx的更多信息。