Email or username:

Password:

Forgot your password?
Top-level
Tube❄️Time

ahh, they have a 2-flop synchronizer on each input to the pio. but there's a way to disable them on a per-pin basis.

11.5.6.3. Input Synchronisers To protect PIO from metastabiltes, each GPIO input is equipped with a standard 2-flipflop synchroniser. This adds two. ycles of latency to input sampling, b the benefit i that state machines can perform an I PIIS at any point, and wil see only a clean high or low level, not some intermediate value that could disturb the state machine circuitry. This s ‘absolutely necessary for asynchronous interfaces such as UART RX. Itis possible to bypass these synchronisers, on a per-GPIO basis. This reduces input latency, but it then up o the user to guarantee that the state machine does not sample its inputs at inappropriatetimes. Generallythis s only possible for Synchronous interfaces such as SPI. Synchronisers are bypassed by setting the corresponding bt in INPT_SYHC_B1PASS. © WARNING

‘Sampling a metastable input can lead to unpredictable state machine behaviour. This should be avoided.
12 comments
Tube❄️Time replied to Tube❄️Time

23.6ns minimum delay now. that's 2 clock cycles removed. hmm.

Tube❄️Time replied to Tube❄️Time

i halved the sysclk, so now we have a variability of 13.2ns and a minimum delay of 35.2ns.

Tube❄️Time replied to Tube❄️Time

did a little math and it looks like there is a 2 sysclk delay plus the input propagation delay and output propagation delay. the prop delays total about 8.8ns.

Tube❄️Time replied to Tube❄️Time

hmm so i understand why there is 1 sysclk delay because it takes a cycle to go from the WAIT instruction to the SET instruction. but why 2 sysclk delays?

Tube❄️Time replied to Tube❄️Time

anyway i can overclock to 300MHz sysclk, and now the minimum delay is 15ns. that is 2 cycles of 3.3ns plus 8.4ns propagation through the input and output.

Tube❄️Time replied to Tube❄️Time

argh, i forgot that i put 20MHz BW on the two input channels. anyway, this looks better, the rise time is super fast and the propagation delay is 13.7ns.

Tube❄️Time replied to Tube❄️Time

all right, i'm going to run another 24h aging experiment with 5V on the unpowered pin. let's see how it does. i'll do the measurements at 150MHz. my suspicion is that hot carrier injection could increase the propagation delay of the input, but we shall see.

Tube❄️Time replied to Tube❄️Time

i could dig into this some more, but for now, it looks like the RP2350 is 5V tolerant. i didn't see any evidence of HCI or metal migration. these aren't exhaustive tests since i didn't do them over the full supply voltage and temperature range, so i wouldn't use it for 5V tolerance in a commercial project, but this should be fine for hobby projects.

doragasu replied to Tube❄️Time

@tubetime Sorry if you already said it and I lost the info, but did you test only on FT pins or also no non FT pins?
Great work BTW!

Ian Scott :apple_inc: 🐙 replied to Tube❄️Time

@tubetime now do the RP2040, that one is a bit more of an open question 😅

Go Up