PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programmierzeit



Lektor
09.04.2005, 09:16
Hallo,
wielange dauert eigentlich bei euch das Programmieren? Also ich habe einen seriellen ISP, Pony Prog, XP und bei mir dauert es recht lange (25sek)
Pony macht Erase, writing (ganz schnell), verifying (dauert am längsten), danach nochmals writing (geht recht schnell) und nochmals verifying ( geht auch recht flott). Unter Program Options habe ich folgendes angekreuzt.
Reload Files
Set Serial Number
Erase
Write Programm Memory (Flash)
Write Data Memory (EEPROM)

Vielleicht könnten ja mal einige schreiben, welchen ISP sie haben und wielange es bei denen mit PonyProg dauert.

Florian
09.04.2005, 09:37
Hi Lektor!
Wie groß sind denn so Deine Programme?
Also, wenn ich den Speicher meines AVR's vollschreibe, dann dauert das auch etwas länger! ;o)
Aber bei kleinen Sachen vielleicht so 2-3 Sekunden!?

Lektor
09.04.2005, 09:42
Das meine ich ja. Sind bloss kleine Programme. 2 Taster, Licht an/aus. Das erste Verifiying dauert so ewig lange, mit den restlichen Zeiten kann ich mich noch mit abfinden.
Kann es nicht sein, dass er bei euch nur Erase, Verify und Write macht? Weil bei mir macht er alles doppelt.

Florian
09.04.2005, 09:45
Hmmmm!
Nachher, wenn ich am anderen PC mit PonyProg bin, dann gucke ich mal nach, wie ich's eingestellt habe!
So ganz verstehe ich das nicht!

tobimc
09.04.2005, 09:49
HI!

Wie benutzt du den AVR-ISP (Original Atmel?)

Also bei mir geht das vielleicht mal... bei großen Sachen 15-20sec, da ist aber dann der halbe Speicher des M16 voll!

Du benutzt die Ponnyprog-Ansteuerung des AVR-ISPs? Oder benutzt du (wie ich) die STK500.exe? Dieses Tool ist Auf der CD dabei, die du mit dem ISP bekommen hast.

Grüße,
Tobi

Florian
09.04.2005, 09:52
Hing die Geschwindigkeit nicht auch vom µC-Takt ab?
Was für eine Taktfrequenz beutzt Du?

Lektor
09.04.2005, 09:54
ne ist ein selbstgebauter serieller ISP mit 2 Z.Dioden, paar Widerständen und einem Transistor.http://mikrocontroller.cco-ev.de/images/ISP_SI-Prog_ser.jpg

tobimc
09.04.2005, 09:57
HI!

Ja, die Programmiergeschwindigkeit hängt ganz enorm mit der Taktfrequenz zusammen.
Der AVR muss ja auch mitkommen.

Hm. Welche Taktfrequenz hast du?

Grüße,
Tobi

Lektor
09.04.2005, 10:07
den Internen vom Mega8

Florian
09.04.2005, 10:09
Meinst Du die 1MHz?

Lektor
09.04.2005, 10:15
ja ich glaube die 1 MHz. Habe am Takt noch nichts geändert. Wie kriege ich ihn auf die 8 MHz die wohl vom internen unterstützt werden. In der Doku steht etwas von CKSEL. Muß ich ein Programm schreiben wo sowas drin steht, oder gibt es über PonyProg ne Option um den hochzutakten?

tobimc
09.04.2005, 10:17
HI

Also Fabrikneu läuft der M8 meines Wissens mit 8Mhz. Oder?
*EDIT:* Oder ist noch der 8-fach Vorteiler aktiv?

Das musst du in den FUSEBITS einstellen. Da kannst du CKSEL einstellen.
Wie das bei PonnyProg geht, weis ich nicht...

Grüße,
Tobi

Florian
09.04.2005, 10:18
Hi Lektor!
Dann wird es wohl daran liegen!
Du kannst in PonyProg die Fusebits direkt umstellen, aber VORSICHTIG!
Es gab schon einige Fälle, bei denen sich die Programmierer ausgesperrt haben un sie nicht mehr programmieren konnten!
Schau Dich am Besten mal hier um Forum nach der Anleitung um, oder schau mal bei www.s-huehn.de (bzw. direkt http://s-huehn.de/elektronik/avr-prog/avr-prog.htm), da gibt es auch eine Anleitung dazu!


Also Fabrikneu läuft der M8 meines Wissens mit 8Mhz. Oder?
*EDIT:* Oder ist noch der 8-fach Vorteiler aktiv?Nein, der läuft Fabrikneu bei 1MHz, oder liege ich jetzt falsch!?

Lektor
09.04.2005, 10:21
ok. In Pony ist CKSEL3 CKSEL2 CKSEL1 angekreuzt aber nicht CKSEL0. In der Mega 8 Doku steht.
Table 9. Internal Calibrated RC Oscillator Operating Modes
CKSEL3..0 Nominal Frequency (MHz)
0001(1)______________1.0
0010_________________2.0
0011_________________ 4.0
0100_________________8.0

Welchen Takt habe ich nun? :)

