模数转换器(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微控制器辅助ADCCONFIG_MCA_ADC

这些选项在默认情况下是内置的ConnectCore 8M Nano内核配置文件

内核驱动程序

设备树绑定和自定义

设备树必须包含以下条目:

  • ADC接口

  • 启用的通道

ConnectCore 8M Nano MCA ADC接口

ConnectCore 8M纳米器件树
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

ConnectCore 8M纳米开发工具包设备树
//&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_adcMCA)。

  • 启用要启用的通道索引,请使用数码网络,adc-ch-list

  • 编译设备树并将其安装到您的平台中。

使用adc

ADC驱动程序被设计为标准工业I/O (IIO)设备驱动程序,可以从系统或用户应用程序访问。

Sysfs访问

启用后,ADC驱动程序在IIO sysfs目录中创建相应的设备项(/ sys /汽车/ iio /设备).要确定哪个条目对应于哪个驱动程序,请读取名字描述符:

通过sysfs读取ADC名称
#Cat /sys/bus/iio/devices/iio\:device0/name McA-cc8m-adc

驱动程序创建一个名为in_voltageX_raw为每个ADC通道,其中X对应通道号。读取通道的输入值:

通过sysfs读取ADC
#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) * "" = 37 * 0.439453125 = 16.259 mV = 0.016 V\$

样例应用程序

一个示例应用程序apix-adc-example包含在dey-examples-digiapix食谱(一部分)dey-examples的包)meta-digi层。这个应用程序展示了如何使用Digi APIx库ConnectCore 8M Nano平台

GitHub查看应用程序说明和源代码。

看到ADC API获取有关ADC APIx的更多信息。