Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
1 result

rp2040-ring-pio

  • Clone with SSH
  • Clone with HTTPS
  • Quentin Bolsee's avatar
    Quentin Bolsee authored
    439aa92c
    History
    Name Last commit Last update
    c
    py
    README.md

    Ring oscillator with RP2040 PIO

    This is a demonstration of the RP2040's PIO system, which let you run several state machines independently of the CPU. There's exactly 0 overhead and the state machines run a custom assembly language with simplified instructions.

    In this example implementation of a ring oscillator, pin 1 is configured as a PIO input, and pin 2 as an output. Reading, inverting and writing is as simple as:

    mov pins, !pins

    Where pins is a meta keyword, with a different meaning in the first and second operand (output VS input, respectively).

    Results

    CPU Freq Ring Freq
    133 MHz 16.667 MHz
    250 MHz 25 MHz

    C implementation

    The original C implementation can be found here.

    MicroPython implementation

    A MicroPython version with the same performance can be found here.