Forum: Compiler & IDEs TWI: kein ACK


von Oci (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich weiß, dass es zu diesem Thema schon einige Beiträge gibt. Diese 
konnten mir aber leider nicht weiterhelfen, deswegen starte ich hier mal 
einen neuen:

Ich versuche das Sensormodul CJMCU-105 mit dem Beschleunigungssensor 
ADXL 345 mit einem Atmega8 über TWI auszulesen.

Ich hänge an der Stelle, an der der Beschleunigungssensor (Slave) die 
erfolgreich Übermittlung der Adresse mit ACK bestätigen soll, was er 
aber nicht macht (TWSR nach dem Adresse senden = 0x20).

aufgetretende Problembe:
1.) Dies ist mein erstes TWI-Projekt und ich kann nicht sagen inwiefern 
der C-Code stimmt. Ich habe mich aber stark an das Datenblatt des Atmega 
gehalten.
2.) Es ist auch das erste Mal, dass ich Quelltext in andere Dateien 
auslagere. Da ich es aber nicht geschafft habe, erst eine .h datei zu 
schreiben, deren Funktionen in einer weiteren .c datei weiter definiert 
werden habe, ich alles in die .h-Datei geschrieben. Ich weiß, dass man 
das so nicht macht, aber soweit ich das beurteilen kann hat das keinen 
Einfluss auf das TWI.
3.) Für das Modul CJMCU-105 habe ich kein Datenblatt gefunden, sondern 
nur für den verwendet Sensorchip ADXL 345. Deswegen kann ich nicht zu 
100% sagen, wie die Schaltung aussieht, aber die Widerstände für die TWI 
sind vorhanden und die zwei Pins des ADXL V_DD I/O und V_S haben beide 
3,5V, sodass ich davon ausgehen, dass der Chip aktiv ist.

Außerdem ist mir aufgefallen, dass ich meinen Fehlercode für 
Master-TransmitterMode: TWSR=0x20 nur erhalte, wenn ich ich adresse+1 
verschicke. Adresse+1 steht aber eigentlich für Master-RecieverMode. Was 
das für mich bedeutet kann ich leider nicht einschätzen.

Am Atemga hängen an PC4..5 nur die beiden Verbindungen für die 
TWI-Kommunikation mit dem Beschleunigungssensor und an Pin PD0..1 
Verbindungen für die UART-Kommunikation mit dem 
Rechner(Fehlerauswertung). Die Quelltexte für das Programm liegen im 
Anhang.

Ich hoffe, Ihr könnt mir weiterhelfen.

Gruß,
Oci

von dummy (Gast)


Lesenswert?

>Ich weiß, dass es zu diesem Thema schon einige Beiträge gibt. Diese
>konnten mir aber leider nicht weiterhelfen,

Doch könnten sie. Du hast wie viele andere das Problem
die 7 Bit Adressierung zu verstehen.

von Oci (Gast)


Lesenswert?

Hey,

Danke für den Hinweis: "Adressierung". Da weiß man schonmal wonach man 
suchen muss.

Ich vermute mal, dass ich mit der einfachen Addierung von twim einfach 
nur den letzen eintrag der Adressse veränder und nicht das 
Lese/Schreib-Bit setze.
Ich probier's mal aus.

von Oci (Gast)


Lesenswert?

Jep, das war's!
=)

Also ich habe jetzt als Adresse 0xA6=0b10100110 anstatt 0x53=0b1010011 
gesendet.

Danke nochmal!

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
Noch kein Account? Hier anmelden.