Hallo, ich habe probleme beim Programmieren meines Atmega128. Nein Mosi und Miso sind richtig angeschlossen, ich kann sowohl die Fuses lesen als auch flashen. Einmal hab ich sogar ein Programm mit 522 bytes flashen können. Alles was größer ist wird laut avr studio korrekt geflasht, jedoch beim verivizieren geht die Verbindung zum Gerät verlohren. Woran kann das liegen? das einfach so die Verbindung abbricht? Achja und die größeren programme funktionieren dann auch nicht. Danke schonmal Sönke
jain, ja ich benutze ihn, in meinem testprogramm jedoch nicht. er ist auf der hardware momentan auch nicht verdratet, also das max232 ist noch nicht aufgelötet. softwareseitig hab ich ihn auch nicht initialisiert.
Sönke Paschko wrote: > jain, ja ich benutze ihn, in meinem testprogramm jedoch nicht. er ist > auf der hardware momentan auch nicht verdratet, also das max232 ist noch > nicht aufgelötet. softwareseitig hab ich ihn auch nicht initialisiert. Darüber sollte er programmiert werden. Ich wollte nit wissen ob du ihn in deinem Testproggis benutzt.
Was sollte man den für fuses setzen, können da probleme entstehen? habe einen externen Quarz und nehme bei sut_CKSEL Ext. Crystal/Res. High Freq Startuptime 16k ck + 64 ms ansonsten ist noch spien; jtagen; und M103C markiert. und ja ich nutze uart0 zum programmieren.
JTAG muss disabled sein, um ISP (SPI) zu programmieren. Nichts an die Programmierleitungen anschliessen, das nicht durch Widerstaende getrennt ist. Hubert G.
hallo, das ist ganz komisch, ich habe das jtag disabled, er lässt sich nicht programmieren, bzw. bricht beim Lesen ab. das korrekte programm ist in keinem fall im Flash. Folgende Fuses sind nun gesetzt: M103C SPIEN BOOTSZ size=4096 Adress=$F000 Brown-out at VCC=2.7V Ext. Cristal/Res High Freq Startuptime 16k CK + 64 ms Die Leitungen sind direkt mit dem Atmega verbunden ohne Widerstand und ohne andere Verbraucher o.Ä
>Folgende Fuses sind nun gesetzt: >M103C Die M103C Fuse besser nicht setzen. Hat mit deinem Problem aber vermutlich nichts zu tun. >Brown-out at VCC=2.7V Setz den Brown-out auf den höchsten Wert. Was könnte jetzt noch alles faul sein: ISP Frequenz zu hoch Dein ISP Prommer taugt nichts Schaltung faul Chip defekt In der Reihenfolge mal abchecken.
holger wrote: >>Folgende Fuses sind nun gesetzt: > >>M103C > > Die M103C Fuse besser nicht setzen. > Hat mit deinem Problem aber vermutlich nichts zu tun. > Wohl kaum http://www.mikrocontroller.net/articles/AVR_Checkliste#Besonderheiten_bei_ATmega128_und_seinen_Derivaten_im_64-Pin-Geh.C3.A4use
>holger wrote: >>>Folgende Fuses sind nun gesetzt: >> >>>M103C >> >> Die M103C Fuse besser nicht setzen. >> Hat mit deinem Problem aber vermutlich nichts zu tun. >> >Wohl kaum >http://www.mikrocontroller.net/articles/AVR_Checkl... Die M103C Fuse macht sich erst bemerkbar wenn das Programm geflasht werden konnte und dann auch losläuft. Abstürze und andere Sachen passieren dann. Beim ISP Verify sollte sie eigentlich noch nicht stören. Aber ich lass mich gerne eines besseren belehren ;)
Ah! Du hast uns dein Programmiergerät noch nicht verraten! Oder ist nur die ISP-Frequenz SEHR nahe an der Grenze?
Hallo, ich nutze das stk500 zum programmieren, haben entsprechend die brown out auf 4v gestellt, leider gibts keine verbesserung. die ISP frequenz scheint eher zu langsam, ich hab die höchste mögliche eingestellt (1,... mhz) wenn nötig kann ich die schalung mal posten, das der chip defekt ist glaub ich weniger, kann natürlich sein, aber wie gesagt, ganz kleine Programme lassen sich flashen. Ich hab die Schaltung mal angehangen, sie ist nicht ganz ideal, nur leider schon geätzt. Kann es an den fehlenden Kondensatoren vor dem uC liegen? PS Das Max IC ist nicht bestückt, also kann es da keine Probleme geben.
>Kann es an den fehlenden Kondensatoren vor dem uC >liegen? JA.
>welche und wo sind da angebracht?
Ein 100nF keramisch bei VCC,GND und einer
bei AVCC,AGND. So dicht wie möglich ran an den Chip.
Und die ISP Frequenz auf 125kHz.
Da fallen mir dann doch noch ein paar andere Dinge in deinem Schaltplan auf: Am MAX232 fehlen auch noch Abblockkondensatoren. Und dann der Display Anschluss. Da sind zwei Potis zu sehen. Eins davon wird wohl für den Kontrast sein. Das andere für eine Hintergrundbeleuchtung? Dann wird ein 78L05 möglicherweise nicht mehr ausreichen.
Laut meiner Rechnung schon, wobei das hart an der Grenze ist. so nun, nachdem ich die Kondensatoren ergänzt habe, läuft es ab und zu durch (bis jetzt 2 mal von ca. 15 mal) und sagt: Code ist richtig geflasht. Leider resettet sich der uC jetzt aber andauernd sodass der code nicht richtig ausgeführt wird. (Irgendwo beim initialisieren des Displays, das passiert auch, wenn garkein Display angeschlossen ist.) Die Kondensatoren hängen direkt an den Pins, näher geht nicht.
Als naechstes wuerde ich die 9V Versorgung abnehmen, die 5V ueber das ISP-Kabel (PIN2) vom Stk500 versorgen (keie Peripherie ausser LCD .. das duerfte nur ein paar milli ziehen). Den Kurzschlussstecker auf "VTARGET" stecken. Vor dem Programmieren die ISP sehr niedrig setzen und den chip loeschen alle Speicherbeschraenkungen aufheben und die fuses richtig setzen. Nicht vergessen den 8-Teiler zu entfernen. Die Uebertragungsrate vom Computer zum Stk500 sollte auch stimmen. Danach ISP Frequenz hoch setzen (muss ueber 5Khz sein).Quellendatei anwaehlen und programmieren. Wenn ein Voltmeter vorhanden ist, solltest Du die 5V im Gleichspannungsbereich messen. Wichtig aber auch, auf Wechselspannung an den 5V zu messen (sollte nicht hoeher als 100-300 Millivolt sein. Brownout disable fuers erste! Der andauernde RESET im Programm kann aber auch mit einer zu geringen Stackdefinierung zusammen haengen (mit zu vielen subs oder calls fuer den stack). Wenn auf der Schaltung ein zu hoher Stromverbrauch ist, siehst Du das, wenn das LED auf dem STK500 dimm wird......ausschalten. Manchmal gehen Kondensatoren langsam kaputt.. Bei stromlos mit Ohm-Meter messen. Hoffe es hilft etwas Hubert
@ Sönke sollte das noch immer nicht laufen, ins datenblatt schauen. Der 128er wird nicht über MISO MOSI geproggt! sondern über PDI (ProgramDataIn Pin 2) und PDO (ProgramDataOut Pin 3) des weiteren ist PEN (Programm Enable Pin 1) zu setzen http://www.atmel.com/dyn/resources/prod_documents/2467S.pdf Ich habe das schon zigmal gemacht funzt ganz normal. Solltest du mehr Hilfe benötigen so melde dich.
PS. habe mir deinen Schaltplan angeschaut PEN (Pin0) ist nicht belegt floatet also! Den solltest du zum Proggen verbinden
Die Beschreibung im Datenblatt für den PEN ist sehr unglücklich. Daher hatte ich bei meinem ersten Design den PEN auf L gelegt, was in etwa zu dem hier beschriebenen Verhalten führte. Jetzt floated der Pin und alles ist gut.
>auf was soll ich denn den Pin legen (PEN) ? VCC?
Lass den offen. Läuft bei mir wunderbar.
"PEN is a programming enable pin for the SPI Serial Programming mode. 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." Wie soll ich das machen? zum Programmieren nen Jumper setzen? wie muss er beschaltet werden, wenn ich im normalen modus bin? mit vorwiderstand an VCC oder ohne oder wie?
Danke schonmal für eure Hilfe, immerhin hat das Flashen jetzt schon 2 mal geklappt, was kann ich nun noch machen? Ich hänge mal den aktuellen Schaltplan an. Mit Kondensatoren.
mir persönlich fehlt mindestens ein C am Rest. Am ISP-Adapter hängen die Anschlüsse ohne weiteren Schutz als Antennen in der Luft und nicht nur die...
hier nochmal der Schaltplan, ist damals irgendwie nicht mitgekommen. Du meinst ein Kondensator am Reset? An welchen Pins soll ich denn noch Kondensatoren anbringen? Aber wie gesagt, er lässt sich noch nichtmal zuverlässig programmieren.
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.