P82B96TD and ADUM1250 I2C problem - Page 1
Forum section: electronics / general

author: Microdoser
author_rank: Frequent Contributor
timestamp: October 11, 2020, 12:57:01 pm
content: Hello,Long time lurker but seldom poster here hoping someone can help.I am trying to use a P82B96TD I2C level shifter with ADUM1250 I2C data line isolators. The I2C data is being fed on to the board at 12V and shifted down with the P82B96TD to 5V and then I need to isolate both power and data for the three sensor circuits on the board. I am using 3 x SFTN01M-05 12V->5V power isolators to provide isolated power to each sensor and 3 x ADUM1250 to isolate the data lines. SDA and SCL on both sides are held high with 4.7K resistors. Each ADUM1250 has isolation caps (0.1uF) across Vdd and GND on both sides. All three chips are getting Vdd and GND on both sides.The problem I am having is that for all three ADUM1250 the signals are getting to the input pins but not being seen on the other side of the chip.The input side of the ADUM1250 is at 5V and the isolated side is at 5.3V, I do not suspect this as an issue as others have used the ADUM1250 to level shift from 3.3V to 5V. The datasheet for the ADUM1250 states it can operate up to 5.5V and low signals are recognised below 1/3Vdd. I have checked with my scope and the SDA and SLC signals on the input are held to 5V for high and are getting dropped to~1V but on the output the signals stay held high at 5.3V.(I have had success on an almost identical board using a P82B96TD with an ADM3260 and I would imagine Analog would use similar isolation internals but that is a guess on my part. I would use the ADM3260 as a proven solution except for the 3 month lead time for chips. I am trying other solutions to work around this excessive lead time. In the mean time I have ordered 3 x TI ISO1540QDRQ1 chips to test as they have the same footprint and pinout as the ADUM1250. If I have to I will backorder the ADM3260, but it is not an ideal solution and will lead to supply chain issues which I would rather avoid.)Is anyone familiar with these chips (P82B96TD, ADUM1250) who could shed some light on this problem?BTW I am not interested in discussing data protocols, I have seen similar questions get very siderailed by that sort of thing.

author: WattsThat
author_rank: Frequent Contributor
timestamp: October 11, 2020, 01:45:25 pm
content: Schematic, please.

author: SiliconWizard
author_rank: Super Contributor
timestamp: October 11, 2020, 05:10:57 pm
content: A schematic would help, but from your description: I think you may want to re-read the ADuM1250's datasheet.On page 3, it looks like the input thresholds for the "Side 1" are not the same as for the "Side 2", and if your I2C signals on Side 1 never drop below 1V, this isn't gonna work.As I understand it, on Side 1, the low levels should be below 500 mV. On Side 2, they are indeed spec'ed at 0.3xVdd2.

author: Microdoser
author_rank: Frequent Contributor
timestamp: October 11, 2020, 06:29:51 pm
content: I think I might well have to re-read the datasheet.If it needs 0.5V or less then it's not getting that and that explains everything.Thank you very much, I will get on that straight away.I had a feeling I was missing something obvious.Yes, on closer inspection it seems anything over 0.7V is a high signal.EDIT:After checking the datasheets more closely including alternative components, it seems that the P82B96TD will not supply a low signal lower than about 0.7V and there is not a data line isolator that can handle a low signal over 500mV although all of them will recognise a high signal if the data line is over about 1V so I have decided to put a couple of ultra fast diode arrays (MMBD352WT1G x 4) in each data line to drop the voltage by 0.7V each way. This should make a high signal 4-4.3V and a low signal 0-0.2V at 1mA over the operating temperature of the device. I have posted this in case anyone else is searching for solutions to a similar problem.The surprising thing for me is that the ADM3260 worked without any issues and it has the exact same voltage requirements on the datasheet as the ADUM1250 for both sides.EDIT 2:A bit more thought makes me think this will not work because of the open drain nature of I2C. Depending on the direction of data, the pullup resistors would need to be on different sides of the diodes depending on the data direction, which is not possible.Instead I have realised that the ADUM1250 chip is fully I2C compliant on one of the sides but only I2C compatible on the other so a 180 degree rotation (and a swap of Vdd and GND on both sides of course) would provide the operating characteristics required. The P82B96TD would interact with the side that requires a low signal to be Vdd*0.3 and the other side would interact with the sensor chip which will happily pull a low level to less than 0.5V. This requires no extra components and very minor board changes.Another (IMO better) solution I have found is to use a TCA9803 I2C buffer which will recognise a low level signal at 0.3Vcc on both sides and has a tiny low level output of 0.13V on one side and 0.26V on the other although it will only operate up to 3.6V. I think this will be the solution I adopt as it will move the design away from 'barely working' into a more robust design and I can operate the ADUM1250 the right way up, so the electrons won't fall out.