Forum: Mikrocontroller und Digitale Elektronik Anfängerfrage - Peripherie an uC anschließen


von Marius M. (muemar)


Lesenswert?

Hallo zusammen,
ich habe mal wieder so eine typische Anfängerfrage. Ich bitte um 
möglichst wenig Augen rollen und dafür um eine konstruktive Antwort. 
Vorschläge wie "Google ist dein Freund", "Schau einfach ins Datenblatt" 
u. Ä. helfen mir nicht sonderlich weiter - wahrscheinlich weil die Frage 
zu banal ist oder weil ich wirklich nicht in der Lage bin richtig zu 
suchen; gefunden habe ich nämlich nichts brauchbares.
Vielleicht erbarmt sich mir und meinem Unwissen ja aber jemand und 
erleuchtet mich mit einer hilfreichen Antwort :-)

Ich habe vor mir ein Board von TI mit der schönen Bezeichnung 
MSP-EXP430FG4618 liegen. Ich möchte gern den AD-Wandler verwenden um 
eine externe Spannungsquelle zu messen. Diese möchte ich gern über den 
PIN 6.0 einlesen. Wie ich auf diesen Pin von Seiten der Software 
zugreifen kann habe ich dank der Beispiele bei TI verstanden. Es bleiben 
für mich aber die folgenden 2 Fragen:

1. Wie genau schließe ich denn jetzt meine Quelle an den Pin an? Ich 
habe eine einfache Batterie in einer Halterung mit 2 Kabeln. Das eine 
Kabel schließe ich also an den PIN 6.0 an und definiere diesen im 
Programm als Eingang. Was genau mach ich bitte mit dem anderen Kabel? 
Ich würde das gern irgendwie auf die gleiche Masse wie den uC bringen - 
sonst kann der uC ja nur misst messen - habe aber keine Ahnung, wie das 
gehen soll.
Meine Idee: Ich schließe Kabel 2 an einen anderen Pin an, z.b. 6.1, 
definiere diesen im uC als Ausgang und schreibe dort aktiv den Wert Null 
rein. Geht das so einfach?

2. Der AD-Wandler kann neben internen auch externe Referenzquellen 
verwenden. Sind die in ihrem Maximalwert irgendwie begrenzt? Mir ist 
bewusst, dass die Betriebsspannung stark eingeschränkt ist, aber was ist 
mit der Referenzspannung?
Ich würde nämlich gern 8x1,5V=12V Batterien als ext. Quelle verwenden um 
so meinen Messbereich zu erweitern. Geht das so einfach, oder muss ich 
das über externe Messbrücken z. B. durch Widerstände realisieren?

Ich danke euch für eure Mühe.

Mfg Marius

von Karl H. (kbuchegg)


Lesenswert?

Marius Mustermann schrieb:

> 1. Wie genau schließe ich denn jetzt meine Quelle an den Pin an? Ich
> habe eine einfache Batterie in einer Halterung mit 2 Kabeln. Das eine
> Kabel schließe ich also an den PIN 6.0 an und definiere diesen im
> Programm als Eingang. Was genau mach ich bitte mit dem anderen Kabel?

Das andere Kabel ist das schwarze Kabel und das nennt sich die 'Masse'. 
Alle Massen werden miteinander verbunden.

Grund: Spannungen sind immer Potentialdiffrenzen. D.h. die 3.8V von der 
Batterie sind die Potentialdifferenz zwischen dem roten und dem 
schwarzen Kabel. Aber: Es gibt kein absolutes 0 Potential. D.h. eine 
Spannung hat nur dann einen Sinn, wenn man die beiden Kabel hat, 
zwischen denen man diese Differenz misst. Daher muss man alle Massen 
aller Teilschaltungen miteinander verbinden, damit alle Teilschaltungen 
sich darüber einig sind, was denn eigentlich der Bezugspunkt sein soll, 
der für alle Teilschaltungen als 0 dienen soll.

> Ich würde das gern irgendwie auf die gleiche Masse wie den uC bringen -
> sonst kann der uC ja nur misst messen - habe aber keine Ahnung, wie das
> gehen soll.

