Forum: Mikrocontroller und Digitale Elektronik PIC Ausgangsstrom zu gering


von fraengers (Gast)


Lesenswert?

Hi,

ich habe hier einen PIC16F1825 @ 3V und hab ein paar Leds (ca. 2V @ 
20mA) dran, mit Charlieplexing. Problem ist nun, dass die Leds zu dunkel 
sind, sprich zu wenig Strom fließt. Ich messe so um die 7 mA. 
Interessant dabei ist auch, dass es keine Rolle spielt was für ein 
Vorwiderstand in der Leitung hängt; ich kann ihn auch weglassen, mehr 
Strom fließt dadurch aber nicht, Spannung bricht halt auf ca. 2V ein. 
Ich hab auch mal eine Led gegen GND geschaltet, nichts anders, Spannung 
bricht am Pin auf 2,2V oder so ein, Strom wieder so bei 7mA. Ich habs 
auch mal einen entsprechend kleinen Widerstand (100 Ohm, da sollte auf 
jeden Fall etwas Strom fließen) versucht: fließen so um die 9mA.
Im Datenblatt steht was von 25mA (sink/source). Bei 'Sink' komm ich an 
die 25mA hin, aber 'sourcen' tut der µC nicht mehr als ca. 10mA.
Kann mir nun wer sagen woran das liegt? Oder mach ich was falsch?

Viele Grüße

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Hmmm,

warum keine Low-Current Led's? Generell würd ich eher "sink" nutzen.
Zu deinem Problem, wenn du einen Portpin nutzt, der auch als 
Analogeingang nutzbar ist, musst du dies ihm natürlich auch mitteilen. 
Da schau mal nach den ANSELA, ANSELB und ANSELC Register. Dies wäre auf 
jedenfall eine Erklärung...

Gruss Sascha

von Frank K. (fchk)


Lesenswert?

Datenblatt Seite 349:

Maximum current out of VSS pin, -40°C ≤ TA ≤ +85°C for industrial... 85 
mA
Maximum current out of VSS pin, -40°C ≤ TA ≤ +125°C for extended... 35 
mA
Maximum current into VDD pin, -40°C ≤ TA ≤ +85°C for industrial... 800 
mA
Maximum current into VDD pin, -40°C ≤ TA ≤ +125°C for extended... 30 mA

fchk

von fraengers (Gast)


Lesenswert?

Sascha Focus schrieb:
> Hmmm,
>
> warum keine Low-Current Led's?
Weil ich keine passenden gefunden habe, aber darum geht's hier erstmal 
nicht.

> Generell würd ich eher "sink" nutzen.
Ja schon; geht aber fürs Charlieplexing nicht, ein Port muss ja sourcen.

> Zu deinem Problem, wenn du einen Portpin nutzt, der auch als
> Analogeingang nutzbar ist, musst du dies ihm natürlich auch mitteilen.
> Da schau mal nach den ANSELA, ANSELB und ANSELC Register. Dies wäre auf
> jedenfall eine Erklärung...
Aber das hat doch nichts mit dem Ausgang zu tun.


Frank K. schrieb:
> Datenblatt Seite 349:
>
> Maximum current out of VSS pin, -40°C ≤ TA ≤ +85°C for industrial... 85
> mA
> Maximum current out of VSS pin, -40°C ≤ TA ≤ +125°C for extended... 35
> mA
> Maximum current into VDD pin, -40°C ≤ TA ≤ +85°C for industrial... 800
> mA
> Maximum current into VDD pin, -40°C ≤ TA ≤ +125°C for extended... 30 mA
Aha, und was sagt mir das für meinen Fall?

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

>> Zu deinem Problem, wenn du einen Portpin nutzt, der auch als
>> Analogeingang nutzbar ist, musst du dies ihm natürlich auch mitteilen.
>> Da schau mal nach den ANSELA, ANSELB und ANSELC Register. Dies wäre auf
>> jedenfall eine Erklärung...
> Aber das hat doch nichts mit dem Ausgang zu tun.
Sicherlich, wenn du so einen Pin als digitalen Pin, sei es Eingang oder 
Ausgang nutzen willst:

The ANSELA bits default to the Analog
mode after Reset. To use any pins as
digital general purpose or peripheral
inputs, the corresponding ANSEL bits
must be initialized to ‘0’ by user software.

