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