lpcware

I2C ROM blocking functions "succeed" with I2C clock disabled

Discussion created by lpcware Employee on Jun 15, 2016
Latest reply on Jun 15, 2016 by lpcware
Content originally posted in LPCWare by MarcVonWindscooting on Sun Apr 06 16:02:26 MST 2014
This weekend I continued to work on my LPC812 PCB that uses power-down mode to save power. There's a DS75 temperature sensor and a 24AA01 serial EEPROM connected to the I2C interface of the LPC. Three 74LVC1G57/58 single gates and a few MOSFETs implement a software-controlled step-down converter + power LED-driver. The LPC812 is powered by a STLQ015XG33 uPower LDO.

To get into power down, the DS75 sensor has to be powered down by a special command. I chose to use the  ROM API (blocking) functions available on the LPC800 for that.

At one point, I forgot to enable the I2C clock and the result was, that the functions return without an error from writes and reads - very much to my surprise. The DS75 'output' read 0 Celsius and the 3-byte write to power it down 'succeded', only it did not consume less power and it's not really that cold in my lab ...!?

Typically I expect more dramatic failure (lockup or error code) in response to such a fundamental configuration error of mine.
I share this information just in case someone else runs into a similar problem where "everything works", except for unplausible readings...

PS: the system can be powered down to 3.7uA @ 2.2..3.6V supply, all outputs in defined state.
LPC800 is so cool! :)

Outcomes