Forum: Mikrocontroller und Digitale Elektronik PINC.0 Geht ständig kaputt


von Mark (Gast)


Lesenswert?

Hallöchen!
Bei meinem Mikrocontroller (mega8) geht immer der PINC.0 kaputt.
An dem ist ein 10k pull-up widerstand. Der Pin wird als Eingang (Taster 
auf Masse) benutzt.
Nach einiger Zeit funktioniert der Pin nicht mehr.

Ich habe im Programm den Pin als Eingang definiert.
MUSS ich dann noch zusätzlich den Internen Pull-up einschalten?
Irgendwas geht da ja schief.
Danke
Mark

von Marius W. (mw1987)


Lesenswert?

Der Pin geht kaputt, weil in Code-Zeile 42 der Wurm drin ist. Da 
schaltest du bestimmt den Pin als Ausgang mit High-Pegel und schließt 
ihn mit dem Taster kurz.

MfG
Marius

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Selbst dadurch würde der Pin nicht kaputt gehen, weil der 
Kanalwiderstand mit etwa 80Ohm bei 5V hoch genug ist, um das Schlimmste 
zu verhindern.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mark schrieb:
> Nach einiger Zeit funktioniert der Pin nicht mehr.
Und erst nach dem Tauschen des uCs geht er wieder? Oder wie?

von Mark (Gast)


Lesenswert?

>Und erst nach dem Tauschen des uCs geht er wieder? Oder wie?
Genau!
Das Programm sieht vereinfacht so aus:

$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 80
$framesize = 90
$baud = 9600

Config Pinc.0 = Input

Portc.0 = 1 (!!! nachträglich eingefügt!!!)

 Config Portd.2 = Output
 Taster Alias Pinc.0
 Led Alias Portd.2

 Led = 0

do
If Taster = 0 then
LED = 1
else
Led = 0
end if
Loop

end

Erstmal funktioniert alles.
aber nach 2 Tagen geht es nicht mehr.
Wenn ich den PINC.0 per Software auf High schalte, reagiert er nicht.

Wenn ich den PINC.1 beim gleichen Controller als Eingang nehme 
funktioniert alles wieder.

Jemand eine Idee?

Mfg Mark

von Gerald (Gast)


Lesenswert?

Da der PIN von außen kaputt geht, ist die Schaltung wichtig.

von Edi R. (edi_r)


Lesenswert?

Es würde mich wundern, wenn man einen Portpin durch Software kaputt 
machen könnte. Ich tippe eher auf die äußere Beschaltung.

Ist der 10 kOhm wirklich am gleichen Vcc angeschlossen, mit dem der 
Controller versorgt wird? Und die gemeinsame Vcc ist nicht über den 
"maximum ratings"?

von Thomas (kosmos)


Lesenswert?

kenne mich mit Bascom nicht aus, ich sehe aber ganz oben in deinem Code 
das du einmal Pin und einmal Port schreibst.

Config Pinc.0 = Input und 2 Zeilen drunter...
...Config Portd.2 = Output

liegt da vielleicht der Hund begraben.

Hast du dir mal die Hilfe/Tutorial von Bascom angesehen solche Dinge 
sollten doch beschrieben sein.

von Michael (Gast)


Lesenswert?

Als Eingang geht er aber als Ausgang ist er kaputt? Einmal bitte die 
komplette Beschaltung zeigen.

von Charly B. (charly)


Lesenswert?

oder du kommst nach 2 Tagen uebern Teppich drueckst den Taster
und entladest dich auf den armen Pinc.0 unn tot iss er.......

reihenwiderstand und Z-Diode rein als 'verhuetung' ;)

ps. klemm das ganze mal um auf pinc.1 wo der .0 kaputt
ist, wie lange der haellt

vlg
Charly

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mark schrieb:
> Jemand eine Idee?
Kriegst du öfter mal eine "gewischt", wenn du irgenwelche Metallteile 
anfasst?

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

Du hast wahrscheinlich PINC.0 in irgendeiner Initialisierung als Ausgang 
definiert. Bei 5V verträgt der AVR auf Dauer keine Kurzschlüsse.

Miss mal den Strom am Taster gegen Masse.

Ansonsten könnte noch eine Spannungsdifferenz zwischen deinen Massen 
bestehen und die Eingangsschutzdioden brennen beim Tasten durch.

von Mark (Gast)


Angehängte Dateien:

Lesenswert?

