Forum: Mikrocontroller und Digitale Elektronik neuer atmega328p


von Hightiger (schilling)


Lesenswert?

Hi ich habe ein Problem mit einem neu gekauften Chip.

Ich bin recht neu in der Mikrocontroller-Welt. Ich habe mir den USBasp 
zugelegt und dazu die avrdude Software gesaugt und installiert, etc.. 
Damit konnte ich auch bereits einen mC flashen. (Den mC auf dem 
Arduino-Board über die ISP-Schnittstelle).

Ich habe mir den Atmega328p als alleinstehenden IC gekauft, da ist das 
raufspielen des Programms leider nicht mehr so glorreich geschehen. Das 
rüberspielen sowohl in Atmel Studio 7 oder ArduinoIDE.(fehlermeldung 
siehe unten)

Ich bekomme nicht einmal einen kontakt über Kommandozeile aufgebaut:

C:\Users\paul1\Documents\schule\Projekt_ATMEGA328p\Zugriff\avrdude-6.4-m 
ingw32>avrdude  -c usbasp -p m328p -t

avrdude: error: program enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

Ich habe das ganze daraufhin auch mit dem -F Befehl probiert:

C:\Users\paul1\Documents\schule\Projekt_ATMEGA328p\Zugriff\avrdude-6.4-m 
ingw32>avrdude  -c usbasp -p m328p -t -F

avrdude: error: program enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x2e6176
avrdude: Expected signature for ATmega328P is 1E 95 0F
avrdude> q
>>> q

avrdude done.  Thank you.


Meine Frage ist beim ersten Bespiel etwas besonderes zu beachten oder 
ist mein erster IC einfach direkt kaputt?

Vielen Dank schonmal für Antowrten....

von Rainer W. (rawi)


Lesenswert?

Hightiger schrieb:
> Ich habe mir den Atmega328p als alleinstehenden IC gekauft, da ist das
> raufspielen des Programms leider nicht mehr so glorreich geschehen.

Wie hast du den Atmega beschaltet?

von Gerald B. (gerald_b)


Lesenswert?

Hightiger schrieb:
> avrdude: Device signature = 0x2e6176
> avrdude: Expected signature for ATmega328P is 1E 95 0F
> avrdude> q

Es ist eben nicht exakt der 328P. Es gibt da noch den PA und PB und weiß 
der Fuchs, was noch alles.
eXtreme Burner AVR ist eine an einen Hex Editor angelehnte 
Brennsoftware. Die schlägt nach der Fehlermeldung wenigstens noch 
"ignore" vor, so das man trotzdem flashen kann, wenn die Device ID nicht 
die erwartete ist.

von Sebastian R. (sebastian_r569)


Lesenswert?

Wie sieht es mit Clock und den Fuses dazu aus?

Durch das CKDIV-Bit sollte die erste Programmierung der Clock-Fuses mit 
<1MHz SPI-Clock erfolgen

von Hightiger (schilling)


Lesenswert?

Rainer W. schrieb:

> Wie hast du den Atmega beschaltet?

Hi ich habe den Atmega sowohl im arduino Board eingesteckt und über die 
ISP-Schnittstelle.

wie auf dem Steckbrett.
Rst > 1
VCC > 7
gnd > 8
MOSI > 17
MISO > 18
SCK > 19

sowohl mit 16000Mhz Oszilator. Wie auch ohne probiert.

von Hightiger (schilling)


Lesenswert?

Sebastian R. schrieb:
> Wie sieht es mit Clock und den Fuses dazu aus?
>


Wie die fuses aktuell aussehen bin ich nicht in der Lage zu sehen. 
Wieder diese Fehlermeldung:

C:\...\avrdude-6.4-mingw32>avrdude -c usbasp -p m328p -U 
lfuse:r:lfuse.txt:b -U hfuse:r:hfuse.txt:b -U efuse:r:efuse.txt:b

avrdude: error: program enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

> Durch das CKDIV-Bit sollte die erste Programmierung der Clock-Fuses mit
> <1MHz SPI-Clock erfolgen

ist das eins der drei ich im code oben auslesen oder spreche ich das 
noch einmal anders an?

von Rainer W. (rawi)


Lesenswert?

Hightiger schrieb:
> sowohl mit 16000Mhz Oszilator. Wie auch ohne probiert.

16GHz wird der µC nicht schaffen.
Der ATmega328 wird ab Werk mit 1MHz getaktet (8MHz RC mit 1:8 Teiler). 
Dann ist der AVR-Dude mit seinem Default-Clock (IMHO 4MHz) 
wahrscheinlich zu schnell. Setze den SPI-Takt doch mal kräftig runter 
(1/4 vom µC-Clock).

von Veit D. (devil-elec)


Lesenswert?

Hallo,

ich habe in der avrdude.conf praktisch rückwärts gesucht.
Die Signatur 1E 95 0F gibt es für
ATA6614Q
ATmega328P
LGT8F328P

Aber die Signatur 0x2e6176 gibt es nicht. Gesucht nach 0x2e 0x61 0x76.

Wo hast du den ATmega her?

Mach einmal nur Option -v. Was gibt dir avrdude aus?

von Yalu X. (yalu) (Moderator)


