I currently have an ov7670 interfaced with an arduino mega. I have disabled the internal pullups by editing the wiring library (the ov7670 uses 3.3v) and have tried both a 1k and a 10k pullup resistor.By removing the 3.3v it gets stuck on Wire.endTransmission(true); the ov7670 uses SCCB which should be compatilbe with i2c Here is my code
#include <Wire.h>
void setup()
{
Serial.begin(9600);
pinMode(13, OUTPUT);
Wire.begin();
Serial.println("I2C started");
Wire.beginTransmission(0x21);
Serial.println("Began");
Wire.write(0x0D);
Serial.println("written");
Wire.endTransmission(true);
Serial.println("ended");
Wire.requestFrom(0x21, 1,true);
//while (!Wire.available()) {}
Serial.println("requested");
unsigned char x=Wire.read();
Serial.println(x);
}
void loop()
{
digitalWrite(13,HIGH);
delay(100);
digitalWrite(13,LOW);
delay(100);
}