Go Down

Topic: IOREF (Read 2596 times) previous topic - next topic

Roi123

Hi, I'm not sure if it's the right forum so if it's not just tell me to where I need to go.
Can somebody explain me please what does the IOREF pin do?
thanks a lot,
Roi

CrossRoads

It is to let a shield know what voltage levels to expect on the IO pins from the underlying Arduino.
3.3V or 5V. I don't know of any shields that take advantage of that yet.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.

Roi123

Thank you very much!

ron_sutherland

#3
Apr 24, 2017, 09:13 pm Last Edit: Apr 26, 2017, 05:54 am by ron_sutherland
The stuff I've been working on used it, I'll link a schematic (it is a new version not built at the time of writing) that uses a 74LVC07A buffer to level shift so you can see how it is used.



There is a level shift of 3.3V from the Pi Zero SPI to the MCU board (e.g. Uno has 5V AVR). Also another level shift from the MCU board to the 3.3V RS-422 transceivers.

It seems to me that IOREF was already available on the SPI/ICSP plug (e.g. ICSP requres it) so it is on the board twice.

Update: My description was not very good, just take this as an example of how IOREF can be used on a shield. The idea is to make the shield interface with a range of boards e.g. a 3.3V Arm board or the more common 5V Uno board. Don't get confused by how the Pi Zero is powered, it is not for a USB connected board.

GolamMostafa

@CrossRoads

1. For Arduino UNO System, the underlying board is the Arduino UNO Kit. Am I correct?

2. For shield, the peripheral board that will be plugged-in on the top of Arduino UNO through
   one or more of the 4 female connectors of the Arduino UNO. Am I correct?

3. I have physically checked that the IOREF-pin of Arduino UNO is solidly connected with 5V.

4. The operating voltage of ATmega328 of Arduino UNO Kit is 5V. So, the logic levels of the
    IO pins of the Arduino UNO is expected to be within (0 to 5V) depending on loading conditions
    of the IO pins.

5. In Arduino UNO Kit, the 3.3V is a seperate point which is solidly connected with the output
   of an on-board 3.3V regulator (IC6, Reference Design). The Arduino UNO has not used it.

5. So, the meaning of your following sentence ofyour post is not clear. Would appreciate
    clarification with example:

    It is to let a shield know what voltage levels to expect on the IO pins from the underlying Arduino.



Jiggy-Ninja

@CrossRoads

1. For Arduino UNO System, the underlying board is the Arduino UNO Kit. Am I correct?

2. For shield, the peripheral board that will be plugged-in on the top of Arduino UNO through
   one or more of the 4 female connectors of the Arduino UNO. Am I correct?

3. I have physically checked that the IOREF-pin of Arduino UNO is solidly connected with 5V.

4. The operating voltage of ATmega328 of Arduino UNO Kit is 5V. So, the logic levels of the
    IO pins of the Arduino UNO is expected to be within (0 to 5V) depending on loading conditions
    of the IO pins.

5. In Arduino UNO Kit, the 3.3V is a seperate point which is solidly connected with the output
   of an on-board 3.3V regulator (IC6, Reference Design). The Arduino UNO has not used it.

5. So, the meaning of your following sentence ofyour post is not clear. Would appreciate
    clarification with example:

    It is to let a shield know what voltage levels to expect on the IO pins from the underlying Arduino.



There are many more kinds of Arduino than just an Uno. Some of them (mainly the AVR variants) use a 5V microcontroller, others (mainly the ARM variants) use a 3.3V microcontroller. These boards will still provide 5V and 3.3V power outputs.

On the boards with a 3.3V microcontroller (like a Due), IOREF is attached to the 3.3V regulator.
Hackaday: https://hackaday.io/MarkRD
Advanced C++ Techniques: https://forum.arduino.cc/index.php?topic=493075.0

GolamMostafa

Thanks for the clarification presented in a lucid style.

DANAYER

HI, everybody.

Then, it is not possible to change the reference of the output pins to 3.3v on the arduino board UNO????

ron_sutherland

The pins go inside the microcontroller where they have ESD protection diodes to the power supply. That means applying a higher voltage (Supply+0.5 is about max) can damage it. There is also ESD diodes to ground which means the pin must not go much below ground.

If you supply 3.3V to the microcontroller then it needs to run slower, Sparkfun has this one for example.

https://www.sparkfun.com/products/10914

But anything timing related turns into a job.

Go Up