Forum: Mikrocontroller und Digitale Elektronik Avrdude chip signatur Atmega644P


von chrysator (Gast)


Lesenswert?

Hi Leute

Wollte gerade bei einem Atmega644P die Fuses setzen da kommt diese 
Meldung:
1
avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update.
2
avrdude.exe: AVR device initialized and ready to accept instructions
3
4
Reading | ################################################## | 100% 0.01s
5
6
avrdude.exe: Device signature = 0x1e960a
7
avrdude.exe: Expected signature for ATMEGA644 is 1E 96 09
8
             Double check chip, or use -F to override this check.
9
10
avrdude.exe done.  Thank you.

Ich benutze:

-Windows 7
-avrdude (wie man sieht)
-AVR8 Burn-O-Mat v2

Hat jemand einen tipp?

chrys

von ... (Gast)


Lesenswert?

Die Meldung ist völlig i.O.
Du verwendest einen ATMega644P mit der Signatur 0x1e960a.
Mit deinem Burn-O-Mat willst du aber einen ATMega644 programmieren mit 
der Signatur 0x1e9609.
Burn-O-Mat kenne ich nicht. AVRDude allein verwenden und in dem 
Config-File das Signature-Bite ändern.

von chrysator (Gast)


Lesenswert?

Ok und wie stell ich das genau an? Ich weiss ich stell mich blöd an aber 
benutze normalerweise ubuntu zum basteln ... nur weiss ich nicht wie man 
im Linux die Fuses schreibt.
Wie geht das in der Windows Konsole?

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Guck mal ins burnomat Installationsverzeichnis.
Da gibs glaube ne XML Datei und da kopierste den Abschnitt des 644.
Dann in 644p umbennen und die Sig setzen.

von chrysator (Gast)


Lesenswert?

Im XML steht aber nirgends die Signatur

Code für 644:
1
<AVR name="m644" caption="ATmega644">
2
  <Fuse name="UNUSED_E7" bit="7" fuseByte="efuse" default="1" desc="unused" mode="expert" /> 
3
  <Fuse name="UNUSED_E6" bit="6" fuseByte="efuse" default="1" desc="unused" mode="expert" /> 
4
  <Fuse name="UNUSED_E5" bit="5" fuseByte="efuse" default="1" desc="unused" mode="expert" /> 
5
  <Fuse name="UNUSED_E4" bit="4" fuseByte="efuse" default="1" desc="unused" mode="expert" /> 
6
  <Fuse name="UNUSED_E3" bit="3" fuseByte="efuse" default="1" desc="unused" mode="expert" /> 
7
  <Fuse name="BODLEVEL2" bit="2" fuseByte="efuse" default="1" desc="Brown out detector trigger level" /> 
8
  <Fuse name="BODLEVEL1" bit="1" fuseByte="efuse" default="1" desc="Brown out detector trigger level" /> 
9
  <Fuse name="BODLEVEL0" bit="0" fuseByte="efuse" default="1" desc="Brown out detector trigger level" /> 
10
  <Fuse name="OCDEN" bit="7" fuseByte="hfuse" default="1" desc="Enable OCD (on chip debug)" mode="expert" /> 
11
  <Fuse name="JTAGEN" bit="6" fuseByte="hfuse" default="0" desc="Enable JTAG" mode="expert" /> 
12
  <Fuse name="SPIEN" bit="5" fuseByte="hfuse" default="0" desc="Enable Serial Program and Data Downloading" mode="expert" /> 
13
  <Fuse name="WDTON" bit="4" fuseByte="hfuse" default="1" desc="Watchdog timer always on" /> 
14
  <Fuse name="EESAVE" bit="3" fuseByte="hfuse" default="1" desc="EEPROM memory is preserved through the Chip Erase" /> 
15
  <Fuse name="BOOTSZ1" bit="2" fuseByte="hfuse" default="0" desc="Select Boot Size (see Table 82 for details)" /> 
16
  <Fuse name="BOOTSZ0" bit="1" fuseByte="hfuse" default="0" desc="Select Boot Size (see Table 82 for details)" /> 
17
  <Fuse name="BOOTRST" bit="0" fuseByte="hfuse" default="1" desc="Select Reset Vector" /> 
18
  <Fuse name="CKDIV8" bit="7" fuseByte="lfuse" default="0" desc="Devide clock by 8" /> 
19
  <Fuse name="CKOUT" bit="6" fuseByte="lfuse" default="1" desc="Clock output" /> 
20
  <Fuse name="SUT1" bit="5" fuseByte="lfuse" default="1" desc="Select start-up time" /> 
21
  <Fuse name="SUT0" bit="4" fuseByte="lfuse" default="0" desc="Select start-up time" /> 
22
  <Fuse name="CKSEL3" bit="3" fuseByte="lfuse" default="0" desc="Select Clock source" /> 
