MAX14916 no-OS Example Project
See projects/max14916 (doxygen) for the Doxygen documentation.
Supported Evaluation Boards
Overview
The MAX14916 is a compact industrial octal high-side switch with integrated diagnostics. Each of the eight channels features an on-resistance of only 120 mOhm (typ) and handles up to 1.1 A of continuous current. Two adjacent channels can be combined to form four 2.4 A switches. The device is controlled via SPI with built-in chip addressing for up to four devices on a common chip select.
The SPI interface provides per-channel configuration and diagnostics including undervoltage detection, open-wire detection (in both on and off states), overload and current limiting reporting, and thermal shutdown protection. Integrated surge protection (IEC61000-4-5) requires only a single external TVS on VDD. The device operates from -40 C to +125 C and is available in a compact 48-pin 6 mm x 6 mm QFN package.
Applications
Industrial digital outputs
PLC systems
Hardware Specifications
Power Supply Requirements
Absolute maximum VDD: 65 V
Supply current: 2 mA (typ)
On-resistance: 250 mOhm (max) at 125 C ambient
Logic voltage interface: 2.5 V to 5.5 V
No-OS Supported Examples
The initialization data used in the examples is taken out from the Project Common Data Path.
The macros used in Common Data are defined in platform specific files found in the Project Platform Configuration Path.
Basic example
The basic example initializes the MAX14916 device via SPI and demonstrates LED control by cycling the status LEDs on each channel. It also configures device parameters such as the flash LED time, watchdog timer, open-wire OFF current source, and short-to-VDD threshold, then reads back the configuration registers for verification.
IIO example
The IIO example initializes the MAX14916 device and configures the IIO application descriptor with output channels, enabling users to interact with the device using IIO-based tools.
If you are not familiar with ADI IIO Application, please take a look at: IIO No-OS
If you are not familiar with ADI IIO Oscilloscope Client, please take a look at: IIO Oscilloscope
No-OS Supported Platforms
Maxim
Used Hardware
Connections
The MAX14916EVKIT communicates via SPI. Connect the SPI signals (SCLK, SDI, SDO, CS) and GND between the MAX14916EVKIT and the target microcontroller board.
SPI Parameter |
AD-APARD32690-SL |
MAX32666FTHR |
|---|---|---|
SPI Device ID |
4 |
1 |
SPI Chip Select |
0 |
0 |
SPI Baudrate |
100000 |
100000 |
Build Command
For toolchain setup and prerequisites, see the Maxim CMake build guide.
Available variants: basic, iio_example.
Available boards: ad-apard32690-sl, max32666fthr.
Replace --variant / --board accordingly.
# point at the Maxim SDK libraries (only if not auto-detected)
export MAXIM_LIBRARIES=</path/to/MaximSDK/Libraries>
# Windows (PowerShell): $env:MAXIM_LIBRARIES = "C:\MaximSDK\Libraries"
cd no-OS
# build the project (basic example on the ad-apard32690-sl board)
python tools/scripts/no_os_build.py build \
--project max14916 --variant basic --board ad-apard32690-sl
# build and flash (requires a connected debug probe)
python tools/scripts/no_os_build.py build \
--project max14916 --variant basic --board ad-apard32690-sl \
--probe openocd --flash
Linux Host (USB2PMB2) Platform
Used Hardware
USB2PMB2 (FTDI FT2232HQ-based USB-to-PMOD adapter)
Connections
The MAX14916EVKIT communicates via SPI. Connect the board to the USB2PMB2 adapter as follows:
MAX14916EVKIT Pin |
USB2PMB2 Pin |
|---|---|
VDD (3.3 V logic) |
3.3 V output |
GND |
GND |
SCLK |
ADBUS0 (SPI Clock) |
SDI (MOSI) |
ADBUS1 (SPI MOSI) |
SDO (MISO) |
ADBUS2 (SPI MISO) |
CS |
ADBUS3 (SPI Chip Select) |
Prerequisites
The linux-userspace build for the USB2PMB2 board uses the FTDI D2XX and LibMPSSE libraries. Because the FTDI website requires a browser-based download, obtain the archives manually first and then install them with the provided helper script:
# Install libftd2xx and LibMPSSE from locally downloaded archives
python3 tools/scripts/config_ftd2xx.py \
--local-mpsse D2XX_MPSSE_1.0.7_Linux.zip \
--local-d2xx libftd2xx-linux-x86_64-1.4.35.tgz
Before running the compiled binary, unload the ftdi_sio kernel module so
the D2XX library can claim the USB device directly:
sudo rmmod ftdi_sio usbserial
Build Command
For toolchain setup and prerequisites, see the Linux Userspace CMake build guide.
Available variants: basic, iio_example.
Available boards: usb2pmb2.
Replace --variant accordingly.
No toolchain environment variable is required — the system gcc is
used automatically.
cd no-OS
# build the basic example for the USB2PMB2 board
python3 tools/scripts/no_os_build.py build \
--project max14916 --variant basic --board usb2pmb2
# build the iio_example for the USB2PMB2 board
python3 tools/scripts/no_os_build.py build \
--project max14916 --variant iio_example --board usb2pmb2
Run the resulting binary directly on the Linux host (sudo is required for
D2XX USB access):
sudo ./build/max14916-basic-usb2pmb2/build/max14916
For the iio_example variant, the IIOD server listens on the loopback
interface. Connect an IIO client once the binary is running:
iio_info -u ip:127.0.0.1