micropython: add micropython component
This commit is contained in:
125
components/language/micropython/docs/mimxrt/tutorial/intro.rst
Normal file
125
components/language/micropython/docs/mimxrt/tutorial/intro.rst
Normal file
@@ -0,0 +1,125 @@
|
||||
.. _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.
|
Reference in New Issue
Block a user