Schwarzes Kabel von der Batterie an die Masse vom µC. Irgendwo auf der 
Platine findet sich sicher ein Anschluss, der mit GND bezeichnet ist. 
Und wenn nicht: dieses GND ist nichts anderes als die Masse der Spannung 
mit der du den µC versorgst. Dann verbindest du eben dort hin.

> Meine Idee: Ich schließe Kabel 2 an einen anderen Pin an, z.b. 6.1,
> definiere diesen im uC als Ausgang und schreibe dort aktiv den Wert Null
> rein. Geht das so einfach?

Im Prinzip würde das sogar funktionieren. Aber viel zu kompliziert. 
Einfach mit dem - der Versorgungsspannung des µC verbinden und gut ists.

>
> 2. Der AD-Wandler kann neben internen auch externe Referenzquellen
> verwenden. Sind die in ihrem Maximalwert irgendwie begrenzt? Mir ist
> bewusst, dass die Betriebsspannung stark eingeschränkt ist, aber was ist
> mit der Referenzspannung?

Tja. Jetzt sind wir am Punkt: Steht im Datenblatt.

Die sind ziemlich sicher begrenzt. Sonst könntest du ja auch die 10kV 
von der nächsten Überlandleitung als Referenzspannung benutzen :-)

Meistens ist die Versorgungsspannung das obere Limit. Und dann gibt es 
oft noch ein absolutes Limit.

> Ich würde nämlich gern 8x1,5V=12V Batterien als ext. Quelle verwenden um
> so meinen Messbereich zu erweitern.

Anders rum.
Du lässt deine Referenzspannung immer gleich und teilst dafür die 
Messpannung mit einem Spannungsteiler runter. Und der Rest ist 
Rechnerei. Das sollen Computer ja dem Vernehmen nach können.

von sebi707 (Gast)


Lesenswert?

Marius Mustermann schrieb:
> Ich würde nämlich gern 8x1,5V=12V Batterien als ext. Quelle verwenden

Batterien als Referenzspannung sind auch denkbar ungeeignet, da die 
Spannung sich natürlich ändert wenn die Batterien mit der Zeit leer 
werden.

von Bitflüsterer (Gast)


Lesenswert?

Er hat "Datenblatt" gesagt! :-)

von Marius M. (muemar)


Lesenswert?

Danke schon mal für die schnellen Antworten, damit hätte ich nicht 
gerechnet!

Zu 1:
Danke für deine ausführliche Antwort. Die Geschichte mit den Potentialen 
ist mir so weit klar. Falls du die Zeit hast, dann schau doch bitte mal 
in das Datenblatt vom dem Board 
http://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0CDUQFjAA&url=http%3A%2F%2Fwww.ti.com%2Flit%2Fug%2Fslau213a%2Fslau213a.pdf&ei=xQP2U_qDIcLjOeaZgMgG&usg=AFQjCNFj_FRuePUhd4D1W5RwOXfRkxXx6A&bvm=bv.73231344,d.ZWU 
auf Seite 18 ist ein halbwegs brauchbarer Schaltplan. Dazu noch ein Bild 
der Platine - das gibts z.B. hier: 
http://www.conrad.de/medias/global/ce/1000_1999/1700/1700/1702/170235_LB_00_FB.EPS_1000.jpg
So nun mein Problem: Außer auf dem Breadboard sehe ich beim besten 
Willen kein Massepotential, an welches ich irgendwie ran komme. Ich 
wollte ganz gern ohne Löten auskommen, daher wüsste ich gern, ob es noch 
eine andere Möglichkeit gibt. Wenn nicht, dann sag mir doch bitte, ob 
ich einfach den Minus-Pol (siehe Bild) vom Breadboard nehmen kann.

zu 2.
Ich such noch mal im Datenblatt ne Runde nach der Referenzspannung, 
bilde mir aber ein, das ich dort nichts gefunden habe bzgl. max. Werten. 
Vielleicht habe ich das ja auch überlesen. Ich dachte mir aber schon, 
dass auch eine Ref. U nur selten >= der Versorgungssspannung sein darf. 
Schließlich liegt U_ref ja auch am uC an und wenn die zu groß wird 
dürfte der auch abrauchen. Macht für mich zumindest Sinn.

