Hi, i am using an 3.3v standalone arduino running @ 8Mhz w/ atmega328P (TQFP) and i am using a external resonator and not a crystal. I burned it with the arduino pro mini 3.3v @8Mhz w/ atmega328 bootloader from the IDE. Everything works fine except the I2C, i hooked up the si4703 evaluation board from sparkfun (https://www.sparkfun.com/products/10663) but it dosent work, So i tried troubleshooting and this is what i did:
I measured the voltage on the SDA and SCL pins and got 3.3v as it should be.
hooked the module to the arduino UNO and it worked.
So i double checked the connections and they are all right.
I connected the SDIO of the module to the SDA(A4) pin and the SCLK to SCL(A5). The module shares common ground and vcc and the RST pin of the module is pulled high enabling I2C.
I wont be able to test it now, as i am not at home, so it will take me a day or two to try it out. Thanks for the info, i will run it tell and u what happens. I dont have anything else to test the I2C with but the module works with arduino UNO but not with my standalone. Thank you again :D.
The Uno at 5V (3.3V for radio module) with PDIP at 16MHz versus the standalone at 3.3V with TQFP at 8MHz should be no problem.
That is why I'm thinking in other directions.
Is your standalone decoupled with 100nF and 10uF...1000uF at the 3.3V power ?
It might be odd, but try a single 4k7 pullup on both lines or no pullup at all (only the ATmega328p internal pullups). If you have a ground path problem, using a low impedance for the pullup might increase it.
Using a single 4k7 pullup is the best value for normal I2C at 100kHz speed. If I have a number of modules, I remove the pullup resistors from those modules.
In the end it might be a simple wiring problem. Please check your wiring again (again ? yes again).
Hi Erdin, i was able to find the problem. Actually it had nothing to do with the caps or the pullups. I had connected the reset pin of the module to Vcc but it seems that you have to pull it low before pulling it high again XD. I figured it out by chance but it works fine now. Thanks for all your help and thanks for telling me about the I2C scanner code, i will use it in the future to debug my problems :D.
Good to know you found the problem.
As far as I know, the reset is used for sketch upload via the serial port and also for a programmer with SPI (MISO MOSI and so).
For a chip preprogrammed with bootloader, I have 10k from reset to Vcc and 100nF to the DTR of a usb-serial module.
For a chip that uses only SPI (MISO MOSI and so) for programming, I have just the 10k to Vcc and the reset to the 6-pin (ICSP) or 10-pin (USBasp) header.