Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - kentavv

Pages: [1]
1
Character LCDs / NHD-C0216CIZ-FSW-FBW-3V3 unexpected I2C levels
« on: April 11, 2016, 08:06:06 PM »
I'm controlling a NHD-C0216CIZ-FSW-FBW-3V3 from a BeagleBone Black via I2C. The BBB has no pull-up resistors on the I2C lines exposed to the headers. A 1.5K ohm resistor works well on the SCL line and limits the current to below the 3mA maximum. However, any resistor below 50K ohm prevents acknowledgements from the the display from reaching the BBB.

I believe the problem is because of the rather high voltage level that the display uses for a logic low. The attached scope image shows a failed acknowledgement. (Well, the scope serial decoder sees the acknowledgement, but the BBB must sample SDA during the falling edge of SCL.) The low voltage level is nearly 900mV and barely below the maximum allowed by the I2C spec of 0.3 * Vdd = 0.3 * 3.3 = 1.0V. In this particular case, there a spike near the fallowing edge of SCL, and the spike puts the acknowledgement's level at nearly 2V. The ground is solid as are the connection.

I'm starting to think that the display does not implement I2C well. Compare the acknowledgement low from the display vs. the nearly 0 V low from the BBB. The manual for the display suggests 0.4V for the low while the referenced driver, which uses DB6/7 for the I2C lines, and that manual says 0.8V is the expected low level. 0.8V is close to what I'm seeing, but a pretty marginal I2C low when Vdd = 3.3V.

I'm not sure what causes the spikes. I've isolated the SDA lines from the others without any change. However, if the display's logic low was nearer to 0 V, the spikes may not be an issue.

I could be completely misinterpreting the materials here, so any guidance would be greatly appreciated. I'm willing to provide any other information or perform additional tests. In the meantime, I'm going to try a NXP parallel I2C to one of New Haven Display's parallel interface modules and see if that combination works better.

One other small item, the display manuals use wording that can unfortunately be interpreted different ways. Does an ACK from the display indicate the busy flag is no longer busy?

Thank you, Kent

Pages: [1]