All right, no answer, but I think I've got something similar to viewtopic.php?t=388448&start=25#p2318810
So, on RP2040 with PIO synchronizers disabled, JMP PIN is doing some random jumps/skips, probably through another way of metastability propagation:Not so easy to catch, but planted a trap after the wrap (in MicroPython), fell free to play with it.
So, on RP2040 with PIO synchronizers disabled, JMP PIN is doing some random jumps/skips, probably through another way of metastability propagation:Not so easy to catch, but planted a trap after the wrap (in MicroPython), fell free to play with it.
Code:
import rp2from machine import Pin, mem32machine.freq(125_000_000)@rp2.asm_pio( set_init=rp2.PIO.OUT_LOW, sideset_init=(rp2.PIO.OUT_LOW, rp2.PIO.OUT_LOW) )def responder(): wrap_target() label("low") jmp (pin, "high") .side(0b00) jmp ("low") .side(0b00) label("high") jmp (pin, "high") .side(0b11)# jmp ("low") .side (0b11) # nop () wrap() label("trap") jmp ("trap") .side(0b01) sm = rp2.StateMachine( 0, responder, freq=125_000_000, set_base=Pin(3), sideset_base=Pin(3), in_base=Pin(0), jmp_pin=Pin(0) )RP2040_PIO_0_INPUT_SYNC_BYPASS = 0x50200038#mem32[RP2040_PIO_0_INPUT_SYNC_BYPASS] = 0x00000000mem32[RP2040_PIO_0_INPUT_SYNC_BYPASS] = 0xFFFFFFFFsm.active(1)#time.sleep(3)# sm.active(0)Statistics: Posted by gmx — Wed Dec 31, 2025 5:33 pm