Forum: Mikrocontroller und Digitale Elektronik ATmega644P - Programmierung


von Marcel B. (waveceptor)


Lesenswert?

Hi,
ich wollt fragen mit welchen Flash-Adapter ich den µC flashen kann? Hab 
bereits einen AVR-JTAG - Adapter (AVR JTAG ICE) von "www.olimex.com" und 
einen ISP USB Programmer für Atmel AVR Studio. In AVR-Studio kann ich 
mit AVR Prog den Controllern nicht auswählen (nicht vorhanden).
Gibts ne günstige Lösung zum flashen?

Danke für eure hilfe

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Der JTAG-ICE-Clone wird's für diesen Prozessor nicht tun.  Was für ein
Teil ist der ISP-Adapter denn?  Der sollte das schon können.

avrprog.exe ist aber uraltes Zeuch.  Benutzt man eigentlich nur noch
für Firmwareupgrades, da es das einzige offizielle Tool ist, das diese
.ebn-Dateien lesen kann.

von Bensch (Gast)


Lesenswert?

Versuchs mal mit AVR OSP II, das kennt den 644P. Ob's mit deinem Adapter 
läuft, kann ich nicht sagen, einfach probieren.

von Marcel B. (waveceptor)


Lesenswert?

ok das wär einmal das hier:
http://www.my-irshop.de/catalog/product_info.php?cPath=28&products_id=158

Kann das klappen? hab mit avrdude und burnAVRburn-GUI mal probiert was 
zu flashen --> kommt das hier (Gerät AVR910):

//-------------------------------------------------------------
Connecting to programmer: .
Found programmer: Id = "AVR ISP"; type = S
    Software Version = 3.9; Hardware Version = 1.2
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=64 bytes.

Programmer supports the following devices:
    Device code: 0x13
    Device code: 0x20
    Device code: 0x28
    Device code: 0x30
    Device code: 0x34
    Device code: 0x38
    Device code: 0x48
    Device code: 0x4c
    Device code: 0x51
    Device code: 0x55
    Device code: 0x56
    Device code: 0x68
    Device code: 0x6c
    Device code: 0x86
    Device code: 0x87
    Device code: 0x01
    Device code: 0x04
    Device code: 0x05
    Device code: 0x06
    Device code: 0x07
    Device code: 0x08
    Device code: 0x09
    Device code: 0x0e
    Device code: 0x1a
    Device code: 0x0f
    Device code: 0x1b
    Device code: 0x14
    Device code: 0x1c
    Device code: 0x1d
    Device code: 0x23
    Device code: 0x31
    Device code: 0x33
    Device code: 0x35
    Device code: 0x37
    Device code: 0x39
    Device code: 0x3d
    Device code: 0x3e
    Device code: 0x57
    Device code: 0x62
    Device code: 0x63
    Device code: 0x3a
    Device code: 0x3b
    Device code: 0x41
    Device code: 0x43
    Device code: 0x44
    Device code: 0x45
    Device code: 0x46
    Device code: 0x5e
    Device code: 0x60
    Device code: 0x61
    Device code: 0x64
    Device code: 0x66
    Device code: 0x69
    Device code: 0x6a
    Device code: 0x72
    Device code: 0x73
    Device code: 0x74
    Device code: 0x75
    Device code: 0x76
    Device code: 0x77
    Device code: 0x78
    Device code: 0x79

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.02s

avrdude: Device signature = 0xffffff
avrdude: Yikes!  Invalid device signature.
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

//-------------------------------------------------------------

wenn ich als gerät "AVR ISP" auswähl kommt:

//-------------------------------------------------------------

nullavrdude -c avrisp -p m644p -P com4 -b 115200 -U flash:w:/:i null
avrdude: stk500_getsync(): not in sync: resp=0x3f
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0xff

avrdude done.  Thank you.

//-------------------------------------------------------------

von Marcel B. (waveceptor)


Lesenswert?

AVR JTAGICE mkII wäre warscheinlich das beste oder? Wo kann man das 
günstig erwerben?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Naja, das JTAG ICE mkII ist recht preisintensiv.  Wenn du nur
programmieren willst, dann nimm das AVRISP mkII von Atmel.  Das
JTAG ICE mkII brauchst du nur zum Debuggen.

Der AVR910-Programmer kann das u. U. auch, aber möglicherweise erst
nach einem Firmwareupgrade, und dann bleibt da immer noch dieser
unsägliche device code, bei dem die Firmware und das avrdude.conf
einer Meinung sein müssen, wie sie den ATmega644 denn nun benennen.

von Marcel B. (waveceptor)


Lesenswert?

Danke für deine Hilfe. Den ISP2 hatte ich ganz übersehen.

von Rudolph R. (rudolph)


Lesenswert?

Mit dem Dragon ist das auch kein Problem, habe gerade vor kurzer Zeit 
erst 130 Stück Mega644P per AVRDragon.exe gebrannt.
Im Studio ist der dann auch zu sehen.

von Marcel B. (waveceptor)