@Thomas O.
Das ist schon richtig mit PIN/PORT
Im Anhang ist der Schaltplan. Sorry, dass es so unübersichtlich ist, 
aber ich denke mal, da kann man schon was erkennen.
Mark

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Wie lang ist denn das Kabel zum Taster?

von Klaus2m5 (Gast)


Lesenswert?

Wie wärs mit kalter Lötstelle, oxidierter Kontakt am Pin. Neuen ATMega8 
eingesteckt, und schon gehts wieder ... für 2 Tage.

AVCC (Pin20) und AGND (Pin22) beschaltet?

von Oh (Gast)


Lesenswert?

Naja, 100nF am Quarz ist ja der Hammer. Ansonsten hast du schön alle 
Vorgaben von den IC-Herstellern ignoriert (im Plan). Blockkondensatoren 
an der Versorgung, Resetbeschaltung und Serienwiderstand und ein kleines 
C (wie bei der Resetbeschaltung z.B.) am Tastereingang.

Hast du den Bus schon angeschlossen ? Wo betreibst du die Schaltung ?

von Mark (Gast)


Lesenswert?

Das Kabel ist ca. 40 cm lang.

AVCC (Pin20) und AGND (Pin22) beschaltet!

>Du hast wahrscheinlich PINC.0 in irgendeiner Initialisierung als Ausgang
>definiert. Bei 5V verträgt der AVR auf Dauer keine Kurzschlüsse.
Habe das programme gerade noch mal durchgeguckt. PINC.0 wird nur als 
Eingang definiert.
>Miss mal den Strom am Taster gegen Masse.
Werde ich machen. Den Internen Pull-up habe ich jetzt auch aktiviert.
Dann habe ich 10k int. + 10k extern.
Also muss der Strom (5V / 20k) 0,25 mA sein. RICHTIG?

Mfg Mark

von Mark (Gast)


Lesenswert?

Das Kabel ist ca. 40 cm lang.

AVCC (Pin20) und AGND (Pin22) beschaltet!

>Du hast wahrscheinlich PINC.0 in irgendeiner Initialisierung als Ausgang
>definiert. Bei 5V verträgt der AVR auf Dauer keine Kurzschlüsse.
Habe das programm gerade noch mal durchgeguckt. PINC.0 wird nur als 
Eingang definiert.
>Miss mal den Strom am Taster gegen Masse.
Werde ich machen. Den Internen Pull-up habe ich jetzt auch aktiviert.
Dann habe ich 10k int. + 10k extern.
Also muss der Strom (5V / 20k) 0,25 mA sein. RICHTIG?

Mfg Mark

von Mark (Gast)


Lesenswert?

Ja, der Bus ist schon dran.
Die Schaltung läuft im Auto und FUNKTIONIERT auch.
Aber nach paar Tagen läuft sie nicht mehr, weil der Eingang nicht mehr 
reagiert. Habe den Controller ausgebaut, und auf dem STK 500 getestet.
Der Pinc.0 lässt mit sich NICHTS mehr machen.
Wenn ich an den Pinc.0 eine LED anschliesse, und ein Kurzes Programm 
schreibe, dass die LED einfach leuchten soll, dann tut sie es nicht. 
Also ist der Pin definitiv defekt.
Nur warum?

Mfg

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

Im Auto gibt es viele Spannungsspitzen auch über Masse/Fahrzeugrahmen.

Wo und wie hängt deine Schaltung an Masse?

Wo und wie hängt der Taster an Masse?

von Mark (Gast)


Lesenswert?

Ich benutze zur Tasterabfrage den Debounce befehl. Kann es damit was zu 
tun haben?
sehr vereinfacht sieht das Programm so aus.
Habe nur das gelassen, wo es was mit dem Taster zu tun hat.


$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 80
$framesize = 90
$baud = 9600

 Config Pinc.0 = Input
 Portc.0 = 1
 Config Portd.2 = Output
 Taster Alias Pinc.0
 Led Alias Portd.2

 Led = 0

....
....
....

Do

Debounce Pinc.0 , 0 , Senden , Sub

Loop
End

Senden:
....
....
....
return

von Mark (Gast)


Lesenswert?

>Im Auto gibt es viele Spannungsspitzen auch über Masse/Fahrzeugrahmen.
ok
>Wo und wie hängt deine Schaltung an Masse?
an einem "normalen" massekabel.
>Wo und wie hängt der Taster an Masse?
Es sieht wie eine Schleife aus. Also Masse der Schaltung  Taster  
Eingang

