.. currentmodule:: rp2 :mod:`rp2` --- functionality specific to the RP2040 =================================================== .. module:: rp2 :synopsis: functionality specific to the RP2 The ``rp2`` module contains functions and classes specific to the RP2040, as used in the Raspberry Pi Pico. See the `RP2040 Python datasheet `_ for more information, and `pico-micropython-examples `_ for example code. PIO related functions --------------------- The ``rp2`` module includes functions for assembling PIO programs. For running PIO programs, see :class:`rp2.StateMachine`. .. function:: asm_pio(*, out_init=None, set_init=None, sideset_init=None, in_shiftdir=0, out_shiftdir=0, autopush=False, autopull=False, push_thresh=32, pull_thresh=32, fifo_join=PIO.JOIN_NONE) Assemble a PIO program. The following parameters control the initial state of the GPIO pins, as one of `PIO.IN_LOW`, `PIO.IN_HIGH`, `PIO.OUT_LOW` or `PIO.OUT_HIGH`. If the program uses more than one pin, provide a tuple, e.g. ``out_init=(PIO.OUT_LOW, PIO.OUT_LOW)``. - *out_init* configures the pins used for ``out()`` instructions. - *set_init* configures the pins used for ``set()`` instructions. There can be at most 5. - *sideset_init* configures the pins used side-setting. There can be at most 5. The following parameters are used by default, but can be overridden in `StateMachine.init()`: - *in_shiftdir* is the default direction the ISR will shift, either `PIO.SHIFT_LEFT` or `PIO.SHIFT_RIGHT`. - *out_shiftdir* is the default direction the OSR will shift, either `PIO.SHIFT_LEFT` or `PIO.SHIFT_RIGHT`. - *push_thresh* is the threshold in bits before auto-push or conditional re-pushing is triggered. - *pull_thresh* is the threshold in bits before auto-push or conditional re-pushing is triggered. The remaining parameters are: - *autopush* configures whether auto-push is enabled. - *autopull* configures whether auto-pull is enabled. - *fifo_join* configures whether the 4-word TX and RX FIFOs should be combined into a single 8-word FIFO for one direction only. The options are `PIO.JOIN_NONE`, `PIO.JOIN_RX` and `PIO.JOIN_TX`. .. function:: asm_pio_encode(instr, sideset_count) Assemble a single PIO instruction. You usually want to use `asm_pio()` instead. >>> rp2.asm_pio_encode("set(0, 1)", 0) 57345 .. class:: PIOASMError This exception is raised from `asm_pio()` or `asm_pio_encode()` if there is an error assembling a PIO program. Classes ------- .. toctree:: :maxdepth: 1 rp2.Flash.rst rp2.PIO.rst rp2.StateMachine.rst