Skip to content

Latest commit

 

History

History
83 lines (58 loc) · 2.78 KB

rp2.rst

File metadata and controls

83 lines (58 loc) · 2.78 KB

rp2

rp2 --- functionality specific to the RP2040

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.

The rp2 module includes functions for assembling PIO programs.

For running PIO programs, see rp2.StateMachine.

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 overriden 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.

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

This exception is raised from asm_pio() or asm_pio_encode() if there is an error assembling a PIO program.

Classes

rp2.Flash.rst rp2.PIO.rst rp2.StateMachine.rst