Forum: Mikrocontroller und Digitale Elektronik µC und SD Karte - Datenlogging


von Diseq (Gast)


Lesenswert?

Hallo Forengemeinde,

im Zuge meiner BA will ich ein einphasiges Leistungsmessgerät bauen, 
dass die momentane Leistung loggt. Hierzu möchte ich eine SD Karte 
verwenden und insbesondere eine bekannte FAT16/32 Bibliothek wie die von 
Roland Riegel. Die Daten über Schein-,Blind- und Wirkleistung stellt ein 
IC zur Verfügung wie z.b. der ADE7753. Bekanntermaßen werden diese 
ebenfalls über das SPI Interface mit dem µC verbunden.

Meine Frage daher: Wenn ich sagen wir mal alle 200ms auf die SD Karte 
schreiben möchte in der Größenordnung einiger bytes, wie lange dauert 
dann dieser Schreibvorgang? Oder anders ausgdrückt macht es Sinn das SPI 
des µC zu multiplexen um sowohl von dem IC zu lesen als auch auf die SD 
Karte zu schreiben. Oder sollte ich gleich zwei µC verwenden die über 
das USART miteinander kommunizieren. Der eine holt die Daten des IC, 
schickt sie an den zweiten, dieser schreibt sie dann auf die Karte.

Falls das ganze keinen Sinn macht bitte auch aufklären ;)

Welchen IC würdet ihr für obiges vorhaben verwenden?

Grüße,
Diseq

von Alex S. (thor368)


Lesenswert?

Tach Diseq,

eine SD Karte sowie der ADE haben CS bits. SPI ist als multi slave BUS 
ausgelegt und kann daher ohne Probleme mehrere Teilnehmer verwalten. Die 
slaves können elektrisch stumpf parallel geschaltet werden. Nur für das 
CS brauchst du halt noch jeweils ein bit am Master. Wird wohl nicht das 
Problem sein.

Außerdem würde ich dir empfehlen einen Buffer im RAM zu erstellen, dass 
du nicht so oft schreiben musst. Es kommt halt darauf an wie viel RAM 
dir zur Verfügung steht.

Thor

von Diseq (Gast)


Lesenswert?

Vielen dank,

wie muss ich mir das vorstellen, jeder IC hat einen CS Pin, der je nach 
angelegt High/Low ihn dazu veranlasst zuzuhören bzw. zu kommunizieren?

von Alex S. (thor368)


Lesenswert?

Ohha ein Problem gibt es aber noch.

Ich sehe grade, dass der ADE7753 ein 5V Fresser ist. Ab 4V macht der 
dicht. SD Karten erwarten aber einen Betriebsspannung von 3,3V. Das wird 
ohne getrickse also nichts.

Die einfachste Methode ist ein anderes chip mit 3V3 VDD zu nehmen. Wenn 
es unbedingt ein 5V Typ sein muss ist die saubere Methode BUStreiber mit 
3V3 Ausgängen zu nehmen.

Quick and dirty ist den ADE aus 5V zu versorgen, den µC und die SD aber 
aus 3V3. Das geht bei den Eingängen auf jeden Fall. Das logic high ist 
bei 2,4V zufrieden. Um zu verhindern, dass dir das DO bei nem high level 
den Ar*** aufreißt helfen ein paar kOhm in Reihe.

Thor

von Alex S. (thor368)


Lesenswert?

> jeder IC hat einen CS Pin, der je nach angelegt High/Low ihn dazu
> veranlasst zuzuhören bzw. zu kommunizieren?

So sieht es aus. Das DO des ADE wird hochohmig und das interne 
shiftregister wird deaktiviert, wenn du CS auf high ziehst. Das gleiche 
passiert bei der SD.

Thor

von Diseq (Gast)


Lesenswert?

Interessanter Einwand. Nachdem ich noch am Bauteile suchen bin hab ich 
daran noch garnicht gedacht ;)

Wäre es nicht auch möglich einen Pegelkonverter für die Kommunikation 
zwischen µC und SD Karte zu verwenden?

von Alex S. (thor368)


Lesenswert?

> Wäre es nicht auch möglich einen Pegelkonverter für die Kommunikation
> zwischen µC und SD Karte zu verwenden?

> Wenn es unbedingt ein 5V Typ sein muss ist die saubere Methode BUStreiber
> mit 3V3 Ausgängen zu nehmen.

Das meinte ich damit.

Thor

von Diseq (Gast)


Lesenswert?

Könnt ihr noch einen anderen IC zur Leistungsmessung empfehlen, 
ebenfalls mit SPI Interface. 3.3V Typ? Wenn wir grade schon dabei sind.

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