Hallo zusammen, ich muss gerade eine TWI-Kommunikation mit einem AT32UC3A als Master aufbauen. Der Slave in der Kommunikation hat sowohl Schreib-, Lese- als auch Funktionsaufrufe. Das Problem tritt bei den Funktionsaufrufen auf, da der Master zuerst schreiben und direkt danach auch lesen soll. Der Slave verlangt hierbei, dass zwischen Schreib- und Lesevorgang ein Repeated Start gesendet wird. Leider habe ich keine Möglichkeit gefunden, einen erfolgreichen Funktionsaufruf mit dem AT32UC3A durchzuführen. Ist es mit diesem Mikrocontroller überhaupt möglich einen solchen Funktionsaufruf durchzuführen und wenn ja, welche Register muss ich dafür in welcher Reihenfolge setzen. Vielen Dank im Voraus
Max schrieb: > ich muss gerade eine TWI-Kommunikation mit einem AT32UC3A als Master > aufbauen. Aha. Eine TWI-Kommunikation. Ich vermute mal, daß damit eigentlich ein I2C Bus gemeint ist. Also: Der Verkehr auf einem I2C Bus erfolgt etwa so: 1. ein/der Master appliziert eine Start-Kondition 2. der Master sendet ein Adressierungsbyte, was die Adresse des anzusprechenden Slaves und ein Bit zum Unterscheiden, ob es im folgenden ein Lesen oder Schreiben sein soll, enthält. 3. der Master sendet/empfängt Bytes. Der jeweilige Empfänger quittiert jedes Byte mit einem ACK oder er rührt sich nicht, was NAK bedeutet. 4. der Master appliziert eine Stop-Kondition Normalerweise darf sich das Datensignal (SDA) nur dann ändern, wenn das Clock-Signal (SCL) auf LOW liegt. Ändert man SDA, während SCL auf High ist, dann ist das eine Start- bzw. Stop-Kondition wie folgt: SCL LOW-->HIGH = Stop SCL HIGH-->LOW = Start Und ein repeated Start ist nix anderes als eine erneute Start-Kondition ohne zuvorige Stop-Kondition. Das ist eigentlich alles - was den I2C betrifft. Sowas wie Busherrschaft gewinnen oder abgeben lassen wir hier mal außen vor. Zu diversen µC: oftmals haben die ein I2C-Interface eingebaut. Allerdings reicht deren Qualität von 'benutzbar' bis 'Katastrophe'. Manche erzeugen bei jedem Zustandswechsel einen Interrupt und überlassen das eigentliche Handeln dem Programmierer der ISR. Ist häßlich, aber benutzbar. Andere wollen ganz besonders oberschlau sein und alles selber machen. Ist zwar besonders genial gedacht, aber meistens so gut wie unbenutzbar. Wenn du an so einen µC geraten bist, dann laß das I2C-Interface links liegen und mache deine Abläufe in Software. Das ist übersichtlicher und benutzbarer. W.S.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.