
Jag har inte jobbat med I2C innan, men det verkar ju inte så konstigt. Har t.o.m inbyggd I2C i processorn, (Atmega644) men Atmel kallar det TWI (Two wire Interface).
Problemet är då den optiska isoleringen + min dåliga kunskap om I2C: Data behöver bara skyfflas från µC till DA... ingen data tillbaks alltså. Men I2C måste ju ha ACK-biten, på samma datalinje:

Så jag vete sjutton hur jag ska isolera dessa galvaniskt. Hade det inte varit för ack (egentligen behövs den inte , då jag kör mycket långsamt och jag vet att DA:n hänger med)...
Jag kan väl lösa detta på några olika (krångliga) sätt, antar jag:
1) skita i ack-överföringen, och försöka modda processorn på nåt vis att strunta i ack-biten.
2) skita i ack-överföring och lura processorn med en fejkad ack in... (fast det kan bli konstigt..

4) skaffa nån slags isolator som kan överföra i två riktningar samma datalina. Finns det sådana? Hur går det till?
Om jag bara behöver överföra i en riktning finns jätteenkla isolatorer från TI: iso7220

Ful-lösningen är att isolera med en analog optokopplare, men den lösningen är inte så attraktiv. TI har visserligen iso122 - en isolerad förstärkare med 0.02% linjäritet, men den kostar också 190 spänn.
Eller finns det ett mycket smartare sätt som jag inte tänkt på än?
------------------------------------------------
EDIT: Försöker fatta databladet för ATmega644... Atmels kodexempel är som vanligt helt värdelösa / urusla. Exempel:
jovisst! Och man vill givetvis att processorn hänger sig i den loopen för evigt om det inte kommer någon acknowledge?while (!(TWCR & (1<<TWINT)));
Wait for TWINT Flag set. This
indicates that the SLA+W has been
transmitted, and ACK/NACK has
been received.