Lesenswert?

Die Signature-Bytes der von Atmel/Microchip hergestellten MCUs beginnen
immer mit 1E. Die der Clones vermutlich ebenso, sonst wären es keine
Clones.

Entweder ist ein Clone-Hersteller doch so ehrlich und verwendet seine
eigenen Signature-Bytes (was ich mir nicht so recht vorstellen kann),
oder es gibt Fehler bei der Kommunikation.

Sind die gelesenen Bytes bei wiederholten Versuchen immer gleich?

von Hightiger (schilling)


Lesenswert?

Veit D. schrieb:

> Aber die Signatur 0x2e6176 gibt es nicht. Gesucht nach 0x2e 0x61 0x76.
>
> Wo hast du den ATmega her?

Aliexpress natürlich!

> Mach einmal nur Option -v. Was gibt dir avrdude aus?

C:\...\avrdude-6.4-mingw32>avrdude -c usbasp -p m328p -v

avrdude: Version 6.4
         Copyright (c) Brian Dean, http://www.bdmicro.com/
         Copyright (c) Joerg Wunsch

         System wide configuration file is 
"C:\Users\paul1\Documents\schule\Projekt_ATMEGA328p\Zugriff\avrdude-6.4- 
mingw32\avrdude.conf"

         Using Port                    : usb
         Using Programmer              : usbasp
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page 
Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages 
MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ 
----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0 
3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256 
4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    1      0 
4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    1      0 
4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    1      0 
4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    1      0 
4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    1      0 
0     0 0x00 0x00
           signature      0     0     0    0 no          3    1      0 
0     0 0x00 0x00

         Programmer Type : usbasp
         Description     : USBasp, http://www.fischl.de/usbasp/

avrdude: auto set sck period (because given equals null)
avrdude: error: program enable: target doesn't answer. 1
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.

von Hightiger (schilling)


Lesenswert?

Rainer W. schrieb:
> Hightiger schrieb:
>> sowohl mit 16000Mhz Oszilator. Wie auch ohne probiert.
>
> 16GHz wird der µC nicht schaffen.
> Der ATmega328 wird ab Werk mit 1MHz getaktet (8MHz RC mit 1:8 Teiler).
> Dann ist der AVR-Dude mit seinem Default-Clock (IMHO 4MHz)
> wahrscheinlich zu schnell. Setze den SPI-Takt doch mal kräftig runter
> (1/4 vom µC-Clock).

ja stimmt 16GHz ist wahrlich zu schnell. 16MHz meinte ich 
selbsteverständlich.

Du meinst über die Baudrate ( -b )
Welcher Wert ist da zu empfehlen?

von Hightiger (schilling)


Lesenswert?

Yalu X. schrieb:
> Die Signature-Bytes der von Atmel/Microchip hergestellten MCUs beginnen
> immer mit 1E. Die der Clones vermutlich ebenso, sonst wären es keine
> Clones.
>
> Entweder ist ein Clone-Hersteller doch so ehrlich und verwendet seine
> eigenen Signature-Bytes (was ich mir nicht so recht vorstellen kann),
> oder es gibt Fehler bei der Kommunikation.
>
> Sind die gelesenen Bytes bei wiederholten Versuchen immer gleich?

tatsächlich nicht....

ich habe es ein paarmal rumprobiert. Hier ein paar Ergebnisse. Wobei 
jeder auch öfter vorkam.

Device signature = 0x666c61

Device signature = 0x2e6176

Device signature = 0x656570

von Hightiger (schilling)


Lesenswert?

Rainer W. schrieb:
> Hightiger schrieb:
>> sowohl mit 16000Mhz Oszilator. Wie auch ohne probiert.
>
> 16GHz wird der µC nicht schaffen.
> Der ATmega328 wird ab Werk mit 1MHz getaktet (8MHz RC mit 1:8 Teiler).
> Dann ist der AVR-Dude mit seinem Default-Clock (IMHO 4MHz)
> wahrscheinlich zu schnell. Setze den SPI-Takt doch mal kräftig runter
> (1/4 vom µC-Clock).

Geil!!! SPI Taxt durch (-B 4) runtergesetzt und schon hab ich eine 
Antwort von dem Teil.

C:\.......\avrdude-6.4-mingw32>avrdude -c usbasp -p m328p -t -B 4

avrdude: set SCK frequency to 187500 Hz
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.01s

avrdude: Device signature = 0x1e950f (probably lgt8fx328p)
avrdude> q
>>> q

avrdude: safemode: Fuses OK (E:FF, H:D9, L:62)

avrdude done.  Thank you.


und ich sehe die Fuse Einstellung. und kann sie ändern.
und die Device signature = 0x1e950f beginnt jetzt auch mit 0x1e

Vielen Dank für die Untertützung!!!

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Hightiger schrieb:
> Ich habe mir den USBasp zugelegt


Je nach Firmware:
Der hat einen "slow" Jumper, den man meist erst noch bestücken muss.
Alternativ kann man auch den -B Parameter verwenden.

Zweck: Um den ISP Takt zu verlangsamen.
Dann klappts auch mit deinem neuen ATMega328P

: Bearbeitet durch User
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.