126 lines
5.1 KiB
ReStructuredText
126 lines
5.1 KiB
ReStructuredText
.. _mimxrt_intro:
|
|
|
|
Getting started with MicroPython on the i.MXRT
|
|
==============================================
|
|
|
|
Using MicroPython is a great way to get the most of your i.MXRT board. And
|
|
vice versa, the i.MXRT chip is a great platform for using MicroPython. This
|
|
tutorial will guide you through setting up MicroPython, getting a prompt, using
|
|
the hardware peripherals, and controlling some external components.
|
|
|
|
Let's get started!
|
|
|
|
Requirements
|
|
------------
|
|
|
|
The first thing you need is a board with an i.MXRT chip. The MicroPython
|
|
software supports the i.MXRT chip itself and any board should work. The main
|
|
characteristic of a board is how the GPIO pins are connected to the outside
|
|
world, and whether it includes a built-in USB-serial converter to make the
|
|
UART available to your PC.
|
|
|
|
Names of pins will be given in this tutorial using the chip names (eg GPIO2)
|
|
and it should be straightforward to find which pin this corresponds to on your
|
|
particular board.
|
|
|
|
Powering the board
|
|
------------------
|
|
|
|
If your board has a USB connector on it then most likely it is powered through
|
|
this when connected to your PC. Otherwise you will need to power it directly.
|
|
Please refer to the documentation for your board for further details.
|
|
|
|
Getting the firmware
|
|
--------------------
|
|
|
|
Firmware versions are provided at the
|
|
`MicroPython download page <https://micropython.org/download/?port=mimxrt>`_.
|
|
You can download the most recent MicroPython firmware .hex or .bin file to load
|
|
onto your i.MXRT device. From that download page you have two main choices:
|
|
|
|
* stable firmware builds
|
|
* daily firmware builds
|
|
|
|
If you are just starting with MicroPython, the best bet is to go for the stable
|
|
firmware builds. If you are an advanced, experienced MicroPython i.MXRT user
|
|
who would like to follow development closely and help with testing new
|
|
features, there are daily builds.
|
|
|
|
Deploying the firmware
|
|
----------------------
|
|
|
|
Once you have the MicroPython firmware you need to load it onto your
|
|
i.MXRT device. The exact procedure for these steps is highly dependent
|
|
on the particular board and you will need to refer to its documentation
|
|
for details.
|
|
|
|
Teensy 4.0 and 4.1
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
For Teensy 4.0 and 4.1 you have to use the built-in loader together with the PC
|
|
loader provided by PJRC. The built-in loader will be activated by pushing the
|
|
button on the board. Then you can upload the firmware with the command::
|
|
|
|
teensy_loader_cli --mcu=imxrt1062 -v -w firmware.hex
|
|
|
|
IMXRT10xx-EVK boards
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The IMXRT10xx-EVK boards have a second USB port connected to a support MCU.
|
|
Connecting that USB port to your PC will register a disk drive with the name of
|
|
the board. Just copy the firmware.bin file to this drive, and that will start
|
|
the flashing procedure. You will know that the flash was complete, if that
|
|
drive disappears and reappears. If you decided to install the very useful
|
|
Segger open-SDA firmware on that sidekick MCU, then you have to use the debugger
|
|
software to upload the i.MXRT firmware.
|
|
|
|
Seed ARCH MIX board
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
Firmware upload to the Seed ARCH MIX board is less convenient. The vendor
|
|
suggests using J-Link as a method and tool. For that, follow the instructions
|
|
given by Seed in their Wiki at
|
|
https://wiki.seeedstudio.com/Arch_Mix/#flashing-arduino-bootloader-to-arch-mix.
|
|
You will need a J-Link debug probe and software. You may find Segger JLink edu
|
|
or Segger JLink edu mini convenient. As a matching loader you can use
|
|
JFlashLite. The target address for loading is 0x60000000.
|
|
|
|
The MIMXRT family also support a serial upload method. The software for serial
|
|
upload is provided by NXP. The steps to use it are:
|
|
|
|
- Connect J3, Pin 19 to 3.3V (GPIO_AD_B0_05).
|
|
- Change the DIP-Switch settings from off-off-on-off to off-off-off-on
|
|
- Push Reset
|
|
- Run the upload with: ./FLASH.sh <firmware_image_file name>
|
|
- Once the upload has finished, set the DIP-switch back to off-off-on-off.
|
|
- Remove the Jumper to J3, Pin19 and push reset
|
|
|
|
To avoid running the Flash loader as superuser, you can copy the provided udev-rules
|
|
script to /etc/udev/rules.d/. FLASH.sh calls two binaries, blhost and sdphost,
|
|
which are provided by NXP under the BSD-3-Clause License. A version of these
|
|
binaries and the script can be downloaded at
|
|
https://github.com/robert-hh/Shared-Stuff/blob/master/mimxrt_serial_downloader.zip.
|
|
|
|
Serial downloading can be used for the NXP MIMXRT boards as well. But the built-in loader
|
|
is much more convenient to use.
|
|
|
|
Serial prompt
|
|
-------------
|
|
|
|
Once you have the firmware on the device you can access the REPL (Python prompt)
|
|
over USB.
|
|
|
|
From there you can follow the i.MXRT tutorial.
|
|
|
|
Troubleshooting installation problems
|
|
-------------------------------------
|
|
|
|
If you experience problems during flashing or with running firmware immediately
|
|
after it, here are some troubleshooting recommendations:
|
|
|
|
* Be aware of and try to exclude hardware problems. There are two common
|
|
problems: bad power source quality, and worn-out/defective Flash ROM.
|
|
Speaking of power source, not just raw amperage is important, but also low
|
|
ripple and noise/EMI in general. The most reliable and convenient power
|
|
source is a USB port.
|