Arduino Forum

Forum 2005-2010 (read only) => International => Deutsch => Topic started by: Jomelo on Sep 02, 2010, 09:53 am

Title: Bootloader aufspielen
Post by: Jomelo on Sep 02, 2010, 09:53 am
Hi zusammen,

ich bin gerade dabei den Sanguino Bootloader auf eine Atmega644p aufzuspielen.

Dauert das immer so ewig lange ?

Ich arbeite direkt in der Konsole mit avrdude.
Code: [Select]

avrdude -p atmega644p -c avr910 -P com8 -U flash:w:"...Hexfile...":i -U flash:v:"...Hexfile...":i -y

Den Aufruf habe ich in einem Tutorial gefunden und angepasst.

Er ist gerade bei 20%. Bis dahin hat er schon 220 Sekunden gebraucht.

Mir scheint es so, dass er immer erst rechnet und dann das Paket überträgt, da die Dioden vom Programme alle 20 Sekunden ganz kurz aufleuchten.

Geht das bei euch schneller ?


EDIT
Was heist die Meldung:
Code: [Select]

avrdude: verification error, first mismatch at byte 0xf800  0x0c != 0xff
avrdude: verification error; content mismatch

avrdude: safemode: Fuses OK


Versteh ich das richtig, dass das schreiben des Bootloaders fehlgeschlagen ist weil beim Kontrollieren irgendwas nicht stimmt ?

Wie kann man das verhindern und wodran kann das liegen ?  
Title: Re: Bootloader aufspielen
Post by: Jomelo on Sep 02, 2010, 10:24 am
Hier nochmal ein Bild des Aufbaues.
Grün sind Brücken von oben.
Rot sind Leiterbahnen von unten.
Das ganze habe ich auf einer Lochraster Platine aufgebaut da erstmal alles ein Experiment ist.

http://nilsfeld.de/r/arduino/images/layout_v1.jpg

Auslesen kann ich den Atmega644p
Title: Re: Bootloader aufspielen
Post by: Jomelo on Sep 02, 2010, 11:56 am
Im Make File des Bootloaders steht noch folgendes

Code: [Select]

# Makefile for ATmegaBOOT
# E.Lins, 18.7.2005
# $Id$


# program name should not be changed...
PROGRAM    = ATmegaBOOT_644P

# enter the target CPU frequency
AVR_FREQ   = 16000000L

MCU_TARGET = atmega644p
LDSECTION  = --section-start=.text=0xF800


Haben die  0xF800 was mit meinem Problem zu tun ?
Title: Re: Bootloader aufspielen
Post by: Jomelo on Sep 02, 2010, 03:33 pm
Hat sich alles erledigt,

brennen kann man den Sanguino erfolgreich mit folgendem aufruf:
Code: [Select]

avrdude -p m644p -c avrisp2 -P usb -B 8 -F -u -U flash:w:"PATH_TO_HEXFILE":i


Und aufpassen sollte man noch bei dem Schaltplan der auf der Sanguino Seite steht  ( http://sanguino.cc/hardware ).
Da ist bei der USBtoTTL Schnittstelle ein kleiner Fehler   Tx und Rx sind vertauscht zum FTDI Programmierer.
Title: Re: Bootloader aufspielen
Post by: mpeuser on Sep 02, 2010, 08:37 pm
Herzlichen Glückwunsch! Tolles Board! Läuft der ENC? Mit welcher Software?

Um 9 Uhr ist natürlich eine schlechte Zeit zum Fragen stellen - da müssen Manche meist "richtig" was tun....

Du hast ja alles alleine rausgekriegt - Ja, man sollte schon wissen, was für eine Programmer man hat. (Als Software kann man da übrigens statt AVRdude auch BASCPM oder myAVR_ProgTool verwenden,  ich finde letzteres etwas intuitiver.)

Die Anleitungen bei Sanguino sind aber wirklich gut.

Die Beschriftungen und das Pinlayout sind nun leider bei jedem USB/TTL Wandler anders... Ich habe hier 5 verschiedene   ;D
Title: Re: Bootloader aufspielen
Post by: Jomelo on Sep 02, 2010, 11:30 pm
Also ich versuch die Software vom Etherschild umzuschreiben.

Ich komm nur noch nicht ganz mit den Eingängen klar.

Man definiert in der Software 4 I/O Pins der Enc28j60 braucht aber 5.

Sprich bei denen wird der "int0" eingang (pin4) am enc28j60 irgendwo in der Software gesetzt.

Bei mir ist es aber so das der zweite UART auf int0 liegt und ich somit  int2 für den Enc28j60 vorgesehen habe.

Da bin ich gerade noch am kämpfen das ich das irgendwie hin bekomme.

Hast du das schon mal selber gebaut ?
Title: Re: Bootloader aufspielen
Post by: Jomelo on Sep 02, 2010, 11:42 pm
Mir stellt sich da schon mal die Frage was das hier bedeutet ?

Code: [Select]

#define waitspi() while(!(SPSR&(1<<SPIF)))


Also  SPSR  und SPIF  habe ich in der  iom64.h  im arduino ordner gefunden.

Aber auf welches Register greift der da zu ? Hat das was mit dem Int eingang vom Enc28j60 zu tun ?
Title: Re: Bootloader aufspielen
Post by: Jomelo on Sep 03, 2010, 03:16 pm
So, habe ihn nun am laufen,  er antwortet auf die Ping anfragen.

Es müssen nur die 4 Pins  (CS/SS, SCK, MISO, MOSI) definiert werden.

Die Software ist hier zu finden.

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1206024602