Zu wenige Pins

Gast #4137396
Lesenswert?

Hallo,

ich möchte mit einem möglichst günstigen Microchip Controller eine 
Spannung messen und davon abhängig 3 LEDs ansteuern. Mehr Funktionen 
brauche ich nicht. Zuerst habe ich mir hierfür den PIC10F220 angesehen. 
Wenn ich es richtig sehe, wird dieser aber nicht passen. Der hat 6 Pins, 
wovon 2 natürlich für die Versorgung wegfallen. Bleiben 4 Pins - genau 
so viele brauch ich ja. Jedoch ist der MCLR-Pin nur als digitaler 
Eingang nutzbar und nicht als Ausgang oder analoger Eingang.

Meine Frage ist jetzt nur, ob ich das Richtig sehe, oder es vielleicht 
irgendeinen Trick gibt, mit dem ich den Controller doch benutzen kann?

Ansonsten würde ich wahrscheinlich auf einen PIC12F1571 gehen.
Gast #4137413
Lesenswert?

Wahrscheinlich soll ja immer nur eine LED leuchten.
Spannung zu hoch, OK , Spannung zu klein.
Da könnte man ja mit einer externen 2 zu 4 Dekodierschalung mit zwei 
Pins die 3 LEDs ansteuern.
Einfacher wird aber wohl doch ein PIC mit ein paar Pins mehr sein
Gast #4137506
Lesenswert?

Peter Dannegger schrieb:
> Der ATtiny10 im SOT-23 hat 4 IO-Pins.
Microchip ist leider gesetzt...

Teflonfräser schrieb:
> oder wälze dich noch
> weiter zwei Wochen schlaflos nachts im Bett herum. Damit
> du 20 Cent gespart hast.
Für 20 Cent würde ich mich sogar einen ganzen Monat herumwälzen. ;p Hier 
geht es zum Glück nur um 5 Cent.

X4U schrieb:
> Mit 3 I/O Pins kannst du 6 Led's betreiben.
>
> http://ww1.microchip.com/downloads/en/appnotes/00234a.pdf
>
> Seite 2-3
Danke! Die Lösung ist so einfach! :)
Ein Pin ist ADC, ein Pin bekommt ganz herkömmlich eine LED und der 
dritte Pin bekommt 2 LEDs, wie auf Seite 2 abgebildet. Es müssen zwar 
auch mal alle LEDs leuchten, aber das lässt sich dann ja über 
Multiplexen leicht lösen.
Gast #4138183
Lesenswert?

TM FW schrieb:
> Könnte man die LEDs nicht im MC auf Masse schalten(Low-active), dann
> könntest du den MCLR auch als Steuerungspin für eine LED benützen.

Der MCLR hat keinen open drain Ausgang beim 10F220

Das einzige was am MCLR als Ausgang benutzbar ist ist der 
programmierbare Pull-up Widerstand. 50-400uA also ca 100K-12K. Das 
reicht ggf. um einen NPN (Darlington) Transistor durchzuschalten.

Gruß Anja
Gast #4138205
Lesenswert?

Bernd schrieb:
> Der hat 6 Pins,
> wovon 2 natürlich für die Versorgung wegfallen.

Man sollte da nicht so knapp ran gehen. Ein bisschen sollte man auch das 
Programmieren bzw Debuggen berücksichtigen. Wenn man in die Stückzahlen 
geht, kann man sie fertig programmiert kaufen, sonst sollte man einen 
Plan dafür haben. Und da sind 6 Pins ziemlich knapp. Der kleinste, den 
ich verwende, ist der 12F1840 (ich spare nicht am Speicher). Da bleiben 
3 Pins zusätzlich zum ICD.

Bernd schrieb:
> eine
> Spannung messen und davon abhängig 3 LEDs ansteuern. Mehr Funktionen
> brauche ich nicht.