>> Ich würde nämlich gern 8x1,5V=12V Batterien als ext. Quelle verwenden um
>> so meinen Messbereich zu erweitern.
>
> Anders rum.
> Du lässt deine Referenzspannung immer gleich und teilst dafür die
> Messpannung mit einem Spannungsteiler runter. Und der Rest ist
> Rechnerei. Das sollen Computer ja dem Vernehmen nach können.

Das war vielleicht unglücklich formuliert - ich versuchs noch mal: Die 
maximalen Werte, welche der AD ausgeben kann, hängen direkt von U_ref 
ab. Je größer U_ref ist, desto größere Messwerte entsprechen dann der 
größten darstellbaren Zahl. Einen Überlauf o.Ä. gibt es quasi nicht. Ist 
der Messwert >= U_ref, so gibt der AD immer die größte mögliche Zahl 
aus. Wenn ich U_ref also erhöhe, dann vergrößere ich damit auch meinen 
Messbereich - geht halt nur, wenn Ich U_ref entsprechend anheben kann. 
Das ist quasi Methode 1.
Wenn die nicht geht, weil U_ref nicht >= U_versorgung werden darf, dann 
Teile ich natürlich den Messwert über nen Spannungsteiler und lasse den 
Referenzwert konstant.

Bezüglich der Batterie als U_ref:
Das war eher didaktischer Natur, weniger weil ich das wirklich so nutzen 
möchte. Ich bin halt gerade dabei ein wenig mit dem Teil zu 
experimentieren und wollte das mit der externen Quelle an sich mal 
probieren. Ich danke trotzdem für den Hinweis.

Lg

von Karl H. (kbuchegg)


Lesenswert?

Marius Mustermann schrieb:

> So nun mein Problem: Außer auf dem Breadboard sehe ich beim besten
> Willen kein Massepotential, an welches ich irgendwie ran komme.

Irgendwo gibts sicher was. An den Wannensteckern der JTAG Anschluesse 
gibt es sicher GND zum abholen.

> ich einfach den Minus-Pol (siehe Bild) vom Breadboard nehmen kann.

Masse ist normalerweise der 'Minus-Pol' der Versorgunsspannung.


> Ich such noch mal im Datenblatt ne Runde nach der Referenzspannung,
> bilde mir aber ein, das ich dort nichts gefunden habe bzgl. max. Werten.

Steht sicher irgendwo. Ich geh jetzt aber nicht sichen. Sorry. Da musst 
du durch.


> Das war vielleicht unglücklich formuliert - ich versuchs noch mal: Die
> maximalen Werte, welche der AD ausgeben kann, hängen direkt von U_ref
> ab. Je größer U_ref ist, desto größere Messwerte entsprechen dann der
> größten darstellbaren Zahl. Einen Überlauf o.Ä. gibt es quasi nicht. Ist
> der Messwert >= U_ref, so gibt der AD immer die größte mögliche Zahl
> aus.

ABer auch hier gibt es Limits!

Pauschal gesagt kannst du von allen Pins davon ausgehen, dass du nicht 
einfach beliebig hohe Spannungen anlegen darfst. Konservativ gesehen 
kannst du praktisch fast immer davon ausgehen, dass die 
Versorgunsspannung für alle anderen Pins das obere Limit darstellt.

> Wenn ich U_ref also erhöhe, dann vergrößere ich damit auch meinen
> Messbereich - geht halt nur, wenn Ich U_ref entsprechend anheben kann.

Du kannst aber nicht größer als die Versorgungsspannung werden.

In dem Fall musst du nach dem Prinzip vorgehen: Wenn der Berg nicht zum 
Propheten kommt, muss eben der Prophet zum Berg gehen.

Anstatt die Referenzspannung auf 12V anzuheben um damit einen 
Messbereich 0 bis 12V zu erhalten, lässt du deine Referenzspannung auf 
zb 5V und teilst dafür die Messspannung runter, so dass aus echten 12V 
Messspannung 5V am Eingang des ADC werden, die du dann wieder messen 
kannst. Dieser Spannungsteiler teilt also durch einen bestimmten Faktor, 
den du in der Umkehrung im Programm wieder berücksichtigt, damit die 
Ausgabe bei 'Vollausschlag' des ADC dann eben nicht 5V sondern 12V 
lautet.

von Düsendieb (Gast)


Lesenswert?

Siehe Handbuch des MSP µc selbst:

12-bit ADC, external reference (see Note 1)
PARAMETER TEST CONDITIONS MIN TYP MAX UNIT
VeREF+
Positive external
reference voltage input
VeREF+ > VREF−/VeREF−, (see Note 2) 1.4 VAVCC V
VREF− /VeREF−
Negative external
reference voltage input
VeREF+ > VREF−/VeREF−, (see Note 3) 0 1.2 V
(VeREF+ −
VREF−/VeREF−)
Differential external
reference voltage input
VeREF+ > VREF−/VeREF−, (see Note 4) 1.4 VAVCC V
IVeREF+ Input leakage current 0V ≤VeREF+ ≤ VAVCC VCC = 2.2 V/3 V ±1 μA
IVREF−/VeREF− Input leakage current 0V ≤ VeREF− ≤ VAVCC VCC = 2.2 V/3 V 
±1 μA
NOTES: 1. The external reference is used during conversion to charge and 
discharge the capacitance array. The input capacitance, CI, is also

von Peter D. (peda)


Lesenswert?

Marius Mustermann schrieb:
> 1. Wie genau schließe ich denn jetzt meine Quelle an den Pin an? Ich
> habe eine einfache Batterie in einer Halterung mit 2 Kabeln.

Auf keinen Fall schließt man eine starke Quelle direkt an, das ist der 
Tot des Eingangspins.
Mindestens einen 1k..10k Schutzwiderstand in Reihe.

Die Spannung darf auch nie VCC überschreiten. Damit ist der echte Wert 
gemeint. D.h. bei VCC = 0V (aus) dürfen an sämtlichen anderen Pins auch 
nur max 0V anliegen (VCC + 0,3V sind oft noch erlaubt, siehe 
Datenblatt).
Und GND auch nicht unterschreiten.

von Marius M. (muemar)


Lesenswert?

@ Düsendieb
Danke fürs Nachschauen. Ich hatte bisher nur in dem Dokument für das 
komplette exp. Board geschaut, weil ich der Annahme gefolgt bin, dass 
dort alle relevanten Daten vorhanden sein sollten. Dem war aber leider 
nicht so (oder ich habs trotz mehrfachem Lesen nicht gefunden).

Du hast völlig recht, in der Dokumentation des MSP430FG4618 (gibts hier: 
http://www.ti.com/lit/gpn/msp430fg4618)
steht aber eindeutig für V_ref <= V_AVCC. Das wäre also auch geklärt.

Meine Fragen sind damit so weit beantwortet. Ich werde versuchen die 
Masse über das Breadboard abzugreifen, da ich weder an die 
Spannungsversorgung über die Batterie noch über JTAG heran komme 
(einfach wegen dem Aufbau des Boards).
Falls das aus irgendwelchen Gründen nicht gehen sollte, dann werde ich 
wohl doch einen zweiten Pin missbrauchen und dessen Wert auf Null 
setzen.

Ein abschließender Kommentar noch zu diesem wertvollen Beitrag
Bitflüsterer schrieb:
> Er hat "Datenblatt" gesagt! :-)
Mir ging es bei meiner ursprünglichen Bitte weniger darum, dass ich 
garnicht im Datenblatt schauen möchte, sondern mehr darum, wie eine 
Information transportiert wird. Ein Hinweis wie
"guck doch mal im Datenblatt - genaue Bezeichnung und Link dazu - auf 
Seite ... "
damit kann ich was anfangen.
Der nackte Satz: "Schau doch einfachs ins Datenblatt" hilft halt wenig, 
besonders da es zu diesem Board wenigstens 5 verschiedene - mir bekannte 
- Datenblätter gibt (1x je uC, 2x fürs komplette Board, 1x Schnittstelle 
für RF im Detail). Das wollte ich einfach nur vorweg vermeiden.




