Damien George
9 years ago
2 changed files with 67 additions and 0 deletions
@ -0,0 +1,66 @@ |
|||
MicroPython port to STM32 MCUs |
|||
============================== |
|||
|
|||
This directory contains the port of MicroPython to ST's line of STM32Fxxx |
|||
microcontrollers. It is based on the STM32Cube HAL library and currently |
|||
supports: STM32F401, STM32F405, STM32F411, STM32F429, STM32F746. |
|||
|
|||
The officially supported boards are the line of pyboards: PYBv1.0 and PYBv1.1 |
|||
(both with STM32F405), and PYBLITEv1.0 (with STM32F411). See |
|||
[micropython.org/pyboard](http://www.micropython.org/pyboard/) for further |
|||
details. |
|||
|
|||
Other boards that are supported include ST Discovery and Nucleo boards. |
|||
See the boards/ subdirectory, which contains the configuration files used |
|||
to build each individual board. |
|||
|
|||
Build instructions |
|||
------------------ |
|||
|
|||
An ARM compiler is required for the build, along with the associated binary |
|||
utilities. The default compiler is `arm-none-eabi-gcc`, which is available for |
|||
Arch Linux via the package `arm-none-eabi-gcc`, for Ubuntu via instructions |
|||
[here](https://launchpad.net/~team-gcc-arm-embedded/+archive/ubuntu/ppa), or |
|||
see [here](https://launchpad.net/gcc-arm-embedded) for the main GCC ARM |
|||
Embedded page. The compiler can be changed using the `CROSS_COMPILE` variable |
|||
when invoking `make`. |
|||
|
|||
To build for a given board, run: |
|||
|
|||
$ make BOARD=PYBV11 |
|||
|
|||
The default board is PYBV10 but any of the names of the subdirectories in the |
|||
`boards/` directory can be passed as the argument to `BOARD=`. The above command |
|||
should produce binary images in the `build-PYBV11/` subdirectory (or the |
|||
equivalent directory for the board specified). |
|||
|
|||
You must then get your board/microcontroller into DFU mode. On the pyboard |
|||
connect the 3V3 pin to the P1/DFU pin with a wire (they are next to each |
|||
other on the bottom left of the board, second row from the bottom) and then |
|||
reset (by pressing the RST button) or power on the board. Then flash the |
|||
firmware using the command: |
|||
|
|||
$ make BOARD=PYBV11 deploy |
|||
|
|||
This will use the included `tools/pydfu.py` script. You can use instead the |
|||
`dfu-util` program (available [here](http://dfu-util.sourceforge.net/)) by |
|||
passing `USE_PYDFU=0`: |
|||
|
|||
$ make BOARD=PYBV11 USE_PYDFU=0 deploy |
|||
|
|||
If flashing the firmware does not work it may be because you don't have the |
|||
correct permissions. Try then: |
|||
|
|||
$ sudo make BOARD=PYBV11 deploy |
|||
|
|||
Or using `dfu-util` directly: |
|||
|
|||
$ sudo dfu-util -a 0 -d 0483:df11 -D build-PYBV11/firmware.dfu |
|||
|
|||
Accessing the board |
|||
------------------- |
|||
|
|||
Once built and deployed, access the MicroPython REPL (the Python prompt) via USB |
|||
serial or UART, depending on the board. For the pyboard you can try: |
|||
|
|||
$ picocom /dev/ttyACM0 |
Loading…
Reference in new issue