Mein Plan wäre: an den drei freien Pins den analog-in und zwei LEDs 
realisieren, Code entwickeln und debuggen. Die dritte LED an einen der 
ICD-Pins (nicht MCLR#). Das wird man dann auch ohne Debugger hin 
kriegen. Bei der CPU ist man dann mit einem $ bzw € dabei (mit weniger 
Speicher vieleicht etwas billiger).

My 2cent

MfG Klaus
Gast #4138252
Lesenswert?

Klaus schrieb:
> Man sollte da nicht so knapp ran gehen. Ein bisschen sollte man auch das
> Programmieren bzw Debuggen berücksichtigen.

Für die 6-Beiner gibt es sog. Header Pacs die einen speziellen Chip mit 
Debug Leitungen drauf haben.

Klaus schrieb:
> Bei der CPU ist man dann mit einem $ bzw € dabei

Dafür bekommst du in Stückzahlen ab 100 bei Microchip direct 2 Stück.
Gast #4157326
Lesenswert?

Hallo zusammen,

ich habe es inzwischen wie angekündigt aufgebaut: Zwei LEDs antiparallel 
auf einen Pin und dann einen Widerstand auf 5V und einen auf GND. Eine 
dritte LED auf einem zweiten I/O herkömmlich mit Vorwiderstand auf +5V.

Nun gab es aber doch Probleme. Eigentlich wollte ich "Brilliant Green" 
LEDs verwenden. Diese haben aber immer ein U_f von > 3V. Die 
beschriebene Schaltung kann den LEDs bei Vdd = 5V aber prinzipbedingt 
nur < 2,5V liefern. Diese LEDs sind zwar äußerst effizient und leuchten 
trotzdem recht hell, aber mir ist eine gleichmäßige Helligkeit wichtig 
und diese ist nicht gewährleistet, da U_f recht hohe Toleranzen hat.
Außerdem gibt es mit diesen LEDs ein weiteres Problem. Sie sind derart 
Effizient, dass einig µA bereits für ein deutliches Leuchten sorgen. 
Selbst wenn der µC-Pin als Eingang beschaltet ist, glimmt mindestens 
eine der LEDs.

Schweren Herzens bin ich also auf grüne LEDs umsteigen, die etwas 
gelblicher leuchten. Die liegen bei U_f < 2,5V. Jetzt war nur noch die 
Helligkeit zu kompensieren. Eine der drei LEDs wird ja "normal" 
angesteuert und ist bei gleichem Vorwiderstand (Ich habe die 
Vorwiderstände als Array vorgesehen) deutlich heller. Das regle ich über 
PWM. Meine Sorge ist nun nur noch, dass in einer anderen Charge die 
Helligkeit plötzlich anders wirkt ...
#4157401
Lesenswert?

Bernd schrieb:

> Nun gab es aber doch Probleme. Eigentlich wollte ich "Brilliant Green"
> LEDs verwenden. Diese haben aber immer ein U_f von > 3V. Die
> beschriebene Schaltung kann den LEDs bei Vdd = 5V aber prinzipbedingt
> nur < 2,5V liefern.

Hast Du mal versucht, die Verbindung zwischen R1 und R2 wegzulassen? 
Falls die LEDs dann schon im Ruhezustand leuchten, könntest Du jeder 
noch eine normale Diode in Reihe schalten.
#4157409
Lesenswert?

nicht"Gast" schrieb:

> Die Brücke ist nötig, damit man die LEDs auch schalten kann. Wenn die
> nicht da ist, leuchten beide dauerhaft.

Nicht, wenn die Summe ihrer Vorwärtsspannungen (ggf. durch Seriendioden 
künstlich vergrößert) hinreichend weit über der Versorgungsspannung 
liegt.

Wobei, wenn die LEDs so empfindlich sind, daß der Strom eines 
Eingangspins schon ausreicht, um sie zum glimmen zu bringen, 
funktioniert das vielleicht auch nicht, es kommt aber auf einen Versuch 
an.

@Bernd: Hattest Du an dem Eingangspin vielleicht versehentlich einen 
internen Pullup oder Pulldown aktiviert?
Gast #4157420
Lesenswert?

nicht"Gast" schrieb:
> Frank schrieb:
>> Für was ist denn da eine Brücke zwischen den Widerständen? Wenn man die
>> weg lässt müsste es doch gehen...
>
> Die Brücke ist nötig, damit man die LEDs auch schalten kann. Wenn die
> nicht da ist, leuchten beide dauerhaft.

Ist doch Quatsch.

R. Max schrieb:
> Nicht, wenn die Summe ihrer Vorwärtsspannungen (ggf. durch Seriendioden
> künstlich vergrößert) hinreichend weit über der Versorgungsspannung
> liegt.

Genau.

R. Max schrieb:
> um sie zum glimmen zu bringen,
> funktioniert das vielleicht auch nicht, es kommt aber auf einen Versuch
> an.

Genau, sehe ich auch so.

Anbei mal noch ein Beispiel wie es in zig tausenden Discovery Boards von 
ST drin ist...da funktioniert das wunderbar mit allen drei Zuständen.

LED_STLINK = 0 --> Green on, Red off
LED_STLINK = 1 --> Green off, Red on
LED_STLINK = Z --> Green off, Red off
Angehängte Dateien:
Gast #4157430
Lesenswert?

Frank schrieb:
> R. Max schrieb:
>> Nicht, wenn die Summe ihrer Vorwärtsspannungen (ggf. durch Seriendioden
>> künstlich vergrößert) hinreichend weit über der Versorgungsspannung
>> liegt.
>
> Genau.

Bzw. bei U_f > 3V und Vcc = 5V braucht man da ja garkeine zusätzlichen 
Dioden...
Gast #4157623
Lesenswert?

R. Max schrieb:
> Hast Du mal versucht, die Verbindung zwischen R1 und R2 wegzulassen?
> Falls die LEDs dann schon im Ruhezustand leuchten
Habe ich schon probiert. Mindestens eine leuchtet dann immer.

R. Max schrieb:
> Wobei, wenn die LEDs so empfindlich sind, daß der Strom eines
> Eingangspins schon ausreicht, um sie zum glimmen zu bringen,
> funktioniert das vielleicht auch nicht, es kommt aber auf einen Versuch
> an.
Mit Dioden habe ich jetzt auch noch probiert. Das Glimmen ist noch da, 
jedoch so gering dass ich darüber nachdenke es zu vernachlässigen. So 
richtig zufrieden bin ich aber auch nicht mit der Lösung wegen der 
zusätzlichen zwei Bauteile. Da könnte ich dann auch schon fast den 
größeren Controller nehmen.

R. Max schrieb:
> @Bernd: Hattest Du an dem Eingangspin vielleicht versehentlich einen
> internen Pullup oder Pulldown aktiviert?
Der Controller hat Pull Ups, die ich aber sowohl im Config Word, als 
auch im Option Register explizit deaktiviert habe.

Frank schrieb:
> Bzw. bei U_f > 3V und Vcc = 5V braucht man da ja garkeine zusätzlichen
> Dioden...
Soweit die Theorie. Praktisch leuchtet eine 3,3V LED aber auch schon bei 
2,3V...
Gast #4157689
Lesenswert?

Frank schrieb:
> Auch bei High Z?
Selbst wenn der Controller gar nicht verbunden ist.

Peter Dannegger schrieb:
> Wenn Du je eine 1N4148 mit der LED in Reihe schaltest, sollte es
> klappen.
> (2,3V + 0,7V) * 2 = 6V
Tatsächlich passiert leider das: (2,25V + 0,25V) * 2 = 5V  => LEDs 
glimmen

Übrigens verwende ich momentan 1k Vorwiderstände. Für die verwendeten 
LEDs sind die fast noch zu klein.
Gast #4159798
Lesenswert?

Bernd schrieb:
> Meine Sorge ist nun nur noch, dass in einer anderen Charge die
> Helligkeit plötzlich anders wirkt ...

a) Dann musst Du gebinnte Ware einsetzten
b) Auch im Bin kann die Helligkeit im Verhältnins 1:4 (mnachmal nur 1:2) 
schwanken. 1:2 wird normalerweise nicht auffallen.

