Forum: Mikrocontroller und Digitale Elektronik One Wire auf SD-Karte speichern. Ist meine Schaltung in Ordnung?


von T0m (werwolf92)


Angehängte Dateien:

Lesenswert?

Guten Tag Zusammen,

ich habe die Frage ob mein Schaltbild so in Ordnung ist.

Die Schaltung soll eigentlich nur die Daten von den One Wire auslesen, 
Temperatur über den NTC auslesen, das zusammen in die SD-Karte schreiben 
in eine .csv Datei und immer die aktuellen Daten auf dem LCD anzeigen 
lassen.
Menü Führung über 5 Tasten. Habe ich nicht eingezeichnet, weil es sonst 
noch unübersichtlicher wird^^

An den unteren 4 Stiftleisten kommen so Adapter dran mit einer extra 
Platine wo ein DS2740 mit Außenbeschaltung dran ist. Die extra Platine 
mit den One Wire Teil funktioniert. Die habe ich schon getestet.

Nun allerdings nur halt die Frage Schaltung so OK ist. Bevor ich später 
noch nach Fehler suche. Für mich ist es eher nur wichtig das ich was 
beim programmieren lerne.
Da wo die SD-Karte rankommt benutz ich folgenden Adapter:
http://www.elv.de/micro-sd-karten-adapter-msda1-komplettbausatz.html

Da ist ein Pegelwandler gleich mit drauf, ich sollte daher mit meiner 
Versorgungspannung von 5V keine Probleme haben.

Außerdem wollt ich dafür die Lib von elm-chan benutzen. Oder gibt es da 
"bessere"?

Die USB zu UART Schnittstelle habe ich auch schon getestet, sollte auch 
so funktionieren.

Vorwiderstand der LED 330 Ohm. Die sind Rot.

LG
Werwolf

: Bearbeitet durch User
von H.Joachim S. (crazyhorse)


Lesenswert?

SD-Karte mit 5V ist nicht so dolle...

Ok, nicht gelesen, nur die Schaltung angeschaut.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Ich glaube, bei dem LCD sollen die vier unbenutzten Eingänge offen 
bleiben. Steht zumindest in meinem Datenblatt.

Der Kontrast lässt sich besser einstellen, wenn du in Reihe zum Poti 
einen Widerstand legst, so dass die Kontrastspannung im Bereich 0 bis 2V 
einstellbar ist. Mehr als 2 Volt brauchst du garantiert nicht.

Bei der SD karte würde ich mal prüfen, ob ein Pull-Up Widerstand nötig 
wird, damit die Karte nicht Amok läuft, solange der µC seine I/O Pins 
noch nicht initialisiert hat. Kann aber auch gut sein, dass dein 
KartenSlot/Adapter das schon integriert hat.

von T0m (werwolf92)


Lesenswert?

Hey, erstmal vielen Dank für deine Antwort.

Stefan U. schrieb:
> Ich glaube, bei dem LCD sollen die vier unbenutzten Eingänge offen
> bleiben. Steht zumindest in meinem Datenblatt.
>
Ok ich werde sie bei meinem ersten Aufbau dann erstmal offen lassen.
In meinem Datenblatt steht nichts dazu. Wenn es Problem macht, schalt 
ich einfach Masse zu und schaue dann.

> Der Kontrast lässt sich besser einstellen, wenn du in Reihe zum Poti
> einen Widerstand legst, so dass die Kontrastspannung im Bereich 0 bis 2V
> einstellbar ist. Mehr als 2 Volt brauchst du garantiert nicht.
>
Ok, werd ich machen.

> Bei der SD karte würde ich mal prüfen, ob ein Pull-Up Widerstand nötig
> wird, damit die Karte nicht Amok läuft, solange der µC seine I/O Pins
> noch nicht initialisiert hat. Kann aber auch gut sein, dass dein
> KartenSlot/Adapter das schon integriert hat.

Der Adapter hat ein Enable Pin. Wenn dort Low ist, schaltet ein FET die 
Versorgungsspannung zu der SD-Karte durch. Dort ein Pull-Up würde doch 
reichen oder? Mit dem uC würde ich denn dann Low schalten, wenn die 
restlichen Pins initialisiert sind.

Bei den anderen Pins ist nur der 74HC4050 vorgeschaltet. Mein Datenblatt 
lesen ist nicht das beste, aber ich denke dort ist auch kein Pull-Up 
drin. Nur 100 Ohm in Reihe.

