MCUdude / MajorCore

An Arduino hardware package for ATmega8515 and ATmega162
GNU Lesser General Public License v2.1
39 stars 11 forks source link

Bootloading ATMEGA8515L #11

Closed RayyanTahir closed 4 years ago

RayyanTahir commented 6 years ago

Hi, I'm new to bootloading. I followed the instructions with the circuit provided in the details. After running ArduinoISP on ArduinoUno and bootloading to ATMEGA8515L at first I got a message stating that my device was recognized as Device Signature: 0x1e9301 whereas in the config the signature for the microcontroller was set to 0x1e9306 which led the bootloader to stop. I ran the bootloader a couple of times and after a few restarts of Arduino IDE and my PC, the device signature always shows as 0x00000000. Please see the log below:

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\username\AppData\Local\Arduino15\packages\MajorCore\hardware\avr\1.0.1/avrdude.conf"

         Using Port                    : COM9
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega8515
         Chip Erase delay              : 9000 us
         PAGEL                         : P00
         BS2                           : P00
         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         4    20   128    0 no        512    0      0  9000  9000 0xff 0xff
           flash         33     6    64    0 yes      8192   64    128  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          0    0      0     0     0 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

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

avrdude: Device signature = 0x000000 (retrying)

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

avrdude: Device signature = 0x000000 (retrying)

Error while burning bootloader.
Reading | ################################################## | 100% 0.02s

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

avrdude done.  Thank you.

Your help will be appreciated. Thanks

RayyanTahir commented 6 years ago

I tried adding another ATMEGA8515L but when I try to bootload it I get Device Signature: 0x00ff00. The second time I try to bootload it, it gives Device Signature: 0xff0000 and then doing this repeatedly the ff part of the address just changes position of ff like 0xff0000, 0x00ff00 and 0x0000ff. See below for the logs:


avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\rayya_000\AppData\Local\Arduino15\packages\MajorCore\hardware\avr\1.0.1/avrdude.conf"

         Using Port                    : COM9
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega8515
         Chip Erase delay              : 9000 us
         PAGEL                         : P00
         BS2                           : P00
         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         4    20   128    0 no        512    0      0  9000  9000 0xff 0xff
           flash         33     6    64    0 yes      8192   64    128  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          0    0      0     0     0 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Error while burning bootloader.
Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0xff0000
avrdude: Expected signature for ATmega8515 is 1E 93 06
         Double check chip, or use -F to override this check.

avrdude done.  Thank you.
MCUdude commented 6 years ago

Hi! This is most likely caused by an improper connection. Can you post a picture of your physical hardware? You should also check all connections, including the reset line

Eemilp commented 5 years ago

Hi @RayyanTahir

I'm far from an expert but had very similar issue and got it figured out.

Assuming your wiring is correct (do double check it!) it might be that you're running the chip on wrong clock speed. On the ATmega8515 datasheet it says that the L variant is capable of running at only up to 8MHz. Not 16!

It also appears to me that if you select the an external crystal as the clock from the Arduino IDE, it is impossible to communicate with the chip without a suitable crystal connected. (which I obviously didn't have)

I got around this problem by using my Arduino UNO as the ISP with a modified sketch that creates an around 1MHz clock signal on digital pin 3. I plugged this into XTAL1 pin on the 8515L and burned a bootloader successfully. I used the internal 8MHz clock from that point on since clock accuracy wasn't critical for my project.

ArduinoISP_external1mhzclock.zip

I have included the sketch here but, I did not create it. I found it on AVRfreaks forums somewhere.

I hope this is at least somewhat helpful.