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
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
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.
Mark schrieb: > Nach einiger Zeit funktioniert der Pin nicht mehr. Und erst nach dem Tauschen des uCs geht er wieder? Oder wie?
>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
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"?
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.
Als Eingang geht er aber als Ausgang ist er kaputt? Einmal bitte die komplette Beschaltung zeigen.
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
Mark schrieb: > Jemand eine Idee? Kriegst du öfter mal eine "gewischt", wenn du irgenwelche Metallteile anfasst?
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.
@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
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?
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 ?
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
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
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
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?
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
>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
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!
>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.
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...
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.
>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.
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?
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.
>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
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.
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
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
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
Mark schrieb: > Am Layout soll das Problem nicht liegen. Ist zu bezweifeln wenn man sich den Schaltplan anschaut.
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
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
Nein, PD4 ist nicht mit PC0 verbunden. ich werde das problem weiter beobachten, und bei Gelegenheit ein vernünftiges Schaltplan zeichnen. Mfg Mark
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.
>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
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
Bin ich so auf der sicherer Seite? Bringt der 100nF überhaupt was? Danke
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
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.
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...
Da war doch was.. die Spannungsversorgung für Portc erfolgt evtl. nur über eine interne Diode.. grübel
peterfido schrieb: > Hab grad das Datenblatt nicht im Kopf. Liegt evtl. JTAG am PinC0 ? Ganz sicher nicht bei einem Mega 8...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.