Author Topic: Arduino UNO R3 I2C connection to 5.5V  (Read 905 times)

0 Members and 1 Guest are viewing this topic.

Offline SarielTopic starter

  • Contributor
  • Posts: 32
  • Country: il
Arduino UNO R3 I2C connection to 5.5V
« on: December 07, 2023, 10:43:46 am »
Hey everyone,

I'm planning to employ an Arduino R3 (powered via USB) to manage multiple DACs (powered at 5.5V) through I2C lines.
I'm considering connecting the pull-up resistors to 5.5V.
Can the Arduino effectively handle I2C communication under these conditions with 5.5V instead of the standard 5V?

Appreciate your insights!
 

Online woofy

  • Frequent Contributor
  • **
  • Posts: 334
  • Country: gb
    • Woofys Place
Re: Arduino UNO R3 I2C connection to 5.5V
« Reply #1 on: December 07, 2023, 10:54:42 am »
You will probably be ok but its getting very close to foward biasing the input protection diodes in the processor.
I personally would pull up to the UNO's 5v supply, your 5.5v DAC's will be perfectly happy with that.
 
The following users thanked this post: Sariel

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 12864
Re: Arduino UNO R3 I2C connection to 5.5V
« Reply #2 on: December 07, 2023, 11:01:40 am »
That's rather risky.  If USB Vbus is on the low side, the ATmega328P's Vcc could be over a volt lower than the DAC power, forward biasing the I/O pins upper protection diodes.  The abs. max permitted overvoltage on any I/O pin is only 0.5V above Vcc, and once protection diode current starts to flow on any analog capable pin (which includes the UNO R3 I2C pins) the MCU may misbehave.

I'm not aware of any I2C device rated for 5.5V operation that wouldn't work properly with 5V pullups so do it that way.  If you *NEED* the pullups to be on the DAC board and don't have a local 5V rail,  calculate a potential divider to give the desired pullup resistance as its Thevenin resistance, and a Thevenin voltage of 5V.
 

Offline SuzyC

  • Frequent Contributor
  • **
  • Posts: 792
Re: Arduino UNO R3 I2C connection to 5.5V
« Reply #3 on: December 07, 2023, 11:15:33 am »
A simple solution is to use two pairs of back to back Si small sig diodes(1N4148), one B2B pair each on the UNO's Clk and Data. The .6-.7V drop will make a near perfect match.
« Last Edit: December 07, 2023, 11:17:42 am by SuzyC »
 

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 12864
Re: Arduino UNO R3 I2C connection to 5.5V
« Reply #4 on: December 07, 2023, 11:24:29 am »
Antiparallel diode pairs in series with SCL and SDA would compromise the I2C bus logic low threshold, making it more sensitive to noise.  If you must use diodes, put them in series with the pullups, however resistor dividers for the pullup are cheaper!
 

Offline SarielTopic starter

  • Contributor
  • Posts: 32
  • Country: il
Re: Arduino UNO R3 I2C connection to 5.5V
« Reply #5 on: December 07, 2023, 01:21:42 pm »
You will probably be ok but its getting very close to foward biasing the input protection diodes in the processor.
I personally would pull up to the UNO's 5v supply, your 5.5v DAC's will be perfectly happy with that.

Thank you. The most straightforward approach for me would be to activate the R3 by utilizing the external power supply set to 5.5V.
I am exclusively employing the R3 device to configure certain DACs with EEPROM, aiming to establish various offset voltages on my test board.
 

Offline Ian.M

  • Super Contributor
  • ***
  • Posts: 12864
Re: Arduino UNO R3 I2C connection to 5.5V
« Reply #6 on: December 07, 2023, 02:03:39 pm »
Supplying the Arduino with 5.5V Vcc via its 5V pin is *NOT* recommended. The LMV358 OPAMP used for Vin/Vbus power switching control is only rated for abs. max. 5.5V operation, so even fractional overvoltage on your +5.5V rail could cause it to malfunction, possibly turning on the power gating MOSFET, backfeeding 5.5V to your PC's USB port.  Worst case, that could kill your PC if you switch off, sleep or hibernate with the Arduino connected.

Also 5.5V Vcc is right at the top end of the ATmega328P's operating voltage range with no margin whatsoever, so again, overvoltage could cause a malfunction.

Will it work? Probably, but the risk of serious damage or malfunction is too high for my liking.

Instead, as I said earlier, if you haven't got 5V on the DAC board, use potential dividers in place of the pullups.  4K7 upper resistor and 47K lower resistor, from 5.5V give an equivalent pullup voltage of 5.0V, and equivalent pullup resistance of 4.27K.  The same approach can be used for any other desired pullup resistance, by using an upper resistor of 10% greater than the desired resistance, and a lower resistor of ten times the upper resistor.
« Last Edit: December 07, 2023, 06:02:37 pm by Ian.M »
 
The following users thanked this post: tooki

Online HwAoRrDk

  • Super Contributor
  • ***
  • Posts: 1481
  • Country: gb
Re: Arduino UNO R3 I2C connection to 5.5V
« Reply #7 on: December 07, 2023, 05:57:36 pm »
Assuming the SDA & SCL pins on your DACs are true open-drain (as they should be for I2C) then you should connect your pull-ups to the lower of the two supplies, 5.0V. Because the slave devices are only ever driving the bus by pulling the lines down to ground, it doesn't really matter that the voltage they're dealing with doesn't equal their VCC, so long as it: a) doesn't exceed their own VCC, and; b) is not too low and unable to cross their logic high input threshold (VIH).
 
The following users thanked this post: Ian.M, tooki, Sariel


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf