The bit-bang implementation was replaced with the RMT implementation in
599b61c08687ca077e3b0e115d5b76affcc673ca. This commit brings back that
bit-bang code, and allows it to be selected via the new static method:
esp32.RMT.bitstream_channel(None)
The bit-bang implementation may be useful if the RMT needs to be used for
something else, or if bit-banging is more stable in certain applications.
Signed-off-by: Damien George <damien@micropython.org>
MicroPython currently runs on core 0 of the esp32. Calling
rmt_driver_install will mean that the RMT interrupt handler is also
serviced on core 0. This can lead to glitches in the RMT output if
WiFi is enabled (for esp32.RMT and machine.bitstream).
This patch calls rmt_driver_install on core 1, ensuring that the RMT
interrupt handler is serviced on core 1. This prevents glitches.
Fixes issue #8161.
Signed-off-by: Damien George <damien@micropython.org>
This brings the pins in line with the documented [pinouts]. The only
"special" pins:
- GP0, GP1 are mentioned as the default UART, so we init them as
such and give them the TX and RX alternative names.
- GP16 is connected to the onboard neopixel DIN line and we assign it
the NEOPIXEL name. (Power of the neopixel is connected to the 3.3V
rail, not a pin. See [schematic].)
- GP26, GP27, GP28, GP29 have unambiguous ADC designations in the
[pinouts], so we assign the `A` analogue names as the Pico board
definition does.
[pinouts]: https://www.waveshare.com/wiki/RP2040-Zero#Pinouts
[schematic]: https://www.waveshare.com/w/upload/4/4c/RP2040_Zero.pdf
If, for some reason, you mix up TX and RX when calling `busio.UART` (who would do that ;) ), you get `Invalid pins`. When you go to try again, you'll get `All UART peripherals are in use` because the interface was claimed as busy before pins are verified. This should fix that issue.
The main Makefile builds the mpy-cross executable automatically if
it doesn't exist since 78718fffb1f3010c7a40bb4c29c6ddf5b8dadaa3,
so build it first to make sure it doesn't get needlessly rebuilt.
This board has only 2MiB of flash so the build needs to be reduced in size
to fit. Commit 549448e8bbc8ce0b6b5fc51c0660acdaff18c3d6 made all boards
build with -O2 by default (for performance) so this overrides that default.
Signed-off-by: Damien George <damien@micropython.org>