Gast
#337097
Hallo, ich habe ein Kenwood- Autoradio welches ein externes Display ansteuern kann. Das Protokoll beruht auf den I2C- Standard jedoch leider mit exakt einer Ausnahme welches mir jetzt das Genick bricht :-( Slave: Controller / Master: Autoradio I2C- START (von Radio nach Spezifikation) SLAVE- Adresse bit1-7 + PARITÄTS-BIT bit8 (odd) + ACK bit9 1001101 1 A Leider wird das R/W Bit als Paritätsbit mißbraucht und mein Käfer denkt nun der Master möchte lesen. DATEN (13 Byte) (von Radio ) Bit1-7 ASCII Daten bis 7Fh, Bit 8 dient wieder als Parität Bit 9 ist ACK I2C- STOP (von Radio nach Spezifikation) Gibts es eine Möglichkeit, dass ich die Hardware TWI dennoch verwenden kann (Bitmanipulation !?) Laut Datenblatt sollte es möglich sein, dass ich als SLAVE (SR-Mode) einfach FFh sende. Damit lasse ich den Bus "unberührt". Nach dem shiften der Bits sollte im Daten Register (TWDR) der letzte Stand vom Bus vorhanden sein. Hier das orginal. While data is shifted out, data on the bus is simultaneously shifted in. TWDR always contains the last byte present on the bus. (ATMega 8535, Datenblatt S.180) Leider gibt es dann Probleme mit dem Acknowledge. Kann jemand helfen? Ich hoffe ich konnte das Problem exakt schildern. Am liebesten würde ich den Controller, nachdem er seine Adresse empfangen hat, "manuell" in den SW- Modus setzen. Martin