23
  <Fuse name="CKSEL2" bit="2" fuseByte="lfuse" default="0" desc="Select Clock source" /> 
24
  <Fuse name="CKSEL1" bit="1" fuseByte="lfuse" default="1" desc="Select Clock source" /> 
25
  <Fuse name="CKSEL0" bit="0" fuseByte="lfuse" default="0" desc="Select Clock source" /> 
26
- <BrownOutDetection>
27
  <Fuse name="BODLEVEL2" /> 
28
  <Fuse name="BODLEVEL1" /> 
29
  <Fuse name="BODLEVEL0" /> 
30
  <Setting caption="disabled" Fuse1="1" Fuse2="1" Fuse3="1" /> 
31
  <Setting caption="1.8V (1.7V - 2.0V)" Fuse1="1" Fuse2="1" Fuse3="0" /> 
32
  <Setting caption="2.7V (2.5V - 2.9V)" Fuse1="1" Fuse2="0" Fuse3="1" /> 
33
  <Setting caption="4.3V (4.1V - 4.5V)" Fuse1="1" Fuse2="0" Fuse3="0" /> 
34
  </BrownOutDetection>
35
  <OscillatorOptions Type="ATmega48" /> 
36
  </AVR>

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

das
<AVR name="m644" caption="ATmega644">
in das
<AVR name="m644p" caption="ATmega644P">
ändern
Vorher natürlich kopieren.

Burnomat is ja nur ne GUI fürn avrdude.
daher wird avrdude dann m644p als Kommando übergeben.

von chrysator (Gast)


Lesenswert?

Ok danke vielmals

chrys

von Alex (Gast)


Lesenswert?

Hallo zusammen,

vielleicht kann mir (totaler Laie in Sachen Prozessor flashen) jemand 
weiterhelfen....

bei mir kommt beim Setzen der Fuses mit avrdude die folgende Meldung:

C:\avrdude\avrdude -c ponyser -p m644p -P com1 -u -U lfuse:w:0xD7:m -F

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x000000
avrdude: Yikes! invalid device signature
avrdude: Expected signature for ATMEGA644P is 1E 96 0A

avrdude done.

Danke Alex

von Hubert G. (hubertg)


Lesenswert?

Es sieht so aus als würde der AVR nicht erkannt.
Mögliche Fehler sind unter anderem: Verbindung zu den Datenpin nicht 
richtig, keine Spannung am AVR...
Programmer funktioniert mit einem anderen AVR?

von holger (Gast)


Lesenswert?

>vielleicht kann mir (totaler Laie in Sachen Prozessor flashen) jemand
>weiterhelfen....

Zu wenig Infos. Welchen Programmer verwendest du?

von Alex (Gast)


Lesenswert?

Guten Morgen,

Programer - das Teil hat ne Ponyprog-Schnittstelle.

Keine Spannung am AVR: diese Möglichkeit habe ich auch schon in Erwägung 
gezogen. Aber an welchen Pins kann ich das nachmessen? Multimeter hab 
ich zur Verfügung.

Danke für eure Hilfe.

Alex

von Alex (Gast)


Lesenswert?

Nochmal guten Morgen,

habe mal an den Prozessor-Pins gegen Gnd gemessen. An einigen liegen 5V 
an einigen weniger und an ein paar gar keine Spannung an.

von Rolf P. (rolfp)


Lesenswert?

chrysator schrieb:
> Ok und wie stell ich das genau an? Ich weiss ich stell mich blöd an aber
> benutze normalerweise ubuntu zum basteln ... nur weiss ich nicht wie man
> im Linux die Fuses schreibt.

Unter Linux kann man die Fuses zum Beispiel so setzen:
1
avrdude -p m644p -c avr910 -P /dev/ttyUSB0 -U hfuse:w:0x99:m
2
avrdude -p m644p -c avr910 -P /dev/ttyUSB0 -U lfuse:w:0x62:m
Statt avr910 deinen Programmer einsetzen. Und dann natuerlich die Fuses 
im Datenblatt nachschauen (Kapitel Memory Programming) und die korrekten 
Hexadezimalwerte (statt 0x99 und 0x62) entsprechend einsetzen.

Oder mit Verwendung eines Makefiles so:
1
make fusesetzen
Ich habe letzthin mal eine Homepage eingerichtet wo das alles 
beschrieben ist:
http://www.rolfp.ch/elektronik/avr/#makefiles

Alex schrieb:
> habe mal an den Prozessor-Pins gegen Gnd gemessen. An einigen liegen 5V
> an einigen weniger und an ein paar gar keine Spannung an.

Die 5V muessen an den Pins VCC und AVCC anliegen. Die entsprechenden 
Pin-Nummern findet man im Datenblatt. Wichtig ist auch noch dass beide 
GND-Pins wirklich mit Gnd verbunden sind.


Rolf

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.