This allows you to list and explore connected USB devices. It
only stubs out the methods to communicate to endpoints. That will
come in a follow up once TinyUSB has it. (It's in progress.)
Related to #5986
This is needed so that the floppy flux reader can enable the pull up
on the index pin while using it as a pio jmp pin.
Also fixes a doc bug where the `jmp_pin` was omitted in one spot in the docs.
This tweaks the RMT timing to better match the 1/3 and 2/3 of 800khz
guideline for timing. It also ensures a delay of 300 microseconds
with the line low before reset.
Pin reset is now changed to the IDF default which pulls the pin up
rather than CircuitPython's old behavior of floating the pin.
Fixes#5679
The port is free to return NULL for any/all of these, and the caller has
to check.
This will be used in the floppy code, because aside from getting the
registers, it looks like all is independent of MCU.
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.