MAX5715BOB
MAX5715 Breakout Board - 12-bit 4-ch SPI VOUT DAC
Hello World
Import programMAX5715BOB_12bit_4ch_SPI_DAC
Example host software for the Maxim Integrated MAX5715 12-bit 4-channel voltage-output DAC. Hosted on the MAX32625MBED.
Library
Import libraryMAX5715
Maxim Integrated MAX5715 12-bit 4-channel voltage-output DAC
Pinout
Datasheet
https://www.maximintegrated.com/MAX5715BOBNotes
MAX5715 Breakout Board 12-bit 4-ch SPI VOUT DAC
General Description
Digital-to-analog converters (DACs) provide accurate output voltages for actuation and control in many electronic applications such as industrial, medical and RF systems. The MAX5715 is a highly accurate, four channel, 12-bit voltage output DAC. Development with DACs involves expertise in analog systems, power supplies, digital interfaces and firmware. Now, enter the MAX5715BOB to accelerate the development process.
The MAX5715BOB (Break Out Board) provides for rapid prototyping and development with the MAX5715 (a 12-bit, 4-channel, voltage-output DAC). MAX5715BOB interfaces to any Arduino™-compatible or mbed.org™ compatible platform system with expansion ports configurable for SPI communication. Additionally, the MAX5715BOB 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. MAX5715BOB also comes with schematics, design files, and firmware for immediate use and forking to future projects.
The board directly interfaces to SPI with logic levels in the range 2.7V to 5.5V.
The board comes installed with MAX5715AAUD+ 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
- MAX5715BOB# 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. MAX5715BOB 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_MAX5715.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_MAX5715.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 MAX5715BOB 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 firmware uses a USB serial port to communicate. (Either the HDK or DEV USB connector can be used for communication, but the DEV USB connector is required to power the board.) When the board is plugged into USB the first time, the computer may need about a minute to install its device drivers.
Import programMAX5715BOB_12bit_4ch_SPI_DAC
Example host software for the Maxim Integrated MAX5715 12-bit 4-channel voltage-output DAC. Hosted on the MAX32625MBED.
Follow the steps below to verify board operation:
- Connect the MAX5715BOB 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/MAX5715BOB_12bit_4ch_SPI_DAC/ 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 MAX5715BOB_12bit_4ch_SPI_DAC.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. Use a DVM to measure the voltages on the MAX5715BOB: REF=2.5V, OUTA=2.0V, OUTB=1.25V, OUTC=1.0V, OUTD=2.5V.
- The program behavior can be changed by modifying the Hello_MAX5715.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 MAX5715BOB 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 programMAX5715BOB_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 MAX5715BOB 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/MAX5715BOB_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 MAX5715BOB_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_MAX5715.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 MAX5715BOB 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 MAX5715BOB 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/5faff349-b8ce-4ca7-9dce-9d8e8677761f/preview to view the MAX5715BOB example code sketch files.
- Click the Open in Web Editor button to import the example sketch into the online Arduino Create IDE, or click the download button to download the files as a zip archive.
- Compile the program by clicking the Upload and Save button. When complete, the firmware file will be loaded into the attached Arduino board.
- Open the Monitor tab and configure the baud rate to 115200 baud. Or, alternatively, 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 115200.
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 MAX5715BOB 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 MAX5715BOB 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/5143b342-d0e2-4758-a41d-0a18f03aeb5a/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 the 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.
# Example for MAX5715BOB Breakout Board Main menu MAX5715 12-bit 4-ch SPI VOUT DAC MAX32625 [microUSB] ? -- help MAX5715 > ? Main menu MAX5715 12-bit 4-ch SPI VOUT DAC MAX32625 [microUSB] ? -- help # -- lines beginning with # are comments . -- SelfTest %Hn {pin: 0 1 2 3 4 5 6 7 8 9 14 15 16 17} -- High Output %Ln {pin: 0 1 2 3 4 5 6 7 8 9 14 15 16 17} -- Low Output %?n {pin: 0 1 2 3 4 5 6 7 8 9 14 15 16 17} -- Input %A -- analogRead %SC SCLK=12000000=12.000MHz CPOL=1 CPHA=0 -- SPI config %SW mosi,mosi,...mosi -- SPI write hex bytes 0 ch=? code=? -- CODEn 1 ch=? -- LOADn 2 ch=? code=? -- CODEnLOADall 3 ch=? code=? -- CODEnLOADn 40 ch=? -- POWERn_Normal 41 ch=? -- POWERn_PD1k 42 ch=? -- POWERn_PD100k 43 ch=? -- POWERn_PDHiZ 50 -- SW_CLEAR 51 -- SW_RESET 60 ch=? -- CONFIGn_LATCHED 61 ch=? -- CONFIGn_TRANSPARENT 68 -- CONFIGall_LATCHED 69 -- CONFIGall_TRANSPARENT 70 -- REF_EXT 71 -- REF_2V500 72 -- REF_2V048 73 -- REF_4V096 74 -- REF_AlwaysOn_EXT 75 -- REF_AlwaysOn_2V500 76 -- REF_AlwaysOn_2V048 77 -- REF_AlwaysOn_4V096 80 code=? -- CODEall 81 -- LOADall 82 code=? -- CODEallLOADall @ -- print MAX5715 configuration L -- LDAC# pulse LH high LL low C -- CLR# pulse CH high CL low MAX5715 > # send 76 REF_AlwaysOn_2V048 to change internal reference voltage Main menu MAX5715 12-bit 4-ch SPI VOUT DAC MAX32625 [microUSB] ? -- help MAX5715 > 76 MAX5715_REF(REF_AlwaysOn_2V048) SPI MOSI-> 0x76 0x00 0x00 MISO<- 0xFF 0xFF 0xFF MAX5715 > # send 75 REF_AlwaysOn_2V500 to change internal reference voltage Main menu MAX5715 12-bit 4-ch SPI VOUT DAC MAX32625 [microUSB] ? -- help MAX5715 > 75 MAX5715_REF(REF_AlwaysOn_2V500) SPI MOSI-> 0x75 0x00 0x00 MISO<- 0xFF 0xFF 0xFF MAX5715 > # send 82 CODEallLOADall to write and update all channels same value Main menu MAX5715 12-bit 4-ch SPI VOUT DAC MAX32625 [microUSB] ? -- help MAX5715 > 82 code=0x555 CODEallLOADall code=1365 SPI MOSI-> 0x82 0x55 0x50 MISO<- 0xFF 0xFF 0xFF MAX5715 > # diagnostic %a measures MAX32625MBED AIN0,1 (5Vmax) and AIN2,3 (0.6Vmax) Main menu MAX5715 12-bit 4-ch SPI VOUT DAC MAX32625 [microUSB] ? -- help MAX5715 > %a AIN0 = 100.000% = 0.600V AIN4 = 14.174% = 0.850V AIN1 = 100.000% = 0.600V AIN5 = 14.174% = 0.850V AIN2 = 100.000% = 0.600V AIN3 = 100.000% = 0.600V MAX5715 > # send 3 CODEnLOADn to write and update individual channels Main menu MAX5715 12-bit 4-ch SPI VOUT DAC MAX32625 [microUSB] ? -- help MAX5715 > 3 ch=0 code=0xccc CODEnLOADn ch=0 code=3276 SPI MOSI-> 0x30 0xCC 0xC0 MISO<- 0xFF 0xFF 0xFF MAX5715 > %a AIN0 = 100.000% = 0.600V AIN4 = 33.724% = 2.023V AIN1 = 100.000% = 0.600V AIN5 = 14.174% = 0.850V AIN2 = 100.000% = 0.600V AIN3 = 100.000% = 0.600V MAX5715 > 3 ch=1 code=0x666 CODEnLOADn ch=1 code=1638 SPI MOSI-> 0x31 0x66 0x60 MISO<- 0xFF 0xFF 0xFF MAX5715 > %a AIN0 = 100.000% = 0.600V AIN4 = 33.724% = 2.023V AIN1 = 100.000% = 0.600V AIN5 = 16.911% = 1.015V AIN2 = 100.000% = 0.600V AIN3 = 100.000% = 0.600V MAX5715 > 3 ch=2 code=0x100 CODEnLOADn ch=2 code=256 SPI MOSI-> 0x32 0x10 0x00 MISO<- 0xFF 0xFF 0xFF MAX5715 > %a AIN0 = 100.000% = 0.600V AIN4 = 33.724% = 2.023V AIN1 = 100.000% = 0.600V AIN5 = 16.911% = 1.015V AIN2 = 26.295% = 0.158V AIN3 = 100.000% = 0.600V MAX5715 > # send 76 REF_AlwaysOn_2V048 to change internal reference voltage Main menu MAX5715 12-bit 4-ch SPI VOUT DAC MAX32625 [microUSB] ? -- help MAX5715 > 76 MAX5715_REF(REF_AlwaysOn_2V048) SPI MOSI-> 0x76 0x00 0x00 MISO<- 0xFF 0xFF 0xFF MAX5715 > %a AIN0 = 100.000% = 0.600V AIN4 = 27.664% = 1.660V AIN1 = 100.000% = 0.600V AIN5 = 13.881% = 0.833V AIN2 = 21.603% = 0.130V AIN3 = 100.000% = 0.600V MAX5715 > # send 43 POWERn_PDHiZ power off one channel high impedance Main menu MAX5715 12-bit 4-ch SPI VOUT DAC MAX32625 [microUSB] ? -- help MAX5715 > 43 ch=2 channel_dcba=4, POWERn_PDHiZ) SPI MOSI-> 0x43 0x04 0x00 MISO<- 0xFF 0xFF 0xFF MAX5715 > %a AIN0 = 100.000% = 0.600V AIN4 = 27.664% = 1.660V AIN1 = 100.000% = 0.600V AIN5 = 13.881% = 0.833V AIN2 = 97.458% = 0.585V AIN3 = 100.000% = 0.600V MAX5715 > Main menu MAX5715 12-bit 4-ch SPI VOUT DAC MAX32625 [microUSB] ? -- help MAX5715 > # end of test file
Detailed Description of Hardware
The MAX5715 is a 12-bit, 4-channel, voltage-output DAC with SPI Interface. Analog outputs are driven on the OUTA..OUTD header pins. (The analog outputs are also connected to the standard Arduino analog pins on the external connector.) For more information on the MAX5715, please visit:
Table 1. Jumper Functions
Jumper | State | Function |
---|---|---|
J2 | 1-2* | Analog reference REF connects to Arduino pin A4 |
J6 | 1-2* | Analog output OUTA connects to Arduino pin A0 |
J7 | 1-2* | Analog output OUTB connects to Arduino pin A1 |
J8 | 1-2* | Analog output OUTC connects to Arduino pin A2 |
J13 | 1-2* | Analog output OUTD connects to Arduino pin A3 |
J5 | 1-2* | VDD supply is driven by Arduino IOREF supply |
J4 | 1-2* | VDDIO supply is driven by Arduino IOREF supply |
*Default
Ordering Information
PART | TYPE |
---|---|
MAX5715BOB# | Breakout Board |
#Denotes RoHS compliant.
You need to log in to post a discussion