I’m starting to play with my Espressobin and I’m currently evaluating of adding an I2C RTC module to it.
I already have a DS1307 I used with my Arduino Uno, but I’m worried about the voltage levels of the espressobin.
Does the I2C bus use the same 1.8V level of the GPIO pins?
Do I need some voltage level translators (maybe just two mosfets) on the I2C bus between the espressobin and the DS1307?
From current version of datasheet (should be keep carefully because some point is not perfectly clear) the I2C pins from the GPIO are connected directly to the armada chip, so a voltage level translator is necessary. On the board there is a PCA9306D that translate the signal from 1.8 to 3.3 but this is baypassed by the GPIO. This PCA9306D is connected to the miniPCI express connector. So in conclusion from a rapid check of schematics the result is:
1. You should use a level translator for use the I2C from GPIO connectors.
2. If you use the I2C from GPIO you can’t use it from miniPCI express.
As my personal note due the fact that you can’t known what pin a device under miniPCI express use is unsafe use the I2C from GPIO when a decide on miniPCI port is inserted.
This is only my opinion, I can not guarantee that is correct.
First of all, thank you for your answer! I’ve seen the schematic and, well, now I’ve more questions 😀
You wrote that the I2C lines (@3.3V after the PCA9306D) go to the miniPCIe slot. This probably means they’re used as SMBUS lines (SMB_CLK & SMB_DATA), isn’t it?
Considering I just want to use a pretty simple RTC, do you still advise against using the i2C lines with a miniPCIe card (not that I have one at the moment)?