von Marc S. (marc_s86)


Lesenswert?

Warum Temperatur per NTC und noch auch an den onewire bus?

von T0m (werwolf92)


Lesenswert?

Marc S. schrieb:
> Warum Temperatur per NTC und noch auch an den onewire bus?

Also ein NTC eig. nur wegen dem lernen. Hat kein besonderen Grund. Ein 
Chip könnte man auch nehmen, aber ich will das halt mal machen mit dem 
ausrechnen und so. Außerdem will ich die "Versorgung" des NTC auch so an 
und aus schalten, wegen der Eigenerwärmung. Ich weiss selbst dass das in 
dieser Schaltung murks ist und die Eigenerwärmung auch hier 
vernachlässigbar ist, aber ich dachte mir, warum nicht.

An dem OneWire Bus ist der NTC doch gar nicht? :o

Ich habe übrigens mit Absicht für jede One-Wire Datenleitung ein Pin am 
uC genommen, weil ich sonst nicht weiss welcher der vier DS2740 nun 
genau angeschlossen ist. Wenn ich die alle an einem Bus habe und nach 
der Seriennummer abfrage, bekomme ich ja 4 antworten, aber ich weiss 
nicht welcher wo angeschlossen ist. Das könnte man wahrscheinlich iwie 
mit FETs oder Jumpern hinkriegen, aber sicherer und einfacheer find ichs 
so. Soll auch keine Profi-Lösung werden.

von Wolfgang (Gast)


Lesenswert?

AREF an +5V ist nun nicht so toll. Da sollte nur eine Kondendator ran 
und die Referenz dann programmatisch gewählen werden. Da du den ADC 
benutzen willst, sollte AVCC besser gegen die verdreckten VCC abgeblockt 
sein und der NTC-Spannungsteiler aus den sauberen AVCC gespeist werden.

von T0m (werwolf92)


Lesenswert?

Wolfgang schrieb:
> AREF an +5V ist nun nicht so toll. Da sollte nur eine Kondendator ran
> und die Referenz dann programmatisch gewählen werden. Da du den ADC
> benutzen willst, sollte AVCC besser gegen die verdreckten VCC abgeblockt
> sein und der NTC-Spannungsteiler aus den sauberen AVCC gespeist werden.

Also an AREF gegen Masse ein 100nF?

Dafür muss ich dann ADMUX so intialisieren:

ADMUX = ((0<< REFS1) | (1<<REFS0));

oder?

von Wolfgang (Gast)


Lesenswert?

Wer W. schrieb:
> Also an AREF gegen Masse ein 100nF?

... und eine Drossel zwischen AVCC und VCC. So wie im Datenblatt in
Figure 23-9 S.253 ("ADC Power Connections").

> ADMUX = ((0<< REFS1) | (1<<REFS0));

Das (0<< REFS1) bringt nicht so richtig viel - aber wer's mag ...

von H.Joachim S. (crazyhorse)


Lesenswert?

C3 ist fehl am Platze.
Die Software fürs Display wird einfacher und schneller, wenn du die 4 
Datenleitungen entweder ans low- oder ans high-nibble anschliesst. Es 
geht natürlich auch so, aber wie gesagt - einfacher und schneller.

von Marc S. (marc_s86)


Lesenswert?

Wer W. schrieb:
> An dem OneWire Bus ist der NTC doch gar nicht? :o

Gemeint war statt des NTC einen DS18b20

> Ich habe übrigens mit Absicht für jede One-Wire Datenleitung ein Pin am
> uC genommen, weil ich sonst nicht weiss welcher der vier DS2740 nun
> genau angeschlossen ist. Wenn ich die alle an einem Bus habe und nach
> der Seriennummer abfrage, bekomme ich ja 4 antworten, aber ich weiss
> nicht welcher wo angeschlossen ist. Das könnte man wahrscheinlich iwie
> mit FETs oder Jumpern hinkriegen, aber sicherer und einfacheer find ichs
> so. Soll auch keine Profi-Lösung werden.

Du merkst dir ein mal alle 4 Seriennummern danach weißt du welcher wo 
sitzt ;)

von T0m (werwolf92)


Lesenswert?

