inzwischen bin ich einen Schritt weiter. Zumindest sendet das Sprachmodul ein ACK auf seine Adresse 0x52. Bei meinen vorigen Versuchen hatte sich das Modul immer schon vom Datentransfer verabschiedet und deshalb nicht mehr geantwortet.
Auf dem Aufkleber steht Version 1.1; über die serielle Schnittstelle wird Version 1.2 gemeldet.
Habe den Datentransfer auf dem I2C-Bus mal genau untersucht. Das beiliegende Bild zeigt die Übertragung eines Bytes ans Sprachmodul. Oben ist das Datensignal SDA und unten das Taksignal SCL zu sehen. Das Sprachmodul antwortet ordnungsgemäß auf die Adresse 0x52 mit einem sauberen ACK. Doch nach dem Senden des Datenbytes 0x59 (01010100B) kommt es zum Komunikationsproblem zwischen dem eingesetzten Controler (80C552 mit "Hardware"-I2C-Bus) und dem Sprachmodul. Der nadelförmige Impuls auf der Clock-Leitung wird vom Controller als 9. Impuls (Bit) gewertet und somit als ACK interpretiert. Für das Sprachmodul ist dies aber kein Impuls. Es versucht wohl einfach die Clockleitung auf LOW zu ziehen um den Master zum Warten zu veranlassen (gemäß I2C-Bus Spezifikationen) doch geschieht dies zu spät, da der Controller bereits den Impuls erkannt hat. Das Sprachmodul hält im folgenden die SDA-Leitung auf LOW um dem Contoller ein ACK zu senden. (Auf das dieser nicht mehr wartet, da schon empfangen) Das anschließende Stop-Signal des Contollers wird vom Sprachmodul nicht erkannt, da die SDA-Leitung immer noch auf LOW gehalten wird.
Wenn mann 2 Bytes zum Sprachmodul sendet ist sehr schön zu erkennen, das Controller und Sprachmodul über die Anzahl der Impulse auf der Taktleitung uneins sind. Wird als 2. Byte der Wert 4 übertragen wird Meldung 8 abgespielt. Der erste Impuls der Controllers für die Übertragung des 2. Bytes wird vom Sprachmodul als das 9. Bit vom 1.Byte interpretiert, so kommt es zu einer Bit-Verschiebung.
Wird in der Version 1.3 exakt die gleiche Software für die I2C-Bus-Routinen verwendet und nur andere Pins belegt?
Ist eine Anpassung der Sprachmodul-Software möglich, so dass sie sich an den I2C-Bus-Standard hält?
Lesezeichen