TWI: kein ACK

Gast #3916340
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
Angehängte Dateien:
Gast #3916444
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.
Gast #3916533
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.