SD Karte und ADC parallel an AVR

OP #3197679
Hallo,
ich habe folgendes Problem:
In einem Projekt möchte ich mit einem AT90CAN AVR verschiedene Messwerte 
aufnehmen und ca. im 10 Sek Takt auf einer SD Karte als Textdatei 
ablegen. Platine ist fertig, läuft so weit auch alles sehr gut. Problem 
ist nur, dass ich die SD-Karte mit einem ADC (MCP3301) parallel an den 
SPI-Bus gehängt habe. Natürlich mit einzelnen Chipselect-Leitungen.
Jedoch wird die SD-Karte scheinbar auch bei gesetzter CS-Leitung beim 
auslesen des AD-Wandlers gestört. Daher muss ich die SD aktuell vor 
jedem Schreibzugriff neu initialisieren, die Log-Datei öffnen und ans 
Ende spulen. Das kostet sehr viel Zeit und ist ja irgendwie nicht Sinn 
der Sache.

Hatte das Problem vielleicht schonmal jemand und/oder weiß ob sich das 
lösen lässt?

Als SD Library benutze ich die hier 
http://www.mikrocontroller.net/articles/AVR_FAT32 -> Vielen Dank an 
dieser Stelle an Daniel R. die Bibliothek funktioniert ansonsten super!
Gast
Schaltplan? Pullups oder Pulldowns an den jeweiligen Chipselects?

Arne B. schrieb:
> Jedoch wird die SD-Karte scheinbar auch bei gesetzter CS-Leitung beim
> auslesen des AD-Wandlers gestört.

Das "scheinbar" gilt es zu verifizieren...
@ Arne B. (arneb123)

>Jedoch wird die SD-Karte scheinbar auch bei gesetzter CS-Leitung beim
>auslesen des AD-Wandlers gestört. Daher muss ich die SD aktuell vor
>jedem Schreibzugriff neu initialisieren, die Log-Datei öffnen und ans
>Ende spulen.

Da sollte bzw. muss man erstmal rausfinden, ob die Funktionen der 
SD-Karte das CS inaktiv schalten, wenn die beendet werden. Vielleicht 
bleibt ja CS von der SD-Karte aktiv, weil angenommen wird, dass diese 
exclusiv am SPI Bus hängt. Das wäre aber schon ein grober Fehler.

>Hatte das Problem vielleicht schonmal jemand und/oder weiß ob sich das
>lösen lässt?

Es kann auch ein Hardwareproblem sein, dass es da Übersprechen gibt. 
Vielleicht sind die Ausgänge der Chip-Selects nicht als Ausgang 
definiert und die Software schaltet immer nur den internen Pull-Up ein?

Erstmal messen, mit einem Oszilloskop.
OP
Der Vollständigkeit halber will ich noch mal kurz erwähnen, dass jetzt 
doch alles Funktioniert wie geplant. Hab den Code etwas aufgeräumt und 
siehe da es funktioniert :-). Ich hatte einige Port Einstellungen erst 
nach der Initialisierung der SD-Karte gemacht und das mochte sie wohl 
nicht, obwohl die gar nichts damit zu tun hatten. Nachdem ich das 
sortiert habe laufen jetzt die SD-Karte und der ADC wunderbar zusammen 
am selben SPI-Port.

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.