Ich wünsche euch weiterhin viel Spaß im Forum und Danke noch einmal für 
die schnellen und konstruktiven Beiträge. Da fühlt man sich als Neuling 
ricthig wohl. Wenn ich besser Bescheid weis, dann werde ich sicher auch 
mal dem ein oder anderen Neuling helfen.

So long

Marius

---------------------------------------
Zur Vermeidung von Doppelpost ein EDIT:

Peter Dannegger schrieb:
> Marius Mustermann schrieb:
>> 1. Wie genau schließe ich denn jetzt meine Quelle an den Pin an? Ich
>> habe eine einfache Batterie in einer Halterung mit 2 Kabeln.
>
> Auf keinen Fall schließt man eine starke Quelle direkt an, das ist der
> Tot des Eingangspins.
> Mindestens einen 1k..10k Schutzwiderstand in Reihe.
Könntest du "starke Quelle" etwas näher spezifizieren? Für mich ist 
alles unter Schutzkleinspannung erst mal wenig, daher kann ich damit 
nicht viel anfangen. Ich nehme an, das ist relativ zur Betriebsspannung 
des uC gemeint, aber auch da wäre ein Verhältnisfaktor sehr hilfreich.


> Die Spannung darf auch nie VCC überschreiten. Damit ist der echte Wert
> gemeint. D.h. bei VCC = 0V (aus) dürfen an sämtlichen anderen Pins auch
> nur max 0V anliegen (VCC + 0,3V sind oft noch erlaubt, siehe
> Datenblatt).
> Und GND auch nicht unterschreiten.
Folgendes Szenario: Ich messe mit dem uC eine externe Quelle von 1,5V 
(standard AA Batterie). Während diese Quelle noch verbunden ist schalte 
ich den uC aus (z.B. weil dieser Batteriebetrieben war und die beim 
Messvorgang leer wird) -> Raucht mir durch das Abschalten des uC dieser 
jetzt ab? Weil das wäre ja genau das von dir beschriebene Szenario, oder 
habe ich das falsch verstanden?


Edit2:
Ein Moderator möge den obigen Beitrag nach Möglichkeit bitte löschen. 
Die Funktionalität des Forums war mir nicht so richtig vertraut, weshalb 
ein sinnloser Post entstanden ist. Sorry

von Peter D. (peda)


Lesenswert?

Marius Mustermann schrieb:
> Könntest du "starke Quelle" etwas näher spezifizieren?

So als Faustregel:
Alles >10mA Kurzschlußstrom ist für einen MC-Eingang "stark".

Marius Mustermann schrieb:
> Ich messe mit dem uC eine externe Quelle von 1,5V
> (standard AA Batterie). Während diese Quelle noch verbunden ist schalte
> ich den uC aus (z.B. weil dieser Batteriebetrieben war und die beim
> Messvorgang leer wird) -> Raucht mir durch das Abschalten des uC dieser
> jetzt ab?

Mit Schutzwiderstand vermutlich nicht. Aber die erlaubten Betriebswerte 
werden überschritten. Er könnte sich z.B. aufhängen (kein Start vom 
Resetvektor beim wieder Einschalten).

von Marius M. (muemar)


Lesenswert?

Peter Dannegger schrieb:
> Marius Mustermann schrieb:
>> Könntest du "starke Quelle" etwas näher spezifizieren?
>
> So als Faustregel:
> Alles >10mA Kurzschlußstrom ist für einen MC-Eingang "stark".

Der Kurzschlussstrom hängt ja dann vom Innenwiderstand des uC ab und den 
kenne ich doch nicht per se, oder? Ich könnte ihn natürlich ausmessen, 
aber gibts da vl. auch eine Art Faustregel oder steht sowas dann 
irgendwo im Datenblatt?

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.