Time required to obtain 5V from digital I/0

Hello, I have looked through Orangutan SVP (1284) documentation and also through this forum and haven’t seen the answer I’m looking for. My apologies if asking a repeat question or missing some obvious calculation…

I am using I/O ports C1,C0,B4,B3, and A0-A3 as inputs to 2 separate line decoders (the output on the Orangutan ports are plugged into line decoder inputs). My application requires that these change between high and low frequently. I understand from the code processing perspective that the quickest method is to send HIGH or LOW to the port directly (i.e. set_digital_outputs(IO_A0, HIGH) vs. set_digital_outputs(IO_A), some_function_to_set_state()). However, from a hardware standpoint, what is the minimum amount of time required to go from 0 to 5v on a digital I/0 port? For example, I may set ports A0-A3 as LOW, HIGH, HIGH, LOW for 25 ms, then the next iteration (which would also last 25 ms) may be HIGH, LOW,LOW, HIGH. Will A0 be able to reach 5v in 25 ms? I am trying to determine the smallest iteration period that I can use for updating the state of these ports.

Thank you,


You can change the output state of a pin in one cycle, which is 50 nanoseconds on the Orangutans. If you have no load on the pin, it can go from 0V to 5V during this time period. If you have some sort of load on the output (especially if there is capacitance or inductance involved), that can delay the rise time, but 25 ms is a relatively long time for a microcontroller running at 20 MHz. Assuming your I/O pins are connected to high-impedance digital inputs, you can conceivably toggle them at over a megahertz.

- Ben

Thanks Ben, that was the exact answer I needed.