Bubi_00
02.03.2007, 11:29
HI
Ich habe hier testweise für I²C Master lib von Fleury ein kleines EEprom angeschlossn. Ein PortExpander zum schreiben funktioniert einwandfrei.
Das EEProm auslesen aber leider nicht :(
int main(void)
{
unsigned char ret = 0;
USART_INIT( MYUBRR);
USART_Puts("EEPROM \n \r");
i2c_init(); // init I2C interface
/* write 0x75 to eeprom address 0x05 (Byte Write) */
ret = i2c_start(DevAdd_W); // set device address and write mode
_delay_ms(5);
if ( ret ) {
/* failed to issue start condition, possibly no device found */
i2c_stop();
USART_Puts("Start Failed");
}else {
/* issuing start condition ok, device accessible */
i2c_write(0x20); // write address = 5
_delay_ms(5);
i2c_write(0x75);
_delay_ms(5);
i2c_stop(); // set stop conditon = release bus
i2c_start_wait(DevAdd_W);
i2c_write(0x20);
_delay_ms(5);
i2c_rep_start(DevAdd_R); // set device address and read mode
_delay_ms(5);
ret = i2c_readNak(); // read one byte
i2c_stop();
USART_Puts("Read from EEPROM: ");
USART_Puts(ret);
USART_Puts("\n\r");
}
for(;;);
}
Ist größtenteils eigentlich der Beispielcode vom Peter Fleury...
Im Hypterterm ist aber folgendes zusehen
EEPROM
Read from EEPROM: †uI˜~!%R8¼¦v…¥»ÁEDDÍU„f¼‰âš§0ƒ¥Žò
`"’°Çk
“€½0$@.Ä
ˆ
Ich bin jetzt schon am timing rumspielen wie ihr seht, aber irgendwie wills ned so recht :(
Seht ihr den Fehler..
Mfg Bubi
Achja Pullups hab ich[/highlight]
Ich habe hier testweise für I²C Master lib von Fleury ein kleines EEprom angeschlossn. Ein PortExpander zum schreiben funktioniert einwandfrei.
Das EEProm auslesen aber leider nicht :(
int main(void)
{
unsigned char ret = 0;
USART_INIT( MYUBRR);
USART_Puts("EEPROM \n \r");
i2c_init(); // init I2C interface
/* write 0x75 to eeprom address 0x05 (Byte Write) */
ret = i2c_start(DevAdd_W); // set device address and write mode
_delay_ms(5);
if ( ret ) {
/* failed to issue start condition, possibly no device found */
i2c_stop();
USART_Puts("Start Failed");
}else {
/* issuing start condition ok, device accessible */
i2c_write(0x20); // write address = 5
_delay_ms(5);
i2c_write(0x75);
_delay_ms(5);
i2c_stop(); // set stop conditon = release bus
i2c_start_wait(DevAdd_W);
i2c_write(0x20);
_delay_ms(5);
i2c_rep_start(DevAdd_R); // set device address and read mode
_delay_ms(5);
ret = i2c_readNak(); // read one byte
i2c_stop();
USART_Puts("Read from EEPROM: ");
USART_Puts(ret);
USART_Puts("\n\r");
}
for(;;);
}
Ist größtenteils eigentlich der Beispielcode vom Peter Fleury...
Im Hypterterm ist aber folgendes zusehen
EEPROM
Read from EEPROM: †uI˜~!%R8¼¦v…¥»ÁEDDÍU„f¼‰âš§0ƒ¥Žò
`"’°Çk
“€½0$@.Ä
ˆ
Ich bin jetzt schon am timing rumspielen wie ihr seht, aber irgendwie wills ned so recht :(
Seht ihr den Fehler..
Mfg Bubi
Achja Pullups hab ich[/highlight]