Florian
09.04.2005, 10:22
Dann ist es der 0001, also 1MHz Takt!

tobimc
09.04.2005, 10:25
Hi

Ich guck' grad schnell nach... ;D

Solange du nur in den FUSEBITS und _nicht_ in den LOCKBITS drehst,
kann nicht viel passieren, ausser dass du einen externen Takt programmierst, das ist mir mal passiert!

Also: FINGER WEG VON DEN LOCKBITS!
(Weis nicht wie das In PonnyProg ist, aber im AVR-Studio ist das klar getrennt.)

Grüße, Tobi

Lektor
09.04.2005, 10:28
werden die Bits nicht immer von hinten gezählt?
0100
3210
1 ist der 3 Bit also ist CKSEL 3 aktiv also 8 MHz? Warum sind auch CKSEL2 und 1 abgehakt und nicht 0? Kann ich den Haken aus 2 und 1 rausnehmen? Habe das System noch nicht ganz raus. Finde das es in der Mega8 Doku nicht eindeutig beschrieben ist. Beispiel wären gut.
Ich hoffe ja das der 1 MHz Takt aktiv ist, dann kann ich ja noch tunen. Ansonsten läuft er mit 8 MHz und ich darf die Lösung für das Zeitproblem woanders suchen. :(

tobimc
09.04.2005, 10:30
Hi!

Also: 1MHz! Der M8 läuft mit 1MHz, wen er aus den heiligen Hallen von Atmel kommt ;D
Schliess' mal nen 16MHz Quarz an, wenn du einen hast, oder aktiviere den 8MHz Oszillator, achte aber darauf, dass die 8-Fach Vorteilung abgeschaltet ist.

Grüße,
Tobi

*PS/EDIT:*

Weis leider auch nciht wie das in PONYPROG geht!

Florian
09.04.2005, 10:31
Du musst die Bits von rechts lesen!
Die Bits sind invertiert, also ist bei 1110 das 0Bit gesetzt!

Lektor
09.04.2005, 10:33
Also muß ich für die 8 MHz den Haken aus CKSEL3 rausnehmen und 2,1,0 anhaken?
(Es besteht noch Hoffnung)

Florian
09.04.2005, 10:36
Nein, CKSEL2 nicht anhaken und CKSEL0, CKSEL1, CKSEL3 anhaken!

Lektor
09.04.2005, 10:36
achne. für 8 MHz ist ja die Bitfolge 0100 erforderlich. Das bedeutet Haken bei 3, 1, 0. Oder?

NACHTRAG: schade hat leider nichts gebracht.

Zeitmessung hat folgendes ergeben:
bei beiden Taktfrequenzen 30 sek Programmierzeit.
dabei wurden 24 sek alleine für das erste Verify benötigt.
Würde gerne mal von einem anderen PonyProg nutzer wissen, wie bei dem der Programmierablauf abläuft. Dieses zweimalige Write und Verify gibt mir zu denken. Das muß doch irgentwo auszuschalten sein.

Read All dauert aber auch sehr lange. Vielleicht liegt es ja wirklich an meinem ISP. Aber ich bin froh das er endlich läuft. Werde in den nächsten Wochen mal einen anderen ausprobieren.

Florian
09.04.2005, 10:37
Genau, Du hast es verstanden! ;o)

tobimc
09.04.2005, 10:37
Hi!

Kannst du auch AVR-Studio verwenden?
Unterstützt dieses sagenhafte Tool deinen Brenner?

Ich weis nciht, warum es niemand verwendet, aber zum Setzen von Fusebits ist das der absolute Hammer! Ich benutz' es auch immer!

Es steht immer dran, welches es ist, und was es bewirkt!

*AVRStudio-Fan*

Grüße,
Tobi

Lektor
09.04.2005, 11:32
Ne AVR Studio sagt leider immer No supported board found.
Wenn ihr eine Bauanleitung für einen seriellen ISP für AVR Studio 4.14 habt, dann nur her damit. Ponyprog ist war ein recht einfaches Programm, aber wenn ich alles über AVR Studio machen kann.....

tobimc
09.04.2005, 11:38
HI!