von Klaus2m5 (Gast)


Lesenswert?

Mark schrieb:
> Dann habe ich 10k int. + 10k extern.
> Also muss der Strom (5V / 20k) 0,25 mA sein. RICHTIG?

Interner Pullup hat etwa 70k (50-100). Bei einem externen Pullup von 10k 
spielt der interne keine Rolle mehr. 10k & 70k parallel ergibt 8,75k.

> Die Schaltung läuft im Auto

also unter extremen Bedingungen. Das wird nicht ohne besondere 
Schutzmaßnahmen funktionieren. Selbst 40cm Kabel können schon extreme 
Störungen einfangen. Masseschleifen vermeiden!

von Mark (Gast)


Lesenswert?

>also unter extremen Bedingungen. Das wird nicht ohne besondere
>Schutzmaßnahmen funktionieren. Selbst 40cm Kabel können schon extreme
>Störungen einfangen. Masseschleifen vermeiden!

Ich sollte vielleicht noch was erzählen.

Nach dem ich die Schaltung gebaut habe, hat sie bei mir auf dem Tisch 
funktioniert.
Dann bin ich damit zum Auto gegangen und alles dort angeschlossen. Hat 
auch Super funktioniert.
Da ich "kein gutes Gefühl" hatte, habe ich den PLUS kabel abgeklemmt. 
Die Schaltung also erst mal Spannungslos gelassen, bis ich Zeit hatte 
weiter zu basteln.
Nach dem Anklemmen der Betriebsspannung in 2 Tagen (motor war aus) hat 
der Taster nicht mehr Reagiert.
Neuen Controller genommen, geflasht, eingesetzt. Funktioniert alles 
wieder.
Nach dem Abklemmen der Betriebsspannung und 2 Tage Wartezeit 
funktioniert der Eingang wieder nicht.

So, jetzt habe ich so ziemlich alles erzält was ich weiss.

Danke
Mfg Makt J.

von Gregor B. (gregor54321)


Lesenswert?

Mark schrieb:
> Also muss der Strom (5V / 20k) 0,25 mA sein. RICHTIG?

FALSCH.  ;o)  5V/5k = 1mA  2x10k parallel sind 5k

Leuchtet die LED (MIT Vorwiderstand) nur nicht gegen VCC oder auch nicht 
gegen GND?  Sicher ist nur einer der Transistoren durch...

von Mark (Gast)


Lesenswert?

Die LED funktioniert ja im Prinzip.
Der Eingangspin ist das Problem. Er erkennt meinen Tasterdruck nicht, 
und somit bringt der mega8 meine LED nicht zum Leuchten.

von Mark (Gast)


Lesenswert?

>Leuchtet die LED (MIT Vorwiderstand) nur nicht gegen VCC oder auch nicht
>gegen GND?  Sicher ist nur einer der Transistoren durch...

Achso, jetzt habe ich die Frage kapiert.

Der Pinc.0 ist IMMER auf LOW. auch wenn ich den per Software auf HIGH 
schalte.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mark schrieb:
> Die Schaltung läuft im Auto ...
Oh, Mann... immer diese Salamitaktik!

> Die Schaltung läuft im Auto ...
Wie sieht das Layout aus?

> Nach dem ich die Schaltung gebaut habe, hat sie bei mir auf dem Tisch
> funktioniert.
Wie lange?

von Klaus2m5 (Gast)


Lesenswert?

Auch wenn ich das Problem nicht verstehe, mein Vorschlag wäre, den 
Taster über einen Optokoppler galvanisch getrennt zu betreiben. Falls Du 
sicher bist, dass der Pin von aussen zerstört wird, dann dürfte das nur 
noch den Optokoppler treffen wenn überhaupt, denn der Optokoppler wird 
ja deutlich niederohmiger betrieben.

Ich hoffe, Du hast bei Deinen LED Tests immer PortC.0 (nicht 
PinC.0)benutzt, da ist schon so mancher auf die Nase gefallen.

von Mark (Gast)


Lesenswert?

>Wie sieht das Layout aus?
Normal :) Die Busleitungen (SPI) sind so kurz wie möglich. Max 2 cm 
lang.
Die Leitung zum Taster ist auch nichts besonderes.
Am Layout soll das Problem nicht liegen.

>Wie lange?
Paar Stunden

von Mark (Gast)


Lesenswert?

Der Tipp mit dem Optokoppler gefällt mir sehr. Kann er viel ab?
So werde ich das mal probieren.

