Hallo Leute! Echt ärgerlich! Meine neue Platine mit m Mega128 hat wieder rumgezickt. Ich war schon wieder kurz vorm aufgeben.. Man konnte immer nur 1 Mal auf den Chip zugreifen und dann gab der 128 nur noch Mist aus. (ff ff ff und so weiter) Zugriff bekam man wieder, wenn man das Board aus und wieder ein schaltete. Um Fehler beim Programmer auszuschließen habe ich inzwischen auch ein STK500/501. Da ließen sich die Controller (auch wieder ausgelötete) problemlos mehrfach programmieren. Nun.. ich habe ratlos noch ein wenig herumgesucht.. jetzt funktioniert es eben auch auf meinem Board.. und aus einem sehr simpelen Grund..: Wie interpretiert ihr folgendes aus dem ATMega128 Datenblatt?? : (Datenblattquelle: Atmel Homepage) Seite 7 "PEN is a programming enable pin for the SPI Serial Programming mode, and is internally pulled high . By holding this pin low during a Power-on Reset, the device will enter the SPI Serial Programming mode. PEN has no function during normal operation." Na? Logisch oder? : PEN Pin low=GND=Serial Programming mode! ätsch *reingelegt* Falsch!! Es muß heißen: PEN Pin high=NC or Pullup=Serial Programming mode!! Deshalb mein Vorschlag an Atmel: PEN is a programming enable pin for the SPI Serial Programming mode, and is internally pulled high . By leaving this pin unconnected or pulled up to VCC during a Power-on Reset, the device will enter the SPI Serial Programming mode. By forcing PEN low during a Power-on Reset the device won´t enter SPI Serial Programming mode. Ok..ok.. sorry.. maybe just only one time after Power-on Resat...! Oder was meint ihr? Grr.. ich glaub meine alte Platine hat doch funktioniert.. wahrscheinlich hätte ich PEN nur niederohmig auf <b>VCC</b> ziehen müssen.. :( Grüße, Martin
Also ich habe den PEN noch nie gebraucht, einfach frei lassen. Allerdings habe ich es nur mit den Mega64 ausprobiert.
Hi, in doc2467.pdf, Seite 2, dort ist über PEN eine linie, IMHO heisst das "active low", demnach würde schon stimmen was im Datenblatt steht. "Internally pulled high" ist dann deaktiviert by default. Der Chip hat IMHO zwei Methoden in den ISP-Mode zu gelangen: 1. gehe in Reset-state, sende programming enable magic über ISP 2. PEN# -> low, gehe in ISP-Mode PEN# ist doch nur da, damit man den Mega128 auch bei zerfressenen Fuses in den ISP-Mode bringen kann, oder? Gruß, Feadi
Ja, deshalb hattest Du wohl auch nie Probleme damit.. Hält man sich jedoch ans Datenblatt gehts schief.. Nach meiner Auffassung wird da eben gesagt: Für den SPI Mode muß PEN auf GND liegen. ... Naja, so ein Glück nun scheint es zu funzen! Wäre hier sonst echt noch zu ner Katastrophe geworden.. Grüße, Martin
Kann es sein dass sich der Controller genau so verhält wie bei mir: http://www.mikrocontroller.net/forum/read-1-287894.html#new - Das Programm das drauf ist läuft noch - Du kannst den Controller beliebig oft auslesen -> Programm läuft nach Auslesen weiter - Nach einem Schreibbefehl ist der Controller tot, nichtmal Reset geht, nur ein Abdrehen der Betriebsspannung hilft. (Logischerweise liest der Programmer dann 0xFF) - eventuell erhöhte Stromaufnahme des Controllers (ca 40 mA) Ich habe letzte Woche ca 8 Controller geschrottet :-/ welche sich dann genau so verhielten. Ich führe das Problem auf eine mangelhafte Spannungsversorgung zurück (an der ich selber schuld bin). Da der Controller bei einem Reset quasi keinen Strom aufnimmt und ich einen gewissen Strom in die Schutzdioden rein fließen lasse, wurde die Versorgungsspannung vermutlich auf über 5V angehoben (da der Regler das nicht ausregeln kann). Ich habe parallel zu den 5V jetzt einen 1K Widerstand, so dass immer ein gewisser Ruhestrom durch den Regler fließt, seitdem ist mir keiner mehr kaputt gegangen. Gruß Roland
Wäre auch meine Vermutung gewesen. Bei der normalen SPI-Programmierung kann man den Pin einfach offen lassen und wie bei anderen µCs auch über den Reset gehen. Meine Schaltung (allerdings auch mit Mega64) funktioniert problemlos bei offenem PEN. Gruß Johnny
...Die 'Vermutung' bezog sich auf das Posting von Feadi...
@Martin Messmann: >Nach meiner Auffassung wird da eben > gesagt: Für den SPI Mode muß PEN auf GND liegen. Genau so verstehe ich das auch -> full ack. PEN ist active low, man kommt in den ISP-Mode wenn PEN low ist. Und damit man im normalen Betrieb nicht in den ISP-Modus gelangt, hat PEN ein pullup, was den ISP-Modus deaktiviert. Gruß, Feadi
Die Datenblatt Beschreibung ist o.k. Solange PN=high, kommst du normalerweise nicht in den serial programming mode. Um das zu erreichen must du eine spezielle Reset Sequenz durchlaufen. Das macht dein SPI-Programmer für dich. Wenn er das nicht macht, startet der AVR vom Flash. Ist wärend reset PN=low bist du sofort im serial programming mode. Du kannst also deine SW nicht vom Flash starten. Du brauchst aber auch keine spezielle reset sequenz mehr um den das SPI programming zu starten. -> In der Regel lässt man PN unbeschaltet (internal pull-up) oder klemmt es an VCC.
> -> In der Regel lässt man PN unbeschaltet (internal pull-up) oder
klemmt es an VCC.
Ich würde es offen lassen. Weil: Stell Dir vor, die Fuses sind im
Eimer, und PEN ist mit VCC verbunden... Dann musst Du erstmal
Leiterbahnen killen. Wenn PEN aber offen ist, oder mit einem 10k auf
VCC geht, kannst du z.b. mit einer Stecknadel den Pin auf GND ziehen,
und dann die Fuses neu Flashen.
Gruß, Feadi
Nagut! Ich denke dann verstehe ich jetzt, was für ein Problem ich hatte. Ich habe leider nirgens gelesen (habe mir natürlich nicht die kompletten 389 Seiten durchgelesen), das es diese 2 verschiedene Modis gibt. Ich dachte der PEN wäre dazu da die Programmierschnittstelle aktivieren und deaktivieren zu können (Schutzfunktion oä.). Dann ist mir auch klar, warum man den Mega nur ein Mal programmieren kann, wenn man PEN auf Masse zieht. Controller Ein->PEN=GND + Daten->SPM (einmaliges Programmieren da der µC im Modus bleibt auch bei einem Reset) Controller Ein->PEN=high->µC normaler Betrieb->Reset-Sequens->SPM->Reset->normaler Betrieb So ungefähr richtig? Ich habe PEN über 1K an VCC. Grüße, Martin
@Martin: Das hört sich richtig an ;) Und PEN mit 1k auf VCC ist völlig okay. Gruß, Feadi
@Roland: Danke für den hinweiß mit der Stromversorgung. Falls noch ein mal Probleme auftreten, werde ich das berücksichtigen! Ich bin mir ja immer noch nicht sicher, ob der Controller mich nicht nur vera****** will. Mal sehen ob er morgen immernoch brav seinen Dienst verrichtet.. Nach den letzten Wochen trau ich dem Mega128 alles zu.. ;) Ich weiß jetzt sogar, wie der von innen aussieht.. Seitenschneider sei dank! ;) @Feadi Ich hatte das mit dem Widerstand etwas falsch verstanden.. aber nun gut, beides (Widerstand nach Vcc und Lötzinnbrücke zu GND) ist auf meiner Platine ja schon vorgesehen - nur hat sich der Sinn etwas verändert.. Wie Du in Rolands Posting schreibst magst Du eher zickende Atmels?! Leider hat sich beim letzten auslöten auf der alten Platine gerade ein Pad verabschiedet sonst würde ich Dir das Teil gerne schicken.. Dann könntest Du damit mal ein wenig herumspielen (und Dir möglicherweise die Zähne ausbeißen..;) Nuja..jedenfalls vielen danke euch! Wäre das mal schon etwas früher geklärt gewesen..
@Martin Messmann: Ein Pad ist kein Problem, das kann ich mit 0.2mm Kupferlackdraht fixen. Aber den zickenden AVR müsstest Du mitschicken. Gruß, Feadi
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.