SPI Arduino Problem

Gast #3272940
Hallo,
ich möchte über ein Arduino mit einem ATmega168 einen AD-Wanlder über 
SPI auslesen. Das Auslesen an sich ist auch nicht das Problem, jedoch 
eher der Ruhezustand. Der AD-Wandler liegt an 230V und über einen 
ADum7643 übergebe ich die Daten galvanisch getrennt per SPI an den mega.
Nun habe ich angefangen alles aufzubauen. Habe also meine Arduino 
Platine genommen und das Programm aufgespielt und mal den 
Seriellenmonitor angesehen. Ohne dass etwas an den SPI Ports 
angeschlossen ist, bekomme ich bereits Werte angezeigt. Diese sind zwar 
sehr konstant dürften aber eigentlich nicht da sein. Auch komisch, wenn 
ich den Monitor ansehe und die Netzspannung an den AD-Wandler Anschließe 
so passen die Werte nicht mehr oder das System bleibt hängen. Also hilft 
nur noch ein Reset des ATmega. Komisch ist auch, wenn ich den 
Seriellenmonitor nicht ansehe werden scheinbar auch keine Werte 
übertragen, jedenfalls leuchtet die RX TX LED nicht, wenn ich aber ein 
Programm schreibe welches bewusst jede Sekunde etwas sendet, leuchtet 
die LED auch ohne Monitor.
Kann es sein, dass der Seriellemonitor hier nur verwirrt?
Gruß
Retorte schrieb im Beitrag #3272945:

> P.S.: Arduinos sind nicht SPI-kompatibel.

Bitte? Was soll denn diese Ausage? Ich könnte dir tausend Dinge sagen, 
was Arduinos NICHT sind (gut, sinnvoll, zu empfehlen), aber SPI sollte 
damit kein Problem darstellen.

> Kann es sein, dass du keine Ahnung hast was du da machst?

Ich glaube das trifft auf dich zu.
Gast
Das weiß ich nicht erst seit heute was hier so rum liest :)

Also wie gesagt sobald ich das Terminal Programm starte empfange ich 
irgendwelche Signale, wenn ich es nicht offen habe, empfange ich nur 
Signale wenn diese auch gefordert werden also wie programmiert. Aber bei 
beiden Vorgängen also mit Terminal und ohne bleibt der ATmega irgendwann 
einfach hängen!
Gast
Jetzt verstehe sehe ich.

Es gibt eine SPI Library für den Arduino, obwohl der SPI nicht 
beherrscht. Was für eine Verschwendung.

Na ja, ich hab ja auch keine Fachwissen. :-P
Gast
Ich muss zugeben, dass mir dein Problem noch etwas unklar ist.

Mir würde es helfen, wenn Du:
- Den Arduino Sketch posten könntest
- Eine kleine Skizee des Aufbaus anhängen würdest (Ein paar Kästen 
(Arduino, AD-Wandler, Steckdose) und Linien die die verbinden)
- Den genauen Anschluss des Wandlers an den Arduino beschreibst. (Welche 
Pins sind mit welchen verbunden?)


> Ohne dass etwas an den SPI Ports angeschlossen ist,
> bekomme ich bereits Werte angezeigt.

Das sollte normal sein, die Pins floaten halt in der Gegend rum.
Gast
Ok habe was gefunden. Ich lese ja nur Werte aus, wenn in einem der 
Register steht, dass werte drin sind und nach dem auslesen wird das Flag 
gelöscht. also muss irgendwo her beim auslesen die MCU der meinung sein, 
dieses flag gelesen zu haben, obwohl es real gar nicht da ist!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.