I setup a simple platform, only the MCU, the Digole and a 4x20 alfanumeric LCD.
The MCU board works well with other i2C chips; any other i2C chip is not connected for this test.
So now it is working only the MCU, the LCD 4x20 (parallel mode - for debug only) and the Digole.
The i2C bus clock is set at 100KHz.
I wrote a very simple code:
int main(void);
lcd_clrscr();
InitTimers();
sei(); // enable interrupts
lcd_puts("MCU ON\n");
i2c_init(); // ATMEGA1284 Joins the I2C bus as a master at 100KHz frequency
lcd_puts(" i2C_initialized\n");
j=i2c_start(0x27);
if(j) lcd_puts("no Digole no\n"); else lcd_puts("Digole OK\n");
while(1) {
Digole_clearScreen();
lcd_puts("ok 2");
Digole_printChar('a');
lcd_puts("OK 3");
wdt_reset();
}
}
At the 4x20 LCD I read "MCU_ON", "i2c_initialized" and then "no Digole no". No reaction by Digole at the j=i2c_start(0x27);
Suggestion?