www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Restspannung wenn Pin auf 0 gezogen wird


Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe bei Ausgangsports des AVRs gemessen, dass, wenn sie 0 sein 
sollten, Spannungen zwischen 0,5V und 1V haben. Das Problem ist, dass 
die nachgeschalteten Transistorn dann schon leitend werden. Mein 
Basiswiderstand ist 1,5kOhm, wenn er kurzgeschlossen wird wird das 
Problem nur minimal besser.

Ist das immer so oder habe ich irgendwo einen Fehler gemacht? Kann ich, 
um das Problem zu lösen, an den Ausgang noch eine Diode hängen (in Serie 
zum Basiswiderstand), damit die dem Transistor Basisspannung klaut?

Viele Grüße
Patrick

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Patrick wrote:

> Ist das immer so

Nein

>oder habe ich irgendwo einen Fehler gemacht?

Ja

> Kann ich,
> um das Problem zu lösen, an den Ausgang noch eine Diode hängen (in Serie
> zum Basiswiderstand), damit die dem Transistor Basisspannung klaut?

Theoretisch ja, praktisch ist es aber sinnvoller den Fehler zu beheben 
anstelle einen Workaround um dessen Auswirkungen zu machen.

Port auf Ausgang geschaltet?
Lässt du Strom in den Port hinein fließen?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ist das immer so oder habe ich irgendwo einen Fehler gemacht?

Könnte sein.
Wenn du den Port in Wirklichkeit nicht auf Ausgang geschaltet hast, 
sondern nur den Pullup ein/ausschaltest, könnte das einen ähnlichen 
Effekt haben.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich poste mal meinen Code, so wie ich mich kenne übersehe ich eine 
Banalität. Die betroffenen Pins sind PB1 bis PB3. Die Hardware werde ich 
morgen untersuchen, dafür habe ich keinen Nerv mehr.

.include "tn2313def.inc"

.def temp1 = r16

.org 0x0000          ; Startadresse
  rjmp main
.org 0x000D          ; Timer0: 36kHz-Signal
  rjmp tmr0_ovf    


main:

  ldi temp1, 0      ; Port D Eingang
  out DDRD, temp1

  ldi temp1, 0xFF      ; Eingänge mit Pullup
  out PORTD, temp1

  ldi temp1, 0xFF      ; Port B Ausgang, zunächst alles 0
  out DDRB, temp1      

  ldi temp1, ramend    ; Stackpointer initialisieren
  out SPL, temp1

  ldi temp1, 0b00000010  ; WGM02:0 = 2(dezimal) -> CTC-Modus (Auto-Reload)
  out TCCR0A, temp1  

  ldi temp1, 54      ; Reload-Wert ist 54
  out OCR0A, temp1

  ldi temp1, 0b00000001  ; Overflow-Interrupt für T0 aktivieren
  out TIMSK, temp1

  ldi temp1,0b00000001  ; loslaufen lassen, Prescaler=1
  out TCCR0B, temp1

  sei            ; Interruptflag setzen


loop:

  sbis PIND,0        ; wenn PD0 gesetzt gehe NICHT nach rot
    rjmp rot
  sbic PIND,1        ; wenn PD1 gelöscht gehe NICHT nach grün
    rjmp gruen
  rjmp gelb

rot:            ; Setze Ausgang rot
  
  sbi PORTB,1
  cbi PORTB,2
  cbi PORTB,3
  rjmp loop

gelb:            ; Setze Ausgang gelb
  
  cbi PORTB,1
  sbi PORTB,2
  cbi PORTB,3
  rjmp loop

gruen:            ; Setze Ausgang grün
  
  cbi PORTB,1
  cbi PORTB,2
  sbi PORTB,3
  rjmp loop




tmr0_ovf:
  
  sbi PINB,0        ; PB0 invertieren
  reti

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Software sieht ok aus. Bleibt jetzt also noch die Hardware. Entweder 
bekommt der Pin von irgendwo Strom, oder der Vss Pin liegt nicht auf 0V.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Poste doch mal die Schaltung.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe nochmal geschaut und einen anderen Tiny2313 ausprobiert. Dasselbe, 
auch mit offenem Ausgang...

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fehler in der Schaltung, vielleicht liegt die Masse so ungünstig, d.h. 
es fließt irgendwo Strom der diesen Spannungsabfall verursacht oder 
ähnliches, schlechte Verbindung in der Masse oder was auch immer.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaltung ist nur auf Papier, im Prinzip hängt am Port wie gesagt der 
npn über einen Basiswiderstand, am Kollektor LEDs mit Vorwiderstand an 
12V, Emitter an (gemeinsamer) Masse.

Was ich noch sagen wollte: Auf dem STK500-Board messe ich nur 0,34V, da 
gibt es das Problem nicht (aber alles ist invertiert).

Was ist mit Vss gemeint? Vcc habe ich natürlich an 5V

Autor: Alexander Schmidt (esko) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Schaltung ist nur auf Papier,
Und wie kannst du dann eine Spannung messen?

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AAAARGH... Ich habe den Fehler entdeckt. Darf ich nicht sagen was es 
war.

Vielen Dank für eure Mithilfe!
Schönen Abend,
Patrick

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Darf ich nicht sagen was es war.

Damit musst Du jetzt aber schon rausrücken. Wär ja sonst megaundankbar 
;-)

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er wird wohl vergessen haben GND anzuschliessen und der Strom hat sich 
dann einen Weg über die Schutzdioden und die Transistoren gesucht.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er hat gegen die Masse des Netzteils gemessen und dabei vergessen, daß 
das STK500 ne Graetzbrücke als Verpolschutz hat.

Dann mißt man immer eine Diodenflußspannung zuviel.


Peter

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jepp, das wars ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.