Wolfgang schrieb:
> Wer W. schrieb:
>> Also an AREF gegen Masse ein 100nF?
>
> ... und eine Drossel zwischen AVCC und VCC. So wie im Datenblatt in
> Figure 23-9 S.253 ("ADC Power Connections").
>
Hab leider keine Drosseln da, werde sie mal weglassen, soll ja kein 
Profi-Gerät werden, aber vielen Dank für den Tipp.

>> ADMUX = ((0<< REFS1) | (1<<REFS0));
>
> Das (0<< REFS1) bringt nicht so richtig viel - aber wer's mag ...

Ich mags :D

H.Joachim S. schrieb:
> C3 ist fehl am Platze.
>
Ich lese immer in Datenblättern auch das dort kein Elko hinmuss. Wenn 
ich mir aber von anderen Leuten mir die Schaltung angucke, haben die 
dort immer noch zur "Sicherheit" ein Elko drin. Gibts da für eine Formel 
oder soetwas?

> Die Software fürs Display wird einfacher und schneller, wenn du die 4
> Datenleitungen entweder ans low- oder ans high-nibble anschliesst. Es
> geht natürlich auch so, aber wie gesagt - einfacher und schneller.

Mh... hast recht. Ich änder das auch.

von T0m (werwolf92)


Lesenswert?

Marc S. schrieb:
> Wer W. schrieb:
>> An dem OneWire Bus ist der NTC doch gar nicht? :o
>
> Gemeint war statt des NTC einen DS18b20
>
Wie gesagt zum "lernen".

>> Ich habe übrigens mit Absicht für jede One-Wire Datenleitung ein Pin am
>> uC genommen, weil ich sonst nicht weiss welcher der vier DS2740 nun
>> genau angeschlossen ist. Wenn ich die alle an einem Bus habe und nach
>> der Seriennummer abfrage, bekomme ich ja 4 antworten, aber ich weiss
>> nicht welcher wo angeschlossen ist. Das könnte man wahrscheinlich iwie
>> mit FETs oder Jumpern hinkriegen, aber sicherer und einfacheer find ichs
>> so. Soll auch keine Profi-Lösung werden.
>
> Du merkst dir ein mal alle 4 Seriennummern danach weißt du welcher wo
> sitzt ;)

Ja, aber ich habe nicht nur 4 Adapter :D sondern einige mehr und ich 
möchte halt auch eine von den DS2740 nicht immer an den ersten Slot 
machen, sondern auch mal am an den anderen. Die sind so per 
Western-Stecker so ansteckbar.
Habs vorhin bissl doof erklärt :D

von T0m (werwolf92)


Angehängte Dateien:

Lesenswert?

Moin,

ich bin nun wieder Zuhause und habe alles überarbeitet wie es ihr gesagt 
habt.

Habe sogar noch ausm alten Bausatz eine Festinduktivität von 22uH 
gefunden. Laut Datenblatt eine Güte von >= 60. Sollte ja in Ordnung 
sein? Im Datenblatt sind ja 10uH angegeben, ich denke aber da tut sich 
nicht viel.

Fällt sonst noch etwas auf?

Gruß
Werwolf

Edit: Sry wenn es ein wenig unübersichtlich geworden ist, aber besser 
krieg ichs iwie nicht hin :/

: Bearbeitet durch User
von Heiko G. (heikog)


Lesenswert?

Hallo!

Den linken Gnd-Pin des AVR (Pin11) sollte man noch mit dem Gnd-Netz 
verbinden.

von T0m (werwolf92)


Lesenswert?

Heiko G. schrieb:
> Hallo!
>
> Den linken Gnd-Pin des AVR (Pin11) sollte man noch mit dem Gnd-Netz
> verbinden.

Woher hast du die Info? ich finde nirgendswo, dass das nicht so sein 
sollte.

Edit: sry ich bin doof, habe anstatt noch, nicht gelesen

: Bearbeitet durch User
von Flo (Gast)


Lesenswert?

SD Karte mit 5V ansprechen?  Dürfte schief gehen.

von T0m (werwolf92)


Lesenswert?

Flo schrieb:
> SD Karte mit 5V ansprechen?  Dürfte schief gehen.

Wer W. schrieb:
> Da wo die SD-Karte rankommt benutz ich folgenden Adapter:
> http://www.elv.de/micro-sd-karten-adapter-msda1-komplettbausatz.html
>
> Da ist ein Pegelwandler gleich mit drauf, ich sollte daher mit meiner
> Versorgungspannung von 5V keine Probleme haben.

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.