Forum: Mikrocontroller und Digitale Elektronik interner Pull-Up Problem


von Manni (Gast)


Lesenswert?

Hallo, seit ein paar Tagen habe ich folgendes Problem:
Um einen Tastendruck zu erkennen, wird ein Pin des Controllers auf Masse 
gezogen. Dazu habe ich zunächst den interenen Pull-Up aktiviert. Wenn 
jetzt ein Interrupt durch eine eingehende CAN-Botschaft ausgelöst wird, 
scheint sich der Pull-Up von alleine zu deaktivieren und es wird eine 
Tasterbetätigung erkannt, obwohl dieser nicht betätigt wurde. Dieses 
Problem tritt nicht bei jedem Interrupt auf sondern sporadisch. Der 
Controller ist ein AT90CAN128. Alte Softwarestände die Monate ohne 
Probleme liefen, haben das gleiche Problem. Meine Vermutung ist, dass 
der At90can128 in irgendeiner Weise defekt ist. Hat jemand schonmal 
dieses Problem gehabt?

von gast (Gast)


Lesenswert?

hast dus schonmal mit einem anderen Controller probiert? (Soft- oder 
Hardware Fehler)

von Manni (Gast)


Lesenswert?

es ist etwas schwierig einen anderen Controller einzusetzten. Wie 
gesagt, die Software hat einwandfrei funktioniert. Ich habe jetzt mal 
einen externen Pull-Up verdrahtet, jedoch habe ich immer noch das selbe 
Problem

von Peter D. (peda)


Lesenswert?

Manni schrieb:
> Meine Vermutung ist, dass
> der At90can128 in irgendeiner Weise defekt ist.

Sehr unwarscheinlich.

Nimm eine ordentliche Entprellroutine (vorzugsweise Timerinterrupt) und 
Dein Problem ist gegessen.


Peter

von Peter D. (peda)


Lesenswert?

Manni schrieb:
> die Software hat einwandfrei funktioniert.

Diese Denkweise sollte man sich schleunigst abgewöhnen, sie ist nicht 
zielführend.

Richtig:
"Ein eventueller Softwarefehler hat sich bisher noch nicht ausgewirkt."

D.h. man ist sich bewußt, es gibt keinen Softwareabschnitt, den man von 
der Fehlersuche ausschließen darf.


Peter

von Manni (Gast)


Lesenswert?

Hallo, das Signal ist dauerhaft "0". Ich wüsste nicht was eine 
Tastenentprellung da bewirken sollte.

von Peter D. (peda)


Lesenswert?

Manni schrieb:
> Hallo, das Signal ist dauerhaft "0".

Hallo, das kann doch keiner riechen!

Du hast nur "Tasterbetätigung erkannt" gesagt. Das ist ein riesen 
Unterschied.


Peter

von Manni (Gast)


Lesenswert?

sorry , mein fehler

von Karl H. (kbuchegg)


Lesenswert?

Manni schrieb:
> es ist etwas schwierig einen anderen Controller einzusetzten. Wie
> gesagt, die Software hat einwandfrei funktioniert. Ich habe jetzt mal
> einen externen Pull-Up verdrahtet, jedoch habe ich immer noch das selbe
> Problem

Das bestärkt mich eigentlich in meiner Meinung, dass du einen 
Programmfehler hast. Ein externer Pull-Up kann ja nicht durch eine 
eingehende CAN-Nachricht deaktiviert werden.

von Manni (Gast)


Lesenswert?

der externe Pull-Up hatte eine kalte Lötstelle. Jedoch vermute ich, dass 
es doch ein Softwarefehler ist. Ich habe gerade mal einen Softwarestand 
geladen, von dem ich wusste das er funktioniert und das tat er dann 
auch. Ich versuche jetzt mal den Fehler ausfindig zu machen und melde 
mich dann wieder

von Torsten B. (torty)


Lesenswert?

Hallo Manni
Ich habe an einem ATMega16 ein sehr ähnliches Problem.
Bei Tastendruck werden EingangsPins mit auf Masse gezogen, die gar nicht 
mit dem Taster verdrahtet sind. Hattest Du eine Lösung zu Deinem Problem 
bekommen ?


Grüße
Torsten

von Alex D. (allu)


Lesenswert?

Dann wird wohl ungewollt eine 0 in den Ausgangs-Port-Teil des 
Tasteneingangs geschrieben werden ... und schwupp ist der Pullups weg 
...

von Karl H. (kbuchegg)


Lesenswert?

Torsten B. schrieb:
> Hallo Manni
> Ich habe an einem ATMega16 ein sehr ähnliches Problem.
> Bei Tastendruck werden EingangsPins mit auf Masse gezogen, die gar nicht
> mit dem Taster verdrahtet sind. Hattest Du eine Lösung zu Deinem Problem
> bekommen ?

Schaltung kontrollieren
Programm kontrollieren


Wir reden nicht zufällig vom Port C? Wenn ja: Kontrollieren ob JTAG 
abgeschaltet ist.

von Torsten B. (torty)


Lesenswert?

Ja doch. Es ist PORTC, aber ich habe mich mit JTAG bisher nicht 
beschäftigt. Sind die Zweitfunktionen der IO Pins nicht alle nach dem 
Reset erst einmal deaktiviert ?

von Georg (Gast)


Lesenswert?

>Sind die Zweitfunktionen der IO Pins nicht alle nach dem
>Reset erst einmal deaktiviert ?

JTAG wird über JTAGEN-Fuse aktiviert, also Fuse-Einstellung 
kontrollieren.

von Alex D. (allu)


Lesenswert?

Manni schrieb:
> Wenn
> jetzt ein Interrupt durch eine eingehende CAN-Botschaft ausgelöst wird,
> scheint sich der Pull-Up von alleine zu deaktivieren und es wird eine
> Tasterbetätigung erkannt, obwohl dieser nicht betätigt wurde.

Hinter dem Interrupt steht doch ein Programm.

> Dieses Problem tritt nicht bei jedem Interrupt auf sondern sporadisch.

Vielleicht hängt das Problem mit dem Inhalt der CAN-Botschaft zusammen. 
Könnte es sein, dass eine Botschaft auch eine Ausgabe über einen Portpin 
auslöst? Und dabei ungewollt eine 0 in den Ausgangs-Port-Teil des 
Tasteneingangs schreibt.

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.