Aber warum geht mein Pin im jetztigen Zustand kaputt, verstehe ich immer 
noch nicht.

von lewehe70 (Gast)


Lesenswert?

Hallo Mark,

erstmal haben wir hier kräftig über Deine Schaltung geschmunzelt. Als 
wir dann auch noch gelesen haben, dass die Schaltung im KFZ 
funktionieren soll, ... Wir entwickeln hier Steuergeräte für den 
Automotivebereich.

Nach 2 Minuten Lesen deines Beitrags weiss man nicht, was man dazu sagen 
soll.

Hier werden zahlreiche (Robust-)Designregeln nicht eingehalten.

Fang bitte erst einmal damit an, dass Du den Schaltplan neu zeichnest, 
so dass man ihn auch wirklich lesen kann. In der jetzigen Form ist der 
nämlich eine glatte Frechheit.

Danke!

lewehe70

von Peter D. (peda)


Lesenswert?

Mark schrieb:
> Die Schaltung läuft im Auto und FUNKTIONIERT auch.

Im Auto sollten man niemals Leitungen legen, die direkt zum MC führen.
Schalte mal ein 10k Schutzwiderstand in Reihe nach dem Pullup.

Eine Frage:
Wer zwingt Dich, Drähte immer durch Bauelemente zu ziehen?
Das sieht scheiße aus und macht man ja auch in real nicht.
Man darf sogar Drähte neu verlegen, damit es besser aussieht.

Schau Dir mal andere Schaltpläne an, wie die aussehen.


Peter

von Charly B. (charly)


Lesenswert?

Mark schrieb:
> @Thomas O.
> Das ist schon richtig mit PIN/PORT
> Im Anhang ist der Schaltplan. Sorry, dass es so unübersichtlich ist,
> aber ich denke mal, da kann man schon was erkennen.
> Mark

und wir sollen beim lesen die Zeit investieren die du beim
zeichnen gespart hast ?

wenn du das so aufgebaut hast wie du Schaltbilder zeichnest,
dann wundert mich nix mehr.....

bei uns nennt man sowas Knauper oder Edelmurkser

von Michael (Gast)


Lesenswert?

Mark schrieb:
> Am Layout soll das Problem nicht liegen.

Ist zu bezweifeln wenn man sich den Schaltplan anschaut.

von Mark (Gast)


Lesenswert?

Man, was wollt Ihr alle vom Schaltplan?
Das ist KEIN Schaltplan zum lesen, sondern ein zum Layout machen.
Wer das Target kennt, weiss was ich meine.
Es Wird zuerst das "Schaltplan" gezeichnet, und dann das Layout gemacht.
Es muss nicht schön aussehen. Hauptsache die Bauteile müssen richtig mit 
einander verbunden sein.
Ich habe das ja nicht extra schnell für Euch gezeichnet, damit einige 
sich verarscht fühlen.
Danke für die Aufmerksamkeit.

P.S. ich weiss, einige zeichnen auch im Target ihre Schaltpläne gut.

Mark

von Paul B. (paul_baumann)


Lesenswert?

Ich kann das in Deinem Plan nicht richtig erkennen, daher die Frage:
Hast Du PC0 mit PD4 verbunden? Nicht, daß PD4 immer den PC0 "füttert"...

MfG Paul

von Mark (Gast)


Lesenswert?

Nein, PD4 ist nicht mit PC0 verbunden.
ich werde das problem weiter beobachten, und bei Gelegenheit ein 
vernünftiges Schaltplan zeichnen.
Mfg Mark

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

Nochmal das Fehlerbild genauer. Der µC funktioniert noch, jedoch macht 
PINC0 einen Kurzschluss gegen Masse? Unabhängig von der Konfiguration? 
Dann sind die Eingänge wahrscheinlich durch ESD zerschossen. Das ganze 
liegt doch nicht etwa in der nähe der Zündung?

(Ein andere Art von defekt wäre Pin hochomig über PIN-Register lässt 
sich im Zustand als Ausgang der ausgegebene Logiklevel auslesen.)

Die zwei Kabel zum Taster hin sind in Ordnung und an keiner Stelle durch 
Metallkanten angeritzt?

Ein 1kOhm Widerstand zwischen Taster und µC-Eingang müssten alle 
schädlichen Massestörungen abfangen und den Eingang trotzdem sicher auf 
Low-Pegel bringen. (Quasi Symptombehandlung statt Ursachenforschung)

