[TOC]
This quick-start document contains info on getting started with the MAX78002EVKIT evaluation platform. It supplements the full MAX78002EVKIT datasheet with information on software development and quick tips for getting started.
The schematic and BOM can be found in the MAX78002 EVKIT web page.
This section contains !!critical!! information regarding the power-sequencing of the MAX78002EVKIT. Please review this section to avoid damage to the board.
As of 3/1/2023 critical back-powering issues were identified related to the included MAX325625PICO debugger. If the power-up and power-down sequencing below is not followed, the PICO debugger could back-power the 3V3 and 1V8 rails of the MAX78002EVKIT. This could result in permanent damage of the MAX78002 and any on-board peripherals. To prevent this issue, follow the exact sequencing below when powering the board on or off:
- Connect the Power Supply and power on the board.
- Connect any Serial Ports.
- Connect any Debug Adapters
- Disconnect any Debug Adapters
- Disconnect any Serial Ports
- Switch off the Power Supply
The MAX78002EVKIT requires an external 5V supply power supply. A 5V wall adapter is supplied in the box. Connect the 5V wall adapter to the “5V IN” barrel jack connector (J1).
SW1 (labeled “PWR”) is the main power switch. With 5VIN supplied, flip the switch to power the rest of the board. The “5V” status LED (D2), “1V1 CNN” (D4), and “3V3” (D3) status LEDs will turn on and can be used to verify the board is powered on successfully.
The MAX78002 is a dual-core microcontroller, with both an Arm Cortex M4 core and a RISC-V core. As a result, the EVKIT comes with two debug adapters:
A MAX32625PICO:
- For use with the Arm Cortex M4 core
- Connects to the “SWD” debug header (JH8)
An Olimex ARM-USB-OCD-H + ARM-JTAG 20-10 adapter:
- For use with the RISC-V core
- Connects to the “RV JTAG” debug header (JH5)
- This RISC-V debug adapter needs to be connected only for debugging the RISC-V core, but not for loading in general. Many of the examples in the MSDK are Arm-only.
- RISC-V debugging does, in general, also require simultaneous debugging of the Arm M4 core.
The MAX78002EVKIT exposes 3 serial ports via micro-USB connectors.
This serial port routes UART0 and UART1 from the MAX78002 to an FT231XS UART to USB adapter. This is the default serial port used by most examples.
To communicate over this port, connect a micro-USB cable from the host PC to CN2. Most Operating Systems will auto-install the required drivers or already include them on the system, and the FT231XS chip will present itself as a Virtual COM Port (VCP).
If the port does not present itself, then manual driver installation is required. See this page from the official FTDI site.
ADI’s examples use the following serial communication settings by default:
- BAUD Rate: 115200
- Data: 8-bit
- Parity: None
- Stop bits: 1
- Flow control: None
Serial communication settings can be modified in the MaximSDK/Libraries/Boards/MAX78002/EvKit_V1/Include/board.h
file. Jumper settings should be checked when modifying the default settings, such as changing from UART0 to UART1. Refer to the MAX78002 EVKIT Datasheet for more details on jumper settings.
This serial port connects directly to the USB 2.0 Hi-Speed Controller peripheral on the MAX78002. The serial port will not be functional unless the host firmware running on the MAX78002 sets it up.
This serial port connects to a secondary MAX32625 microcontroller that manages the power monitoring sub-circuit of the MAX78002EVKIT. This port will present itself as a standard USB Serial Device.
The MAX78002EVKIT includes a Pcam 5C CSI camera module, which should be connected to the CSI connector J8 for evaluation.
-
Connect the CSI ribbon cable to the Pcam 5C.
Looking at the bottom of the Pcam 5C board, the blue strip of the ribbon cable should be facing you.
-
Connect the CSI ribbon cable to the CSI connector J8 on the MAX78002EVKIT.
Slide out the thin darker part of the connector to open it, then insert the ribbon cable.
The blue strip of the ribbon cable should be facing up.
Snap the thin darker part of the connector to close it and lock the cable in place.
-
Remove the cap from the CSI camera module before using it.
The MAX78002EVKIT also comes with an OVM7692 DVP (Digital Video Port) camera module, which should be connected to the DVP connector JH7 for evaluation. This camera also requires an external adapter board which is included with the MAX78002EVKIT.
-
Insert the OVM7692 camera module into JH2 on the DVP adapter board.
The camera module should be facing toward the outer edge of the adapter board.
-
Remove the small amber cover sticker from the OVM7692 camera module to expose the lens.
-
Remove the plastic cover from the DVP port of the adapter board and attach one side of the included DVP cable.
Use the end of the cable with the notch such that the cable comes out from the adapter board.
-
Attach the other side of the DVP cable to JH7 on the MAX78002EVKIT.
It should be noted that removing the cable after fully inserting it into JH7 can very easily damage it. To safely remove the DVP cable use a small flat-head to push out the plastic notch. Do no remove the cable by pulling on the cable wire itself.
The firmware for the MAX32625PICO (PICO) debug adapter should be updated before using the MAX78002EVKIT. These updates contain bug fixes and improvements that are required to ensure proper operation of the kit.
-
Download the
max32625_max78000fthr_if_crc_v1.0.2.bin
file.If you have cloned this repository, the file can also be found in the
MAX78002_Evaluation_Kit/MAX32625PICO_files
folder. -
Connect the included micro-USB cable to the PICO without connecting the other side of the cable to your host PC yet.
-
Press and hold the pushbutton on the top of the PICO.
-
While holding down the pushbutton on the PICO connect the other side of the micro-USB cable to your host PC.
Keep the pushbutton held down until the LED on the PICO blinks and becomes solid.
-
A
MAINTENANCE
drive should now appear on your file system. -
Drag and drop the
max32625_max78000fthr_if_crc_v1.0.2.bin
file onto theMAINTENANCE
drive. This will flash the PICO with the updated firmware. -
Once the flashing is complete, the PICO will restart and present itself as a
DAPLINK
drive. -
Open the
DAPLINK
drive. -
Open the
DETAILS.TXT
file and verify the contents match theMAX32625PICO_files/DETAILS.TXT
file in this repository. Specifically - the “Git SHA” field should match exactly. -
Your PICO debugger is now ready to use with the MAX78002EVKIT.
The MAX78002EVKIT will come pre-flashed with a Keyword-spotting demo program out of the box. This demo showcases the “kws20” Neural Network, which has been trained on Google’s speech commands dataset to recognize the following 20 keywords:
up, down, left, right, stop, go, yes, no, on, off, one, two, three, four, five, six, seven, eight, nine, zero
To exercise the demo power on the EVKIT and follow the instructions on the TFT display.
Optionally, connect to the USB/UART (CN2) Serial port to monitor the serial output of the demo program.
The source code for the demo can be found in the Examples/MAX78002/CNN/kws20_demo
folder of the MSDK.
Embedded development for the MAX78002EVKIT is enabled by the Maxim Microcontroller SDK (“MSDK”), now a part of Analog Devices.
See the MSDK User Guide for detailed documentation on installation, setup, and getting started.
Before continuing into the development quick-starts below, it’s important to note some limitations when debugging the MAX78002:
-
The debugger can not be connected to the MAX78002 while the device is in reset.
-
The MAX78002 can not be debugged while the device is in Sleep, Low Power Mode, Micro Power Mode, Standby, Backup, or Shutdown mode.
These modes shut down the SWD clock.
Examples that enter these modes have a 2-second delay in place at the beginning of code execution to give the debugger a window to connect. For low-power development, it is also recommended to have the same delay in place.
These limitations may make the device difficult (or impossible) for the debugger to connect in certain states. In such cases, the device can be recovered from the “locked out” firmware by erasing the application-space in the flash memory bank. See How to Unlock a MAX78002 That Can No Longer Be Programmed.
Some debugger limitations may make the device difficult to connect to. In such cases, the device can be recovered from the “locked out” firmware by erasing the application-space in the flash memory bank.
Before following the procedure below, ensure that you have updated the PICO debugger firmware to the latest version. See Updating the MAX32625PICO (PICO) Debug Adapter Firmware
-
Connect the PICO debugger to the MAX78002 EVKIT SWD debugger port. See Connecting Debug Adapters for more detailed instructions on this step.
-
Connect the PICO debugger to the host PC with the included micro-USB cable.
-
Open the DAPLINK` drive on the host PC.
-
Open the
DETAILS.TXT
inside of theDAPLINK
drive in a text editor. -
Verify that the “Automation allowed” field is set to 1.
If this field is not set to 1, follow the procedure below:
-
Create a new empty file, and save it as
auto_on.cfg
. -
Press and hold the pushbutton on top of the PICO.
-
While holding the pushbutton, drag and drop the
auto_on.cfg
file onto theDAPLINK
drive. -
Continue holding the pushbutton until the file is finished transferring over, then release it.
-
The PICO should power cycle, and the DAPLINK drive should re-appear with “Automation allowed” set to 1.
-
-
Power on the MAX78002EVKIT (if it isn’t already).
-
Drag and drop the
MAX32625PICO_files/erase.act
file onto theDAPLINK
drive. -
The PICO debugger will mass erase the MAX78002’s application-space flash bank, which will completely wipe any application firmware that is programmed on the device.
-
Power cycle the MAX78002EVKIT. The MAX78002 is now blank and ready to re-program. The debugger should have no issues connecting to the device in this blank state.
Note: In order to avoid the locked out state to begin with, it is recommended that during code development, a delay be placed at the beginning of user code in order to give the debug adapter an opportunity to communicate with or halt the processor. A delay of 2 seconds is ideal so that the debugger can be attached manually.
As the MAX78002 contains a powerful Convolution Neural Network (CNN) accelerator, there is also the Machine Learning side of development. This is done with a separate set of tools. The example projects that are found in the CNN
sub-folder of the MAX78002 examples have been created with these tools. More specifically, they have been created with the ai8x-synthesis
(“izer”) tool, which converts a trained model into C code that can be compiled and flashed onto the MAX78002.
The documentation associated with the setup and usage of these tools is significant. Here are the links to get started:
A large technical library of technical training videos on Artificial Intelligence (AI) and the MAX78000/MAX78002 is available via the links below. These are the best way to get started with ML on the MAX78002. The “Understanding Artificial Intelligence” series is highly recommended for all developers.
- Understanding Artificial Intelligence
- Episode 1 - Who Needs Machine Learning Anyways?
- Episode 2 - Thinking About Machine Learning
- Episode 3 - All About Models
- Episode 4 - All About Training
- Episode 5 - Say Hello to the MAX78000
- Episode 6 - From Checkpoint to C
- Episode 7 - How to Train a Network
- Episode 8 - The MAX78000FTHR
- Episode 8.5 - Visual Studio Code
The setup and usage of the machine learning tools is thoroughly documented in the README.md file that can be found in the root directory of both the “izer” and training tools. See the Installation section for detailed instructions.
Detailed usage of the “izer” and training tools is beyond the scope of this document. The Workflow Guide is a great introduction, and the Videos dive deeper.
Additionally, the README contains all of the usage information for the tools.
Below are a few exercises to get started after setup is complete:
-
Run the
gen-demos-max78002.sh
script found in the root directory of the “izer” tool and reference its Command Line Arguments table to see how it works. -
Build and flash the output of one of the
gen-demos-max78002.sh
projects and verify that the generated “known answer” test passes. -
Locate the YAML files for the pre-trained models in the “izer” tool and reference the YAML Network Description to see how they work.
-
Run
train_all_models.sh
from the training repository and reference its Command Line Arguments to see how it works. -
Familiarize yourself with the concept of data loaders with Application Note and explore the pre-written data loaders found in the datasets directory of the training tool.
The MAX78002EVKIT includes a dedicated power-monitoring sub-circuit (PMON) that allows the user to measure the power consumption of the MAX78002 to determine the active and idle power, and the energy and time to perform CNN inferences as well as kernel and data loading. This separate sub-circuit can be found in the bottom right corner of the board and has its own TFT display, USB virtual serial port, and microcontroller.
The PMON firmware version can be checked by repeatedly pressing either the PWR MODE SEL LEFT or RIGHT button to cycle through the screens to view the information page.
At the time of this writing, latest version of the power monitor sub-circuit’s firmware is v2.0. Check the reported version against the latest MAX78002EVKIT PMON firmware available HERE
Detailed usage information on the PMON operation, including measurements, how to instrument code and updating the firmware is available in the MAX7800x Power Monitor and Energy Benchmarking Guide.