Hallo, Für mein Projekt muss ich eine I2C-Kommunikation zwischen ATMEGA88A und Beschleunigungssensor ADXL345 etablieren. Ich habe eine I2C-Library probiert, aber ich denke funktioniert nicht !!, weil der Mikrocontroller keine Daten von dem Sensor ausliest. Habt Ihr vielleicht eine nützliche I2C-Bibliothek? Im Anhang findet Ihr die I2C-Bib, die ich benutzt habe.
Wie ist der ADXL angeschlossen?
Gast
#6932701
Kevin A. schrieb: > Ich habe eine I2C-Library > probiert, aber ich denke funktioniert nicht !! Aber ich denke die funktioniert schon. Der Auto hat da etwas ganz niedliches Universelles kreiert, eine Soft-I2C-Library! Kevin A. schrieb: > weil der Mikrocontroller keine Daten von dem Sensor ausliest. Nein sondern weil du die Library nicht richtig benutzt. Zeige dein Programm, zeige was du beobachtest und was du dagegen erwartest. Kevin A. schrieb: > Habt Ihr vielleicht eine nützliche I2C-Bibliothek? Die dir vorliegende Bibliothek ist sehr nützlich!
Gast
#6932702
Kevin A. schrieb: > Ich habe eine I2C-Library > probiert, aber ich denke funktioniert nicht !!, weil der Mikrocontroller > keine Daten von dem Sensor ausliest. Antwortet der Sensor nicht oder erscheinen keine/falsche Signale auf dem Bus? Mit welcher Spannung betreibst du den µC, mit welcher den ADXL345?
Kevin A. schrieb: > Habt Ihr vielleicht eine nützliche > I2C-Bibliothek? ja http://www.peterfleury.e(pi)zy.com/avr-software.html?i=1 http://www.peterfleury.e(pi)zy.com/lcdlibrary.zip http://www.peterfleury.e(pi)zy.com/doxygen/avr-gcc-libraries/group__pfleury__ic2master.html !!!!! ( ) aus den Links ENTFERNEN !!!!! I2C Master Interface This library consists of a C include file i2cmaster.h and an assembler module i2cmaster.S. It can be used to communicate with I2C devices (serial EEPROM, serial RTC etc) from any AVR device. nur muss man die auch richtig einbinden!
Gast
#6932727
Joachim B. schrieb: > nur muss man die auch richtig einbinden! Daran wird der TO auch scheitern wenn er schon an der ersten unspezifischen Fehlfunktion seiner Implementierung verzweifelt.
Gast
#6932728
hast du Pullup Widerstände verbaut?
Gast
#6932742
Ohne Scope geht da gar nichts. Nur damit kannst du sehen, was auf dem Bus raus geht. Welche Adresse benutzt wird. Und ob der ADXL auch darauf antwortet. Alles andere ist Stochern im Nebel. Anbinden von Hardware ist mehr als Copy&Paste bzw Austauschen eine Library, weil die andere nicht ging. Du musst den Grund des Fehlverhaltens finden, und das kann auch an der Hardware liegen. Also Messen und Analysieren. Alles andere ist blauäugig. Also mach bitte auch keinen dritten Thread auf, nur weil du es mit der zweiten Bibliothek auch nicht schaffst.
Website ist nicht erreichbar !!
Gast
#6932750
Ach noch was. In dem lustigen C-Code kann ich nirgends finden, wo die Slave-Adresse (laut Datenblatt 0x1D) benutzt wird. Habe ich das Übersehen? Kannst du mir das noch erklären, wo das gemacht wird? Ich finde nur Register und Data in einer Kommunikation, aber nicht die Slave-Adresse. Ist das normal beim AT-Mega?
Gast
#6932753
Kevin A. schrieb: > aber ich denke funktioniert nicht Kevin A. schrieb: > Habt Ihr vielleicht eine nützliche I2C-Bibliothek? Nicht denken, messen! Besorge dir einen Logic Analyzer und schau nach, was los ist. Kostet keine 10 Euro! Zusätzlich ist ein Oszilloskop hilfreich, um die Signalqualität zu überprüfen. Dafür reicht schon so ein billiges DSO150, falls du sparen musst. Wenn du uns deinen Schaltplan und Fotos vom Aufbau zeigst, können wir dir auch dabei helfen. Ist besser als einfach blind davon auszugehen, dass die Schaltung schon OK sei. By the way: Den gleichen Code hatten wir vor wenigen Tagen schon einmal diskutiert. Beitrag "ATMEGA88A/Beschleunigungssensor (ADXL345)" Auch da wurde auf den Schaltplan und Logic Analyzer hingewiesen. Meinst du wir schreiben das nur, um dich zu verapplen?
Stefan ⛄ F. schrieb: > zu verapplen veräppeln auf denglisch? OMG
Gast
#6932763
Schau dir http://stefanfrings.de/mikrocontroller_buch/index.html an, insbesondere Band 2 Kapitel 5.9. Im Anhang 12.2 findest du einen Beispielcode den ich ziemlich intensiv auf einem ATmega16 verwendet hatte. Theoretisch geht der auf jedem ATmega.
Gast
#6932765
Lötlackl *. schrieb: >> zu verapplen > veräppeln auf denglisch? Kleiner Seitenhieb gegen meine liebste Lästerfirma.
Stefan ⛄ F. schrieb: > Kleiner Seitenhieb gegen meine liebste Lästerfirma. Achso. Fleurys Lib verwende ich übrigens auch gerne. Habe mir noch was sinnvolles dazugebastelt.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
Vielleicht kanns wer brauchen.
Gast
#6932816
Kevin A. schrieb: > Im Anhang findet Ihr die I2C-Bib, die ich benutzt habe. ... und hier findet man den ersten erfolglosen Ansatz sein Problem zu lösen: Beitrag "ATMEGA88A/Beschleunigungssensor (ADXL345)" Immer das gleiche Spiel: nebulöse, unvollständige Angaben zur Problemstellung. Keine vollständige Source, kein Schaltplan, kein Foto vom Versuchsaufbau, etc. Diese Arbeitsweise ist zum Scheitern verurteilt.
Gast
#6932829
Joachim B. schrieb: > !!!!! ( ) aus den Links ENTFERNEN !!!!! Kevin A. schrieb: > Website ist nicht erreichbar !! Liest du die Posts eigentlich?
Gast
#6932877
123 schrieb: > Liest du die Posts eigentlich? Lesen alleine reicht oft nicht ...
PittyJ schrieb: > Ohne Scope geht da gar nichts. Mist, was habe ich falsch gemacht? Ich nahm die erste I2C Lib von Fleury ohne Scope in Betrieb! kaum macht mans richtig funktioniert es zu oft. Bei HW Fehler gebe ich dir Recht!
123 schrieb: > Joachim B. schrieb: >> !!!!! ( ) aus den Links ENTFERNEN !!!!! > > Kevin A. schrieb: >> Website ist nicht erreichbar !! > > Liest du die Posts eigentlich? vielen Dank . Mittels dieser Bib kann jetzt den Mikrocontroller die Werte auslesen.
Gast
#6932885
Joachim B. schrieb: > Bei HW Fehler gebe ich dir Recht! Ob es ein HW-Fehler oder ein SW-Fehler ist, zeigt sich oft leider erst, wenn man den Dingen mit Messtechnik und Debugger auf die Finger schaut ;-)
Gast
#6933146
PittyJ schrieb: > Ohne Scope geht da gar nichts. Joachim B. schrieb: > Mist, was habe ich falsch gemacht? > Ich nahm die erste I2C Lib von Fleury ohne Scope in Betrieb! Joachim, ich bin in letzter Zeit echt über die Qualität deiner Kommentare enttäuscht. Wenn du nicht helfen willst, dann halte dich doch einfach raus! Du stichelst nur noch. In diesem Fall hast du sogar einen einzelnen Satz aus dem Zusammenhang gerissen, nur um den Pitty blöd da stehen zu lassen. Dabei hat er diesen Absatz völlig korrekt und sinnvoll fortgeführt: > Ohne Scope geht da gar nichts. > Nur damit kannst du sehen, was auf dem Bus raus geht. Welche Adresse > benutzt wird. Und ob der ADXL auch darauf antwortet. > Alles andere ist Stochern im Nebel. Wenn die Kommunikation bei dir Joachim geklappt hat, dann hast du natürlich keinen Grund, Messgeräte aufzubauen. Aber hier in diesem Thread geht es nicht um deinen guten Fall. Was ist los mit dir?
soft lib user schrieb: > ... und hier findet man den ersten erfolglosen Ansatz sein > Problem zu lösen: > > Beitrag "ATMEGA88A/Beschleunigungssensor (ADXL345)" > Das wäre nicht schlimm, manchmal braucht man mehrere Anläufe aus unterschiedlichen Startpositionen. Anscheinend war das zu langweilg, dort mit dem bisher erzielten Stand weiter machen zu wollen. Und Du hast erneut den genau gleichen Quelltext gepostet, der den Sensor nicht mit seiner Adresse anspricht und läßt somit keine Eigeninitiative und keinen Lernfortschritt erkennen. Das muß man sich erst mal trauen. " Created: 12/26/2021 11:56:58 AM * Author: hamza" >Für mein Projekt muss ich Für eine von außen aufgewungene Aufgabe kann man nur schwerlich Elan und Hingabe entwickeln. Na wenigstes geht's jetzt. mfG
Ist der Controller korrekt gefused und die Frequenz des Quarzes richtig im Code angegeben? Wenn die Timings aus irgendeinem Grunde nicht stimmen, weil der Vorteiler nicht richtig gesetzt ist oder eine andere Taktfrequenz dem Compiler übergegebn wird, dann ist das Ergebnis ebenfalls für den Popo!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.