Noch eine allgemeine Frage, wer oder was schaltet der Taster? Damit wir 
hier evtl. Fehlschlüsse von dir entdecken können.

von Mark (Gast)


Angehängte Dateien:

Lesenswert?

>Der µC funktioniert noch, jedoch macht
>PINC0 einen Kurzschluss gegen Masse? Unabhängig von der Konfiguration?
>Dann sind die Eingänge wahrscheinlich durch ESD zerschossen. Das ganze
>liegt doch nicht etwa in der nähe der Zündung?
Genau, ich habe immer kurzschluss gegen masse, unabhängig von der 
Konfiguration.
nein, die Schaltung ist nicht in der Nähe von Zündung.

Ich habe mal so eine Idee. Kann ich den Conroller schützen, indem ich 
ein 100n Parallel schalte und eine Sperrdiode noch in Reihe? (s. Anhang)
Oder Bringt die Diode nichts, weil die Durchlagspannung durch ESD 
überschritten wird?
Danke

von Mark (Gast)


Angehängte Dateien:

Lesenswert?

Anhang korriegiert.

von Paul Baumann (Gast)


Lesenswert?

Mach mal die Diode wieder raus und ersetze sie durch einen Widerstand
von 470 Ohm. Lege den Ziehwiderstand (zwischen Portpin und +UB) auf 4,7 
KOhm aus.
Mit der Diode kriegst Du den Portpin nicht mehr richtig auf Masse 
gezogen.

MfG Paul

von Mark (Gast)


Angehängte Dateien:

Lesenswert?

Bin ich so auf der sicherer Seite?
Bringt der 100nF überhaupt was?
Danke

von Paul Baumann (Gast)


Lesenswert?

Ja, so kannst Du es machen. Der 100n bildet mit den 470 Ohm zusammen
einen Tiefpass, um hochfrequente Störungen zu dämpfen.

MfG Paul

von sepepe97 (Gast)


Lesenswert?

Du könntest auch zwischen PC0 und S1 einen 10k-Widerstand legen und 
direkt am S1 mit 10k gegen +5V den PullUp-Widerstand (z.B. auch 10k) 
schalten.
Die Clamping-Dioden im Mikrocontroller sollten in dieser Kombination 
schon sehr hohe Überspannungen verbrennen können (ich spreche von 
ESD-Entladungen).
Du kannst aber auch zur Sicherheit noch einen Kerko im nF-Bereich direkt 
am Längswiderstand zu S1 hin gegen Masse legen (normalerweise am 
Stecker/Buchse zum Gerät hin). Achte darauf, dass dein Tastersignal 
dadurch nicht zu stark verschliffen wird.
Die Firmware sollte noch eine Entprellung des Tastersignals einstellbar 
(Entprellart, Entprelltiefe) vorhalten.

von sepepe97 (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal ein Schaltungsbeispiel.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mark schrieb:
> Es Wird zuerst das "Schaltplan" gezeichnet, und dann das Layout gemacht.
> Es muss nicht schön aussehen.
Was, das Layout... ;-)

> Man, was wollt Ihr alle vom Schaltplan?
> Das ist KEIN Schaltplan zum lesen, sondern ein zum Layout machen.
Hast du Angst davor, hier dein Layout zu zeigen, oder wie?

Mark schrieb:
>>Wie sieht das Layout aus?
> Normal :) Die Busleitungen (SPI) sind so kurz wie möglich.
Es geht hier nicht um den SPI, der geht ja offenbar auch nicht kaputt.

> Die Leitung zum Taster ist auch nichts besonderes.
> Am Layout soll das Problem nicht liegen.
Von sollte, hätte, wäre und dürfte könnten dir sicher einige eine 
Geschichte erzählen...  :-o
Aber bitte, du mußt dein Layout nicht zeigen. Nur ist es eben so, dass 
du ein Problem hast. Und das kann sehr wohl im Layout liegen...

von summ (Gast)


Lesenswert?

Da war doch was.. die Spannungsversorgung für Portc erfolgt evtl. nur 
über eine interne Diode.. grübel

von peterfido (Gast)


Lesenswert?

Hab grad das Datenblatt nicht im Kopf. Liegt evtl. JTAG am PinC0 ?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

peterfido schrieb:
> Hab grad das Datenblatt nicht im Kopf. Liegt evtl. JTAG am PinC0 ?
Ganz sicher nicht bei einem Mega 8...

von peterfido (Gast)


Lesenswert?

OK - Der 8er scheint gar kein JTAG zu besitzen..

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.