MAX11131BOB
MAX11131 Breakout Board - 12-bit 3Msps 16-ch ADC with SampleSet
Hello World
Import programMAX11131BOB_12bit_16ch_SampleSet_SPI_ADC
Example host software for the Maxim Integrated MAX11131 SPI 12-bit 16-channel ADC with SampleSet. Hosted on the MAX32625MBED.
Library
Import libraryMAX11131
Maxim Integrated MAX11131 SPI 12-bit 16-channel ADC with SampleSet
Pinout
Datasheet
http://www.maximintegrated.com/products/MAX11131BOBNotes
MAX11131 Breakout Board 12-bit 3MSps 16-ch ADC
General Description
Analog-to-digital converters (ADCs) provide accurate measurement and conversion of signals to digital format for sensing in many electronic applications such as industrial, medical and sensor systems. The MAX11131 is a high speed, 16 channel, 12-bit ADC with a unique feature, SampleSet. SampleSet allows users to tailor individual sample rates for each input channel. Development with ADCs involves expertise in analog systems, power supplies, digital interfaces and firmware. Now, enter the MAX11131BOB to accelerate the development process.
The MAX11131BOB Breakout Board provides for rapid prototyping and development with the MAX11131 (a 12-bit, 3Msps, 16-channel, ADC with SampleSet). MAX11131BOB interfaces to any Arduino™-compatible or mbed.org™ compatible platform system with expansion ports configurable for SPI communication. Additionally, the MAX11131BOB works with systems that have a Pmod™ connection, a 2x6 right-angle header at board edge (compatible with Digilentinc.com Pmod™ interface spec) Interface type 2A (expanded SPI) on 2x6 header at board edge. MAX11131 also comes with schematics, design files, and firmware for immediate use and forking to future projects.
The board interfaces to SPI with logic levels in the range 3.0V to 5.5V.
The board comes installed with MAX11131ATI+ installed.
Example firmware is provided for Arduino™ and mbed.org™ system boards.
Tested with:
- MAX32625MBED# https://os.mbed.com/platforms/MAX32625MBED/
- MAX32600MBED# https://os.mbed.com/platforms/MAX32600MBED/
- STM32F446 Nucleo-64 https://os.mbed.com/platforms/ST-Nucleo-F446RE/
- Arduino UNO (rev 3) https://store.arduino.cc/usa/arduino-uno-rev3/
- Adafruit Metro 328 Arduino compatible (USB micro B) https://www.adafruit.com/product/50
- Arduino Pro Mini 3.3V/8MHz https://store.arduino.cc/usa/arduino-pro-mini/
PMOD is a trademark of Digilent Inc
Arduino is a trademark of Arduino AG
Arm and Mbed are trademarks of Arm Limited (or its subsidiaries)
Windows is a trademark of Microsoft
Quick Start
Required Equipment
- MAX11131BOB# Breakout Board
- Appropriate mbed.org or Arduino board
- The procedures below describe the Quick Start process with the MAX32625MBED# and the Arduino UNO.
- Computer with USB and web access
- A serial terminal emulator software such as teraterm, realterm, picocom, minicom, or equivalent
The procedures below describe the Quick Start process with the MAX32625MBED# and the Arduino. MAX11131BOB has been tested on the platform boards listed above.
There are two example programs for each platform:
- The "Simplified Hello World" program is a small example program which can be changed by modifying the Hello_MAX11131.cpp source code and repeating the compile-build-upload cycle, providing straightforward code for easy adoption.
- The "Serial Tester" program is an interactive, menu-driven test program which is controlled through a serial communications port, using a terminal emulator, supporting quick discovery and evaluation of device features for testing functionality.
Procedure for Mbed: Simplified Hello World
The "Simplified Hello World" program is a small example program which can be changed by modifying the Hello_MAX11131.cpp source code and repeating the compile-build-upload cycle, providing straightforward code for easy adoption.
The Breakout Board is fully assembled and tested. The first time the board is used, the MAX11131BOB firmware must be loaded into the MAX32625MBED, or equivalent platform board. This firmware is stored on the MAX32625MBED board and remains after the board is powered off. When the board is plugged into USB the first time, the computer may need about a minute to install its device drivers.
Import programMAX11131BOB_12bit_16ch_SampleSet_SPI_ADC
Example host software for the Maxim Integrated MAX11131 SPI 12-bit 16-channel ADC with SampleSet. Hosted on the MAX32625MBED.
Follow the steps below to verify board operation:
- Connect the MAX11131BOB to the MAX32625MBED or equivalent mbed platform board using the standard pinout.
- Connect a USB cable from computer to MAX32625MBED board “HDK” USB port. (Windows may require some time to install its device driver.) Expect the system to automatically mount the board as a new USB drive named MBED or DAPLINK or something similar. This is a special-purpose drive: firmware will be loaded into the board by copying the compiled binary into the board's drive. Don't write any other files to this drive.
- Open your board's USB device folder and double click on its MBED.HTML file. On the board page, click Add to your Mbed Compiler. This adds your Mbed board to the Online Compiler as a compilation target. See https://os.mbed.com/docs/mbed-os/v5.13/quick-start/index.html for more detailed instructions on using the online compiler.
- In a web browser, navigate to https://os.mbed.com/teams/MaximIntegrated/code/MAX11131BOB_12bit_16ch_SampleSet_SPI_ADC/ and click Import into Compiler. The mbed online IDE window opens, and prompts to import program. Click Import button to complete the import.
- Compile the program. When complete, the online mbed IDE downloads the firmware file to your local downloads folder.
- Locate the newly built firmware file MAX11131BOB_12bit_16ch_SampleSet_SPI_ADC.MAX32625MBED.bin and copy the file to the board's MBED drive. (The names might not match exactly if using a platform other than MAX32625MBED, or if there is already a file with that name.) If a warning dialog appears asking to move this file without its properties, answer yes. After file copying is complete, press and release the board's RESET button to start the firmware. Connect input voltages to AIN inputs. Note: if nothing is connected to the analog inputs, the value may "float" to an unspecified, arbitrary value.
- The program behavior can be changed by modifying the Hello_MAX11131.cpp source code and repeating the compile-build-upload cycle from step 4.
- You can discard your local changes and reset to the latest published firmware version as follows: Bring up the project Revision tab and right-click on the line that says “default” “tip”. In the popup context menu, select Switch working copy to this revision…. There will be a warning that there are uncommitted local changes in the working tree. Click Discard, and all of the local files will be reset to the published version.
Procedure for Mbed: Serial Tester
The "Serial Tester" program is an interactive, menu-driven test program which is controlled through a serial communications port, using a terminal emulator, supporting quick discovery and evaluation of device features for testing functionality.
The Breakout Board is fully assembled and tested. The first time the board is used, the MAX11131BOB firmware must be loaded into the MAX32625MBED, or equivalent platform board. This firmware is stored on the MAX32625MBED board and remains after the board is powered off. The serial tester firmware uses a USB serial port to communicate. When the board is plugged into USB the first time, the computer may need about a minute to install its device drivers.
Import programMAX11131BOB_Serial_Tester
Test program running on MAX32625MBED. Control through USB Serial commands using a terminal emulator such as teraterm or putty.
Follow the steps below to verify board operation:
- Connect the MAX11131BOB to the MAX32625MBED or equivalent mbed platform board using the standard pinout.
- Connect a USB cable from computer to MAX32625MBED board “HDK” USB port. (Windows may require some time to install its device driver.) Expect the system to automatically mount the board as a new USB drive named MBED or DAPLINK or something similar. This is a special-purpose drive: firmware will be loaded into the board by copying the compiled binary into the board's drive. Don't write any other files to this drive.
- Open your board's USB device folder and double click on its MBED.HTML file. On the board page, click Add to your Mbed Compiler. This adds your Mbed board to the Online Compiler as a compilation target. See https://os.mbed.com/docs/mbed-os/v5.13/quick-start/index.html for more detailed instructions on using the online compiler.
- In a web browser, navigate to https://os.mbed.com/teams/MaximIntegrated/code/MAX11131BOB_Serial_Tester/ and click Import into Compiler. The mbed online IDE window opens, and prompts to import program. Click Import button to complete the import.
- Compile the program. When complete, the online mbed IDE downloads the firmware file to your local downloads folder.
- Locate the newly built firmware file MAX11131BOB_Serial_Tester.MAX32625MBED.bin and copy the file to the board's MBED drive. (The names might not match exactly if using a platform other than MAX32625MBED, or if there is already a file with that name.) If a warning dialog appears asking to move this file without its properties, answer yes.
- Connect another, or the existing USB cable from computer to MAX32625MBED board “DEV” USB port. Expect the LEDs in the lower right corner should flash briefly and then remain lit.
- Locate the newly arrived USB Serial Device COM port, and use a serial terminal emulator (such as teraterm, realterm, picocom, minicom, or equivalent). Baud rate is 9600.
Procedure for Arduino: Simplified Hello World
The "Simplified Hello World" program is a small example program which can be changed by modifying the Hello_MAX11131.cpp source code and repeating the compile-build-upload cycle, providing straightforward code for easy adoption.
The Breakout Board is fully assembled and tested. Note if used with classic Arduino UNO which has full-sized USB type B connector, ensure that the shield of the USB connector does not contact the underside of the breakout board / Arduino shield. The first time the board is used, the MAX11131BOB firmware must be loaded into the Arduino board. This firmware is stored on the Arduino board and remains after the board is powered off. The firmware uses a USB serial port to communicate. When the board is plugged into USB the first time, the computer may need about a minute to install its device drivers.
Follow the steps below to verify board operation:
- Connect the MAX11131BOB to the Arduino board using the standard pinout.
- Connect a USB cable from computer to Arduino board USB port. (Windows may require some time to install its device driver.)
- In a web browser, navigate to https://create.arduino.cc/editor/whismanoid/306bb65b-0c06-40d3-9a3f-e2891102affc/preview and click "Add to my Sketchbook".
- Connect USB cable to Arduino hardware. If this is your first time using Arduino Create online, you may be prompted to install Arduino Create Agent to connect with the hardware.
- Compile the program with the "Upload and Save" button.
- Connect input voltages to AIN inputs. Note: if nothing is connected to the analog inputs, the value may "float" to an unspecified, arbitrary value.
- The program behavior can be changed by modifying the Hello_MAX11131.cpp source code and repeating the compile-build-upload cycle.
Procedure for Arduino: Serial Tester
The "Serial Tester" program is an interactive, menu-driven test program which is controlled through a serial communications port, using a terminal emulator, supporting quick discovery and evaluation of device features for testing functionality.
The Breakout Board is fully assembled and tested. Note if used with classic Arduino UNO which has full-sized USB type B connector, ensure that the shield of the USB connector does not contact the underside of the breakout board / Arduino shield. The first time the board is used, the MAX11131BOB firmware must be loaded into the Arduino board. This firmware is stored on the Arduino board and remains after the board is powered off. The firmware uses a USB serial port to communicate. When the board is plugged into USB the first time, the computer may need about a minute to install its device drivers.
Follow the steps below to verify board operation:
- Connect the MAX11131BOB to the Arduino board using the standard pinout.
- Connect a USB cable from computer to Arduino board USB port. (Windows may require some time to install its device driver.)
- In a web browser, navigate to https://create.arduino.cc/editor/whismanoid/08fe72c1-7e06-4264-ab3a-873aa466812f/preview and click "Add to my Sketchbook".
- Connect USB cable to Arduino hardware. If this is your first time using Arduino Create online, you may be prompted to install Arduino Create Agent to connect with the hardware.
- Compile the program with the "Upload and Save" button.
- Locate the newly arrived USB Serial Device COM port, and use a serial terminal emulator (such as teraterm, realterm, picocom, minicom, or equivalent). Baud rate is 9600.
Sending Commands with a Serial Console
A serial terminal emulator software (such as teraterm, realterm, putty, picocom, minicom, or equivalent) must be installed to communicate with the example firmware. Various terminal programs connect in various ways and have different user interfaces, but they all share a common set of basic features:
- Connecting to a specific serial port device by name, such as COM4 or /dev/ttyACM0
- Settings such as baud rate 9600, 8 bits / No parity / 1 Stop bit, no flow control
- Typing at the keyboard transmits to the firmware through the serial port
- Messages received from the firmware are displayed on the screen
- A special keyboard command or menu item exits the terminal program
See https://os.mbed.com/handbook/Terminals for more details. More resources:
- https://learn.sparkfun.com/tutorials/terminal-basics/tera-term-windows
- https://learn.sparkfun.com/tutorials/terminal-basics/real-term-windows
- https://learn.sparkfun.com/tutorials/terminal-basics/yat---yet-another-terminal-windows
- https://learn.sparkfun.com/tutorials/terminal-basics/coolterm-windows-mac-linux
- https://learn.adafruit.com/windows-tools-for-the-electrical-engineer/serial-terminal
- https://www.putty.org/
In Windows™, install a terminal emulator such as teraterm, realterm, or putty. Find the serial port name and COM port number in Control Panel “View devices and printers”. The Mbed board will appear as “USB Serial Device” or “mbed Serial Port”. See https://os.mbed.com/handbook/Windows-serial-configuration and https://os.mbed.com/docs/mbed-os/v5.11/tutorials/windows-serial-driver.html for troubleshooting. Start the terminal emulator and use its menu to connect to the serial port that belongs to the board. Pressing ENTER displays the firmware’s banner message (see example session).
In linux, install a terminal emulator such as minicom or picocom. For example, under Debian or Ubuntu linux, use
sudo apt-get install picocom
In linux (Debian), find the serial port name as follows:
# with the board not connected, get list of tty device names ls -1 /dev/tty~* >dev_tty_baseline # now connect the device to USB and find the new tty device name (such as /dev/ttyACM0) ls -1 /dev/tty~* | diff dev_tty_baseline -
The picocom terminal emulator runs from the tty console. The tty device name must be given on the command line when starting picocom. See man picocom for more details.
picocom /dev/ttyACM0 --baud 9600
Pressing ENTER displays the firmware’s banner message (see example session). Pressing CTRL+A and then CTRL+X exits picocom.
Example Serial Console Session
The firmware uses a USB serial port to communicate. Typing “?” prints a menu of supported device commands.
# Brief Example for MAX11131BOB Breakout Board Main menu MAX11131 12-bit 3MSps 16-ch ADC MAX32625 [microUSB] ? -- help MAX11131 > ? Main menu MAX11131 12-bit 3MSps 16-ch ADC MAX32625 [microUSB] ? -- help # -- lines beginning with # are comments . -- SelfTest %Hn {pin: 0 1 3 4 5 6 7 8 14 15 16 17} -- High Output %Ln {pin: 0 1 3 4 5 6 7 8 14 15 16 17} -- Low Output %?n {pin: 0 1 3 4 5 6 7 8 14 15 16 17} -- Input %A -- analogRead %D -- DAC output MAX541 (SPI2) %SC SCLK=12000000=12.000MHz CPOL=1 CPHA=1 -- SPI config %SW mosi,mosi,...mosi -- SPI write hex bytes 0 n=? -- MAX11131_ScanRead 1 ch=? pm=? id=? -- MAX11131_ScanManual 2 ch=? av=? n=? pm=? swcnv=? -- MAX11131_ScanRepeat 3 ch=? av=? pm=? swcnv=? -- MAX11131_ScanStandardIntClock 4 ch=? pm=? id=? -- MAX11131_ScanStandardExtClock 5 ch=? av=? pm=? swcnv=? -- MAX11131_ScanUpperIntClock 6 ch=? pm=? id=? -- MAX11131_ScanUpperExtClock 7 enableMask=0xffff av=? pm=? swcnv=? -- MAX11131_ScanCustomIntClock 8 enableMask=0xffff pm=0 id=1 -- MAX11131_ScanCustomExtClock 9 channelsPattern... pm=? id=? | len=? -- MAX11131_ScanSampleSetExtClock @ -- print MAX11131 configuration ISc) IUc) IBc) IRc) reconfigure channel single-ended/unipolar/bipolar/range MAX11131 > # Main menu MAX11131 12-bit 3MSps 16-ch ADC MAX32625 [microUSB] ? -- help MAX11131 > # 1: ScanManual on channel 3 with channel id tag Main menu MAX11131 12-bit 3MSps 16-ch ADC MAX32625 [microUSB] ? -- help MAX11131 > 1 ch=3 pm=0 id=1 ScanManual ch=3 pm=0 id=1 ScanRead_nWords_chanID nWords=1 MAX11131.MISO[0]=0x3f38: ch=3 xu=3896 = 0x0f38 = 2.3779V MAX11131 > # 0: read more Main menu MAX11131 12-bit 3MSps 16-ch ADC MAX32625 [microUSB] ? -- help MAX11131 > 0 n=5 ScanRead NumWords=5 External ClockScanRead_nWords_chanID nWords=5 MAX11131.MISO[0]=0x3e6c: ch=3 xu=3692 = 0x0e6c = 2.2534V MAX11131.MISO[1]=0x3e4c: ch=3 xu=3660 = 0x0e4c = 2.2339V MAX11131.MISO[2]=0x3e2c: ch=3 xu=3628 = 0x0e2c = 2.2144V MAX11131.MISO[3]=0x3e0c: ch=3 xu=3596 = 0x0e0c = 2.1948V MAX11131.MISO[4]=0x3dec: ch=3 xu=3564 = 0x0dec = 2.1753V MAX11131 > # Main menu MAX11131 12-bit 3MSps 16-ch ADC MAX32625 [microUSB] ? -- help MAX11131 > # 9: ScanSampleSetExternalClock expect ch=2,3,5,7,9,11,7,2,5 Main menu MAX11131 12-bit 3MSps 16-ch ADC MAX32625 [microUSB] ? -- help MAX11131 > 9 2 3 5 7 9 11 7 2 5 pm=0 id=1 ScanSampleSetExternalClock enabledChannelsPattern:{ AIN2 AIN3 AIN5 AIN7 AIN9 AIN11 AIN7 AIN2 AIN5 AIN0 AIN1 } pm=0 id=1 ScanRead_nWords_chanID nWords=11 MAX11131.MISO[0]=0x28f9: ch=2 xu=2297 = 0x08f9 = 1.4020V MAX11131.MISO[1]=0x3df9: ch=3 xu=3577 = 0x0df9 = 2.1832V MAX11131.MISO[2]=0x5fff: ch=5 xu=4095 = 0x0fff = 2.4994V MAX11131.MISO[3]=0x7d50: ch=7 xu=3408 = 0x0d50 = 2.0801V MAX11131.MISO[4]=0x9b2a: ch=9 xu=2858 = 0x0b2a = 1.7444V MAX11131.MISO[5]=0xbfff: ch=11 xu=4095 = 0x0fff = 2.4994V MAX11131.MISO[6]=0x7d3e: ch=7 xu=3390 = 0x0d3e = 2.0691V MAX11131.MISO[7]=0x28ef: ch=2 xu=2287 = 0x08ef = 1.3959V MAX11131.MISO[8]=0x5fff: ch=5 xu=4095 = 0x0fff = 2.4994V MAX11131.MISO[9]=0x0660: ch=0 xu=1632 = 0x0660 = 0.9961V MAX11131.MISO[10]=0x1734: ch=1 xu=1844 = 0x0734 = 1.1255V MAX11131 > # @: print MAX11311 configuration Main menu MAX11131 12-bit 3MSps 16-ch ADC MAX32625 [microUSB] ? -- help MAX11131 > @ 0x4824 ADC_MODE_CONTROL SCAN_1001_SampleSetExt RESET=1 CHANID=1 0x8000 ADC_CONFIGURATION 0x8800 UNIPOLAR 0x0000 0x9000 BIPOLAR 0x0000 0x9800 RANGE 0x0000 0xa650 CSCAN0 0x00ca 0xaff0 CSCAN1 0x00fe 0xb050 SAMPLESET SEQ_LENGTH[7:0]=0x000a so length=11 channels 0x2357 SampleSet Entry: AIN2 AIN3 AIN5 AIN7 0x9b72 SampleSet Entry: AIN9 AIN11 AIN7 AIN2 0x5010 SampleSet Entry: AIN5 AIN0 AIN1 AIN0 SPI_MOSI_Semantic=0 NumWords=11 isExternalClock=1 ScanMode=9 channelNumber_0_15=3 PowerManagement_0_2=0 chan_id_0_1=1 average_0_4_8_16_32=0 nscan_4_8_12_16=0 swcnv_0_1=0 enabledChannelsMask=0xcafe VRef=2.500V MAX11131 > # 0: read more Main menu MAX11131 12-bit 3MSps 16-ch ADC MAX32625 [microUSB] ? -- help MAX11131 > 0 n=10 ScanRead NumWords=16 External ClockScanRead_nWords_chanID nWords=16 MAX11131.MISO[0]=0x2901: ch=2 xu=2305 = 0x0901 = 1.4069V MAX11131.MISO[1]=0x3e48: ch=3 xu=3656 = 0x0e48 = 2.2314V MAX11131.MISO[2]=0x5fff: ch=5 xu=4095 = 0x0fff = 2.4994V MAX11131.MISO[3]=0x7d4a: ch=7 xu=3402 = 0x0d4a = 2.0764V MAX11131.MISO[4]=0x9aa4: ch=9 xu=2724 = 0x0aa4 = 1.6626V MAX11131.MISO[5]=0xbfff: ch=11 xu=4095 = 0x0fff = 2.4994V MAX11131.MISO[6]=0x7d33: ch=7 xu=3379 = 0x0d33 = 2.0624V MAX11131.MISO[7]=0x28f7: ch=2 xu=2295 = 0x08f7 = 1.4008V MAX11131.MISO[8]=0x5fff: ch=5 xu=4095 = 0x0fff = 2.4994V MAX11131.MISO[9]=0x065f: ch=0 xu=1631 = 0x065f = 0.9955V MAX11131.MISO[10]=0x1736: ch=1 xu=1846 = 0x0736 = 1.1267V MAX11131.MISO[11]=0x28dd: ch=2 xu=2269 = 0x08dd = 1.3849V MAX11131.MISO[12]=0x3e1b: ch=3 xu=3611 = 0x0e1b = 2.2040V MAX11131.MISO[13]=0x5fff: ch=5 xu=4095 = 0x0fff = 2.4994V MAX11131.MISO[14]=0x7d2f: ch=7 xu=3375 = 0x0d2f = 2.0599V MAX11131.MISO[15]=0x9a92: ch=9 xu=2706 = 0x0a92 = 1.6516V MAX11131 >
Detailed Description of Hardware
The MAX11131 is a 12-bit, 3Msps, 16-channel, ADC with SampleSet. Connect analog inputs to the AIN0..AIN15 header pins. (The first 6 analog inputs are also connected to the standard Arduino analog pins on the external connector.) The MAX6126 provides the 2.5V analog reference voltage. The MAX8511 provides a low-dropout 3.3V supply. The MAX14850 digital isolator translates the external logic signals in the range of 3.0V to 5.5V for use with the MAX11131’s 3.3V supply. For more information on these products, please visit:
- https://www.maximintegrated.com/max11131
- https://www.maximintegrated.com/max6126
- https://www.maximintegrated.com/max8511
- https://www.maximintegrated.com/max14850
Using AIN14
Analog input pin CNVST/AIN14 is initially configured to support conversion-start command CNVST. To configure the board to use CNVST/AIN14 for analog input, cut jumper J16 and apply analog input at header H2.
Using AIN15
Analog input pin REF-/AIN15 is initially configured to support REF-. To configure the board to use REF-/AIN15 for analog input, cut jumper J15 and apply analog input at header H2.
Table 1. Jumper Functions
Jumper | State | Function |
---|---|---|
J2 | 1-2* | Analog input AIN0 connects to Arduino pin A0 |
J3 | 1-2* | Analog input AIN1 connects to Arduino pin A1 |
J4 | 1-2* | Analog input AIN2 connects to Arduino pin A2 |
J5 | 1-2* | Analog input AIN3 connects to Arduino pin A3 |
J6 | 1-2* | Analog input AIN4 connects to Arduino pin A4 |
J7 | 1-2* | Analog input AIN5 connects to Arduino pin A5 |
J16 | 1-2* | Analog input pin AIN14 is used for CNVST conversion start command |
J15 | 1-2* | Analog input pin AIN15 is used for REF(-) reference negative input |
J8 | 1-2* | Analog reference input REF(+) is driven by on-board +2.5V reference (MAX6126) |
J13 | 1-2* | VDD supply is provided by on-board +3.3V regulator (MAX8511) |
J1 | 1-2* | OVDD supply is provided by on-board +3.3V regulator (MAX8511) |
J14 | 1-2* | 2.5V reference force/sense connection point |
J17 | 1-2* | MAX14850 GNDA-GNDB connection point |
*Default
Ordering Information
PART | TYPE |
---|---|
MAX11131BOB# | Breakout Board |
#Denotes RoHS compliant.
You need to log in to post a discussion