Nur so kann es funktionieren.

Gruß Sascha

von fraengers (Gast)


Lesenswert?

Hmm, ok muss ich nochmal testen, wobei aber die verwendeten Pinds für 
die Leds im ANSELA auf 0 stehen, auf Grund einer anderen Funktion.

von Sascha F. (sascha_focus) Benutzerseite


Lesenswert?

Zeig doch mal die Schaltung und auch den Code.

Wie schon gesagt, als Beispiel für den Port A z.B aus dem Datenblatt:

; This code example illustrates
; initializing the PORTA register. The
; other ports are initialized in the same
; manner.
BANKSEL PORTA ;
CLRF PORTA ;Init PORTA
BANKSEL LATA ;Data Latch
CLRF LATA ;
BANKSEL ANSELA ;
CLRF ANSELA ;digital I/O
BANKSEL TRISA ;
MOVLW B'00111000' ;Set RA<5:3> as inputs
MOVWF TRISA ;and set RA<2:0> as
;outputs

Gruß Sascha

von Anja (Gast)


Lesenswert?

fraengers schrieb:
> Ich messe so um die 7 mA.

Bei 3,3V sind es ja auch bis zu 100 Ohm auf der Low-Seite und bis zu 230 
Ohm bei High-Pegel. (High -0,7V @ 3mA, low 0,6V @ 6mA)

Bei 3V ist halt nicht mehr drin.

Gruß Anja

von fraengers (Gast)


Lesenswert?

@Sascha Focus
Also das mit dem ANSELx stimmt soweit; wenn dort ne 1 steht tut sich am 
entsprechenden Pin gar nichts beim Ausgang, ist immer low. Aber wie 
gesagt, bei mir ist das sowieso, mehr oder weniger unwissentlich, alles 
auf 0 gesetzt.

@Anja
Aha, blöd... heißt nur bei 5V bekomme ich auch die 25mA als 
Ausgangsstrom hin oder wie?

von Peter L. (fraengers)


Lesenswert?

Ok habs getestet:
5V: 20mA für Led, kein Problem
3V: 8mA bei Kurzschluss

Ist das normal und bei allen µC so?  (Habe bis jetzt immer nur mit 5V 
gearbeitet.)
Und wo seh ich das im Datenblatt?

von Anja (Gast)


Lesenswert?

fraengers schrieb:
> heißt nur bei 5V bekomme ich auch die 25mA als
Die 25mA sind der Strom wo der Pin sich in magischen Rauch auflösen 
kann.


Peter Lankton schrieb:
> Ist das normal und bei allen µC so?
Ja. Der Treiberinnenwiderstand ist Versorgungsspannungsabhängig. (Bei 
jedem FET ist der RDS,on abhängig von der Gate-Source Spannung).

Peter Lankton schrieb:
> Und wo seh ich das im Datenblatt?

Parameter D080 und D090 im Datenblatt DS41440B-page 360

Ist leider nur ein preliminary Datasheet.

In finalen Datenblättern sind meistens noch zusätzlich Kurven für VOH 
und VOL in Abhängigkeit von Strom und Versorgungsspannung eingezeichnet 
aus denen man den typischen Treiberinnenwiderstand bei 25 Grad 
ausrechnen kann.

Gruß Anja

von Peter L. (fraengers)


Lesenswert?

Ok, alles klar, danke Anja. Habe die Kruven im Datenblatt vom PIC16F1827 
gesehen, die dürften wahrscheinlich ähnlich sein, zuminest die 8mA bei 
Kurschluss @3V kommen hin.

Kann ich dann eigentlich auf den Vorwiderstand verzichten um soviel 
Strom wie möglich für die Led zu erhalten?

von MaWin (Gast)


Lesenswert?

> Kann ich dann eigentlich auf den Vorwiderstand verzichten
> um soviel Strom wie möglich für die Led zu erhalten?

Da die Widerstandswerte der Ausgangstransistoren locker um den Faktor 
1:2 voneinander abweichen können (und wenn man unterschiedliche 
Temperatur und Speisespannungsschwankungen noch dazunimmt noch mehr, 
aber die betreffen alle Pins gleich), erscheinen dann deine LEDs 
eventuell deutlich unterschiedlich hell.

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.