ADC max1027

From ArmadeusWiki

Instructions to install and use the MAX1027 ADC. This device is an option of the APF9328 boards. To know if you have one on your board, take a look at the connectors side:

APF9328 with MAX1027.jpg

If you don't have one and are a good electronician, you can order a sample at Maxim's website and solder it directly on your board (footprint is available).

Introduction

The Max1027 is an 8 channels 10 bits A/D converter with an integrated temperature sensor.

Hardware

The 8 inputs voltage range is [0 - 3,3V]. Don't try to put higher voltage on ADC inputs !!
The i.MXL SPI_1 interface is used to communicate with the device.

Driver

For the Linux kernel, the Max1027 is considered as a Hardware Monitoring device. For the moment only a low speed interface (/sys) is available: the eight channels and the temperature are updated every 10ms.

Installation

  • From the top directory:
$ make linux-menuconfig
  • Then select in Device Drivers->SPI support->Freescale iMX SPI controler driver (builtin not module !!)

SPI Linux Config.png

  • Then select in Device Drivers->Hardware Monitoring Support->MAX1027 sensor chip (Module)

HWMonitor Linux Config.png

MAX1027 Linux Config.png

  • Once the new config saved, rebuild your image
$ make

and copy hwmon.ko and max1027.ko driver to your target or reflash your rootfs.

  • On the target, the driver can be started like this:
# insmod /lib/modules/drivers/hwmon/hwmon.ko
# insmod /lib/modules/drivers/hwmon/max1027.ko
  • or like this if you reflashed your rootfs:
# modprobe max1027

Usage

Several interfaces in /sys/bus/spi/devices/ are created in order to:

  • read the 8 inputs (inx_input). Result in mV
  • read the temperature (temp_input). Result in deg celsius
  • modify the default configuration (config and conv)

An input can be read like that

# cat /sys/bus/spi/devices/spi1.0/in0_input

The temperature can be read like that

# cat /sys/bus/spi/devices/spi1.0/temp1_input

The two configurations files allow direct access to the corresponding register in the MAX1027:

# let conv=0xb9; echo $conv > /sys/bus/spi/devices/spi1.0/conversion

For more details, take a look at the datasheet.

Links

Other languages:

English Flag.svg English  •  French Flag.svg Français