Re-statement of I2C problem.

Discussion in 'Embedded Systems and Microcontrollers' started by lastcowboy32, May 13, 2016.

  1. lastcowboy32

    Thread Starter New Member

    May 13, 2016
    First posting of this went to "create thread" after I hit return (or maybe CTRL-RTN) after my first sentence. Anyway. Here is the real issue:

    We have a design where we are using the I2C embedded in the HDMI port of a motherboard to control other functions of the display.

    The first one that we prototyped and the first one that we tried after doing our display driver board design worked fine. The next couple of motherboards would not recognize some of the devices on the I2C lines. We noticed that these motherboards had a different BIOS revision. We hacked the BIOS to put it at the same revision as the board that works, and we still didn't have any luck.

    I looked at the signals, and they are nice and crisp. We're only running at 100KHz, so the edges are very sharp. What I did notice, though was that the "low" level of clock and data signals was only pulling down to about 1V. (just a little under 1V). That is fine for I2C compliant parts that have a VIL top specification of 1.5 Volts, but I wonder about the chipset back at the motherboard. The motherboard is purchased from Mitac, and I wonder if they are "bit banging" the I2C embedded in their HDMI port with some kind of GPIO pin that isn't truly I2C compliant. Maybe the voltage needs to get pulled much lower, say, to a more typical logic level, in order to get recognized.

    I would love to try making the pullup resistors larger, but e have 10K pullup resistors on the line currently. The bad thing is that we can't change this. These resistors are built into a level translator.

    I can try removing the level translator and populating some spots on our circuitboard that we provisioned for pullups (just in case) with higher values...say 50k or something like that.

    If that works, though....I'm wondering what our options are. Perhaps I try to get some resistance inline on the I2C signals between the display driver board and the motherboard? Wouldn't that make the "Low" seen at the display driver board even lower at the motherboard end?

    Something seems amiss. I've seen much worse looking I2C signals on the scope being interpreted just fine.

    We've eliminated software and other issues. It seems that it comes down to the specific motherboard, possibly its revision...even among motherboards that have the same part number from the manufacturer