Lesenswert?

für das Dragon hab ich aber gelesen, dass max 32kByte flash-speicher 
unterstützt werden?

von Andreas K. (a-k)


Lesenswert?

Programmieren kann er alle. Nur Debuggen ist auf solche bis 32KB 
beschränkt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Allerdings ist der Dragon halt eine Bastelkiste. ;-)  Wenn man nur
ISP programmieren will, ist der AVRISP mkII erstens schneller und
zweitens hat er ein Gehäuse.

Der Dragon hat andere Stärken.

von gast (Gast)


Lesenswert?

da wird dann wohl deine programmerfirmware zu alt sein.

also die letzten avrdude-versionen programmieren den atmega644P ohne 
probleme...
mit den einfachsten programmern.

wie hier, welches einen 644p als hauptprozessor hat.
http://www.mikrokopter.de/ucwiki/

von Rudolph R. (rudolph)


Lesenswert?

Jörg Wunsch wrote:
> Wenn man nur ISP programmieren will, ist der AVRISP mkII
> erstens schneller [als der Dragon]

Öh? Wie das denn?
Bei ISP stelle ich doch die Geschwindigkeit zwischen Programmer und 
Target ein und die ist auf 1/4 des Target-Taktes begrenzt.
Und leider nicht so richtig flexibel, 250kHz bei einem neuen Controller 
mit noch aktiver ClkDiv8 Fuse klappt nicht, wenn man deutlich weniger 
als 5V hat...

USB haben die beide, das Nadelöhr ist also doch der ISP selbst?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rudolph R. wrote:

>> Wenn man nur ISP programmieren will, ist der AVRISP mkII
>> erstens schneller [als der Dragon]
>
> Öh? Wie das denn?

Warum das so ist, weiß ich auch nicht (von der zusätzlichen
Kapselung des AVRISPmkII-Protokolls in JTAGICEmkII-Frames abgesehen
benutzen beide ja das gleiche Protokoll), aber es ist leider so.
JTAGICEmkII und AVR Dragon sind bei ISP langsamer als das AVRISPmkII.
Ich hab's auch anfangs nicht geglaubt. ;-)

> Bei ISP stelle ich doch die Geschwindigkeit zwischen Programmer und
> Target ein und die ist auf 1/4 des Target-Taktes begrenzt.

Ich rede natürlich von dem Fall, bei dem der AVR schnell genug
getaktet ist, dass andere Dinge als das eigentliche ISP-Protokoll
zum Nadelöhr werden.  Den ISP-Takt des AVRISPmkII kann man bis maximal
8 MHz hoch drehen.

von Rudolph R. (rudolph)


Lesenswert?

Jörg Wunsch wrote:
> Ich rede natürlich von dem Fall, bei dem der AVR schnell genug
> getaktet ist, dass andere Dinge als das eigentliche ISP-Protokoll
> zum Nadelöhr werden.  Den ISP-Takt des AVRISPmkII kann man bis maximal
> 8 MHz hoch drehen.

Das geht beim Dragon auch, es läuft bisher aber kein AVR mit 32 MHz.
Die maximal nutzbaren 4 MHz sollten eigentlich weit genug von der
USB Datenrate weg sein um keine unangenehme Differenz durch zusätzlichen
Verpackungs-Aufwand zu bewirken.

Sollten, wird schon stimmen was Du schreibst, habe ich nur noch nicht 
beobachtet da ich auch schon lange nur noch den Dragon benutze.

Na okay, macht mit JTAG sowieso mehr Spass. :-)

Minus dem Debuggen nur bis 32 KB. :-(

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Rudolph R. wrote:

[ISP-Frequenz 8 MHz]

> Das geht beim Dragon auch, ...

Hat aber keinerlei praktischen Nährwert, da er trotzdem recht
langsam bleibt.

> Na okay, macht mit JTAG sowieso mehr Spass. :-)

Selbst das ist langsamer als ISP bei hohen Frequenzen (allerdings
schneller als ISP bei einem mit 1 MHz getakteten AVR).  Ich hab's
auch anfangs nicht glauben wollen, aber das AVRISPmkII haben sie
wirklich recht flott bekommen.

Parallelprogrammierung ist natürlich bei großen AVRs noch schneller,
aber die hat halt andere Randbedingungen.

von Rudolph R. (rudolph)


Lesenswert?

Hmm, okay, ich habe gerade mal einen Mega644P per ISP ausgelesen.
Das dauert ja länger, als den per Bootloader von SD-Karte zu flashen??
Und das bei 8 MHz Takt per Quarz und 2 MHz ISP.

Zieht sich so etwa 12...14 Sekunden hin bis die Datei auf der Platte 
ist.
Warum dauert das länger als zwei Sekunden? :-)

Was ich so direkt per ISP brenne ist offenbar zu kurz...

Haben die dem Mega128 auf dem Dragon einen 6 MHz Resonator verpasst?
Und ich sehe gerade, der M2560 hat gar keinen Schrittmacher?

Seltsam.

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.