Email or username:

Password:

Forgot your password?
Top-level
Tube❄️Time

hmm, there does seem to be an effect on the Schmitt trigger circuit. GP0 has a lower falling threshold than the other pins when Schmitt trigger mode is turned on.

18 comments
Tube❄️Time replied to Tube❄️Time

i'm thinking about the effects of hot carrier injection (HCI), which usually causes the threshold voltages to shift. then there's also negative bias temperature instability (NBTI). both of these could cause timing issues.

Tube❄️Time replied to Tube❄️Time

to sum up the results so far: beating the crap out of this GPIO pin, taking it up to over 6V, letting it sit at 5V for 24h, etc, has resulted in a tiny shift in the falling threshold with Schmitt trigger mode turned on. no functional changes.

Tube❄️Time replied to Tube❄️Time

the next step is to write a little PIO program to copy the input state of the pin to another GPIO configured as an output. and then i can start measuring timing.

or maybe copy the state of two pins so i can do a side-by-side comparison.

Tube❄️Time replied to Tube❄️Time

the program is written:
wait 1 pin 0
set pins, 1
wait 0 pin 0
set pins, 0

Tube❄️Time replied to Tube❄️Time

and the propagation delay data is in. i increased persistence. as expected, the variation in the delay is approximately 6.6ns which is one sysclk cycle. this is the synchronization time. minimum delay is 36.4ns which seems long--i'm going to try and figure out why.

Tube❄️Time replied to 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.
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