rgds
#4159999
Lesenswert?

Wieso nimmst du nicht einfach n 8pinner? Ist u.U. teurer, dafür brauchst 
du nicht diese Diode(n), verbrauchst weniger Platz auf der Platine und 
hättest dir die Mühe und vorallem Zeit(=Geld) bis jetzt aufgrund dieses 
Threafs sparen können. Die 8pinner gibts auch im TDFN Package. Die sind 
winzig. Also bleibt der eigentliche Faktor Kosten übrig.

Du kannst auch ne Soft I2C Schnitstelle machen und da nen IO Expander 
und ADC dranhängen ;)
#4160130
Lesenswert?

Peter Dannegger schrieb:
> Die optimale Schaltung braucht doch nur eine Diode und 2 Widerstände.
> Beitrag "Re: Zu wenige Pins"
>
> Mit 3 Drähten bräuchte man 3 Widerstände bei paralleler Ansteuerung,
> spart also nichts, außer etwas Software zum Multiplexen.

Ok. Zugegeben. Man könnte aber auch bei 3 Ausgängen multiplexen und nur 
ein R für 3 (gleiche) LEDs nehmen. Wären also 4 Bauteile gegen 6.

Mir gings darum, dass er in der Zeit, wo er selber am grübeln war, wie 
das machbar ist, schon Schaltplan und Layout fertig hätte. In der Zeit, 
die hier ins Land gegangen ist, wäre die Software fertig. Und das alles, 
weil ein Pin bzw ein Output fehlt..

Nicht falsch verstehen. Ich bin sonst auch der Meinung, nicht immer 
gleich das nächst Größere oder Leistungsfähigere nehmen zu müssen. Aber 
wegen einem Input... Ich weiß nicht. Man braucht so jetzt mehr Zeit, 
mehr Platz und man spart an Geld nur die Differenz des PICs (62.5ct 
[PIC12F1571] - 53ct [PIC10F220]) = 9.5ct abzüglich der zusätzlichen 
Diode (3.2ct [1N4148]) und eines zusätzlichen Rs (ca 1ct). Bleibt also 
eine Ersparnis von satten 5.3ct (abzüglich des ggf mehrbedarf auf der 
Platine). Da muss schon viel gebaut werden, dass der Preisunterschied 
die Zeitkosten wett machen. Wenn die Kosten keine Rolle spielen, würde 
ich ggf den 12F1822 oder 1840 nehmen, dann hat man deutlich mehr Flash 
und Ram.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren