Forum: Mikrocontroller und Digitale Elektronik Atmega128 Probleme beim Programmieren


von Sonke A. (soeni)


Lesenswert?

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

von Jean P. (fubu1000)


Lesenswert?

Hi,
benutzt du den USART0, also PE0, PE1 und PB1 ?

Gruß

von Sonke A. (soeni)


Lesenswert?

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.

von Michael Wilhelm (Gast)


Lesenswert?

Und nicht zu vergessen das M103 Kompabilitätsbit.

MW

von Jean P. (fubu1000)


Lesenswert?

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.

von Sonke A. (soeni)


Lesenswert?

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.

von Hubert G. (Gast)


Lesenswert?

JTAG muss disabled sein, um ISP (SPI) zu programmieren. Nichts an die 
Programmierleitungen anschliessen, das nicht durch Widerstaende getrennt 
ist.
Hubert G.

von Sonke A. (soeni)


Lesenswert?

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.Ä

von holger (Gast)


Lesenswert?

>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.

von Teplotaxl X. (t3plot4x1)


Lesenswert?

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

von holger (Gast)


Lesenswert?

>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 ;)

von Teplotaxl X. (t3plot4x1)


Lesenswert?

Ah!
Du hast uns dein Programmiergerät noch nicht verraten!
Oder ist nur die ISP-Frequenz SEHR nahe an der Grenze?

von Sonke A. (soeni)


Angehängte Dateien:

Lesenswert?

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.

von holger (Gast)


Lesenswert?

>Kann es an den fehlenden Kondensatoren vor dem uC
>liegen?

JA.

von Sonke A. (soeni)


Lesenswert?

welche und wo sind da angebracht?

von holger (Gast)


Lesenswert?

>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.

von holger (Gast)


Lesenswert?

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.

von Sonke A. (soeni)


Lesenswert?

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.

von Hubert G. (Gast)


Lesenswert?

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

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

@ 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.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

PS. habe mir deinen Schaltplan angeschaut PEN (Pin0) ist nicht belegt 
floatet also! Den solltest du zum Proggen verbinden

von Bensch (Gast)


Lesenswert?

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.

von Sonke A. (soeni)


Lesenswert?

auf was soll ich denn den Pin legen (PEN) ? VCC?

von holger (Gast)


Lesenswert?

>auf was soll ich denn den Pin legen (PEN) ? VCC?

Lass den offen. Läuft bei mir wunderbar.

von Sonke A. (soeni)


Lesenswert?

"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?

von Sonke A. (soeni)


Lesenswert?

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.

von tex (Gast)


Lesenswert?

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...

von Soeni- (Gast)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.