Also ich glaube jetzt nichtmehr ganz, dass das AVR-Studio passive Brenner unterstützt... :(

Also STK500 oder AVR-ISP von Atmel... :(

SCHADE!!

Ganz liebe Grüße,
Tobi

churchi
09.04.2005, 12:03
Da mir das Verifying bei Pony auch viel zu lang dauert hab ich mir ein script geschrieben, dass das ganze ohne dem verify in den µC spielt.
--> geht viel schneller \:D/

Lektor
09.04.2005, 12:15
Bitte Bitte ne kleine Anleitung! *schmoll* :)

Kann das Verifying einfach weggelassen werden? Muß ja für irgentwas gut sein.

Lektor
09.04.2005, 12:35
so habe mir jetzt folgendes zusammengetippt.
die Zeilen mit dem # sind auskommentiert, also einfach überspringen.
Geht jetzt wesentlich schneller, hast du es auch so?
Nur was macht er beim Verifizieren und kann man darauf wirklich verzichten? Oder kontrolliert er nur ob die richtige .def Datei included wurde.


#------ START --------
#Programming sequence
SELECTDEVICE ATmega8
CLEARBUFFER
LOAD-PROG
#LOAD-DATA eeprom.hex
#PAUSE "Connect and powerup the circuit, are you ready?"
READ-CALIBRATION 0x3ff
ERASE-ALL
#WRITE&VERIFY-ALL
WRITE-ALL

#Pay attention to NOT disable RSTDISBL
#Fuse: "BODLEVEL ","BODEN ","SPIEN ","RSTDISBL ","CKSEL3 ","CKSEL2 ","CKSEL1","CKSEL0 "
# 1 1 1 0 1 0 1 1
#WRITE-FUSE 0xEB

#Lock: {X,X,X,X,X,"Lock2 ","Lock1 ",X}
# 0 0 0 0 0 1 1 0
#WRITE-LOCK 0x06
#------- END ---------

churchi
09.04.2005, 13:03
Bei mir siehts folgendermaßen aus:


SELECTDEVICE ATMEGA128
CLEARBUFFER
LOAD-PROG main.hex
ERASE-ALL
WRITE-PROG


ich schreibe den EEPROM nicht - will mir die Daten darin erhalten (hab auch die EESAVE Fuse gesetzt)
beim Start lade ich mir die main.hex rein - muss vielleicht geändert werden
der µC wird jedesmal erased

lekro
11.04.2005, 15:57
Würde gerne mal von einem anderen PonyProg nutzer wissen, wie bei dem der Programmierablauf abläuft. Dieses zweimalige Write und Verify gibt mir zu denken. Das muß doch irgentwo auszuschalten sein.Wäre es im Rahmen des Möglichen, dass das "erste Schreiben" das Flash betrifft, das "zweite Schreiben" aber das EEPROM? Das würde die stark unterschiedliche Programmier-Geschwindigkeit erklären.

"Auszuschalten" wäre es dann ganz einfach: Drück nicht auf "Write device" sondern auf "Write program memory".


Außerdem: Beim Schreiben schreibt PonyProg nur die definierten Codebereiche ins Flash. Wenn das Programm nur 100 Bytes belegt, geht das Programmieren also ziemlich schnell.
Beim Verify liest PonyProg aber AFAIK immer den kompletten Flash-Speicher ein, nicht nur den gerade beschriebenen Teil. Das würde erklären, wieso Verify länger dauert als Write.


edit: ups, hab die zweite Seite des Threads erst jetzt bemerkt. :roll:

edit2: Beim "Verify" liest PonyProg das komplette Flash ein und überprüft, ob das Programm korrekt geschrieben wurde. Bei schlechter ISP-Verbindung, Störeinflüssen oder alten Flash-Speicher könnte sich ansonsten ein fehlerhaftes Wort einschleichen. Musst du selbst wissen, ob du das überspringen willst (ich würde es wahrscheinlich nicht machen).

churchi
11.04.2005, 17:32
Musst du selbst wissen, ob du das überspringen willst (ich würde es wahrscheinlich nicht machen).

Ich hab lange mit dem Verify gearbeitet - es gab da nie einen Fehler.
Als ich dann umgestiegen bin auf kein Verify hats bisher auch ohne Probleme geklappt.
Wenn ich in einer Firma bin und dort das Programm neu aufspielen soll, dann verwende ich allerdings schon auch das Verify - da isses wichtig das es wirklich funktioniert.

Lektor
11.04.2005, 18:42
ja, danke allen. Also ich habe auch ordentlich das Skript umgeschrieben und jetzt geht es wirklich ganz flott.

Thomass
13.04.2005, 02:06
Hallo,

ich benutzte einen HC244 oder war es ein HC245 Parallelport-Progger und das Programm Chipblaster AVR das ganze dauert bei mir ca. 1-2 Sek. egal ob mit 1 oder 8 MHz im Moment habe ich knapp 1kB Code den ich immer mit ein paar Veränderugnen progge.

Finde das Programm prima, man darf nur nicht den Hacken bei RSTDSBL=0
setzten, was eigentlich genau umgekehrt sein müsste.

Hier mal der Link http://www.dontronics.com/chipblaster.html#download