PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bascom schnelleres flashen möglich über ISP?



Accenter
01.11.2009, 13:07
Bei längeren Programmcodes ist es oft mühsam immer zu warten bis man nach kleinen Programmänerungen wieder alles im Atmel hat.

Ich flashe ganz normal über den Parallel Port.
Habe auch schonmal mit einem mySmartUSB Programmer gearbeitet. Das dauert damit aber dann noch länger.

Wie kann ich das etwas beschleunigen? Könnt ihr mir etwas empfehlen?
Kann man in Bascom auch die Überprüfung des Programmcodes abschalten? Nach jedem Schreibvorgang wird ja der Code nochmals überprüft und das dauert dann wieder.

for_ro
01.11.2009, 13:14
Ich flashe ganz normal über den Parallel Port.
Habe auch schonmal mit einem mySmartUSB Programmer gearbeitet. Das dauert damit aber dann noch länger.
Wie lange braucht denn das Flashen? Miss mal die Zeit.



Kann man in Bascom auch die Überprüfung des Programmcodes abschalten? Nach jedem Schreibvorgang wird ja der Code nochmals überprüft und das dauert dann wieder.

Unter Options > Programmer kannst du in der Mitte das Häkchen bei Auto-Verify rausnehmen.

Accenter
01.11.2009, 13:31
Hab die zeit gemessen.

Auf einen Mega128 (30% Programmcode) 40 Sekunden ohne Auto verify.

KingTobi
01.11.2009, 13:46
Kannst du auch noch schreiben wie groß dein Programmcode ist der 40Sekunden dauert?

Ich benutz (meist) das myAVR MK2, knapp 1kb braucht bei mir 1,5Sekunden.

Accenter
01.11.2009, 13:57
Wo sehe ich die Größe vom Programmcode in Bascom? Errechnet wären das bei mir ca 38Kb (der Mega128 hat 128K Flash). Würde dann ja hinkommen von der Zeit. Hab gehofft man könnte das irgendwie beschleunigen.

KingTobi
01.11.2009, 14:07
Naja, irgendwo sind dem Controller immer Grenzen gesetzt wenn es um Übertragungsgeschwindigkeiten geht.
Wo diese Grenzen beim 128er sind weiss ich aber nicht.

Vitis
01.11.2009, 15:01
1/4 clk ist die Grenze. Bei 16MHz währen das dann 4 MHz ISP Frequ. maximal.
der ISP MKII kann das zwar, aber ob 2MHz oder 4MHz reißt's dann auch nicht
mehr wirklich raus.
Beim "Rohling" auf 1MHz intern sinds dann 250KHz die dann erst umgefused werden müssen. Sprich ISP frequ. erst runter, dann wieder hoch.
Viel lästiger ist das immer wieder aufmachen von Gehäusen zum flashen.
Ich bin bei mir hin gegangen und nen Bootloader erst drauf und flashe dann
nurnoch über den Loader, das ist mal echt angenehm, dauert zwar n Momentchen länger, aber dafür sehr komfortabel.

mat-sche
01.11.2009, 20:35
Hi Accenter,

lang von Dir nichts gehört ;)
Ich könnte Dir den Bootloader von Bascom schicken. Ich habe mir als erstes diesen drauf gemacht und damit kann auch direkt aus Bascom seriell geflasht werden. Einfach im Bootloader die baudrate einstellen, wie auch im Programmer und dann wie gewohnt über die normale Funktion brennen.

Ganz einfach oder meld dich!!!

Gruß MAT

Accenter
01.11.2009, 22:40
Hi Mat!

Geht das dann schneller mittels Bootloader? Ich hab das mysmartUSB ins Gehäuse mit eingebaut um nichts mehr öffnen zu müssen. Einfach dann per USB anstecken und losgehts. Leider ist das aber wiegesagt nicht sehr schnell. Über den Parallelport geht es rascher.

Wenns nicht aners geht leb ich damit weiter. Wäre in der Praxis oft nur besser Änderungen schneller einspielen zu können.

stefan_Z
02.11.2009, 00:52
Also Bootloader ist mal wirklich schnell wie ich finde.
Die Baudrate kann man recht weit hochziehen, dann braucht kein Flashen länger als ein paar Sekunden - und das direkt aus Bascom.

recycle
02.11.2009, 01:09
Einfach dann per USB anstecken und losgehts. Leider ist das aber wiegesagt nicht sehr schnell. Über den Parallelport geht es rascher.

Schnell ist relativ. Ich habe bei mir noch nie die Zeit gestoppt. Finde aber das das Programmieren mit dem MCS Bootloader recht flott geht.
Ich programmiere nach dem Motto erst flashen, dann denken - sprich so ungefähr nach jeder kleinen Änderung im Programm lade ich das Programm auf den Controller um die Änderung über Print Ausgaben über die serielle Schnittstelle auszuprobieren.
D.h. das serielle Kabel muss ich eh angeschlossen haben und das Flashen kam mir noch nie langsam vor.

Was du aber wohl beachten musst ist, dass du den Controller jedesmal resetten mußt um ein Programm hochzuladen.
D.h. der Reset-Pin sollte schon gut erreichbar sein, sonst macht es über Bootloader nicht so viel Spass.

Vitis
02.11.2009, 07:33
reeset pin erreichbar? ... nö, muss nicht sein.
Bei mir gehts ohne, einfach per RXC-Int warten
auf Zeichenempfang, wenn Start Zeichen erkannt in
Loader springen. Geht bei mir tadellos

mat-sche
02.11.2009, 09:40
Hi,

die max. baudrate soll mit 115000 angegeben sein. Ich brenne erfolgreich bei ca. 57... baud und ich finde, dass das recht fix geht, nur nen paar sekunden.
Wenn ich eine Schaltung entwerfe, plane ich immer einen FTDI-Chip mit ein, den ich dann seriell mit dem Controller verbinde und somit recht einfach brennen kann und in der Zukunft immer schnell nen Update draufschieben kann.

@Vitis:
erkläre mal bitte näher wie Du die Funktion in einem Code unterbringst. Ist der Bootloader der orginale aus Bascom?

Gento
02.11.2009, 23:29
If Char_rs232 = xxx Then 'Updaten
#if Anzeige_lcd = On
Cls
Locate 1 , 1
Lcd "Update ....."
Waitms 1000
#endif
Goto $3c00 'oder wo der Bootloader liegt

Gento

Vitis
03.11.2009, 16:45
Case 123 'ASCII-Zeichen für Bootloader
Porta = 0
Portc = 0
Porte = 0
Disable Interrupts
Baud = 38400
Goto &HF000 ' Loaderbereich
Case 124 'ASCII-Zeichen für Bootloader
Porta = 0
Portc = 0
Porte = 0
Disable Interrupts
Baud = 38400
Goto &HF000 ' Loaderbereich


Die einzig sinnvolle Verwendung von Goto in Bascom

mat-sche
04.11.2009, 15:46
Hi Vitis,

ich habe noch nicht sehr viel mit RS232 Kommunikation gemacht. Kannst Du bitte mir eine bsp.Code mit Empfangsroutine und Auswertung + Sprung auf den Bootbereich posten?

DANKE MAT