Hi Team,
I am new to arduino IDE & IoT. I am using arduino IDE - 1.8.4 software.
My aim is to upload the blink program to ATMega16. I have used USBasp to upload the program to ATmega16. I fetched sample program from File->AVR C code Examples -> blink. This program uploaded using avrdude commands without any issues in my atmega16. This worked as well. Created hex files in arduino by compiling and then uploaded using below avr commands in command prompt. This ensures that my connections and chip is working fine without any issues.
I like to use arduino program like using simple keywords (digitalWrite etc., ) instead of the C code. Hence I have installed MightyCore (since this is the one I got in google to install ATmega16) in my preferences.
Issue is my blink program in Arudino language is not working. I have followed below steps.
Choosed Tools ->Boards -> ATmega16(mightycore) and programmer as USBasp.
Clicked upload button without connecting USBasp to my computer to create the hex file.
Then this hex file was used to upload into ATmega16 using command prompt avrdude commands. Now my blinking program didn't work. I am not sure what I have missed here.
I have ended up with few queries.
Which digital pin connected with which pin of ATmega 16 ? - Note - I tried plug in my led to all the pinout of Atmega16
I am receiving below error when I clicked burn bootloader in Arduino IDE. But I am able to upload program using avrdude commands. What went wrong when I use arduino IDE ?
Arduino: 1.8.4 (Windows 10), Board: "ATmega16, Standard, 2.7v, Disabled (default), 1 MHz internal"
C:\Users\kavig.LAPTOP-2AR9L79K\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\kavig.LAPTOP-2AR9L79K\AppData\Local\Arduino15\packages\MightyCore\hardware\avr\1.0.8/avrdude.conf -v -patmega16 -cusbasp -Pusb -e -Ulock:w:0x3f:m -Uefuse:w:{bootloader.extended_fuses}:m -Uhfuse:w:0xd4:m -Ulfuse:w:0b10100001:m
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\kavig.LAPTOP-2AR9L79K\AppData\Local\Arduino15\packages\MightyCore\hardware\avr\1.0.8/avrdude.conf"
Using Port : usb
Using Programmer : usbasp
AVR Part : ATmega16
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PA0
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 10 128 0 no 512 4 0 9000 9000 0xff 0xff
flash 33 6 128 0 yes 16384 128 128 4500 4500 0xff 0xff
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 0 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
calibration 0 0 0 0 no 4 0 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.
Error while burning bootloader.
I found the root cause of my issue. Somehow i have set external clock spead as 16 Mhz instead of internal 8Mhz or 1 Mhz. This made my chip to listen only 16 Mhz. I was using ATMega16 with 8 Mhz internal clock speed.
So I have purchased crystal 16 Mhz (XTAL) and connected between XTAL2 and XTAL1.
Then I have tried uploading program by using setting internal clock speed of 1Mhz. This worked for me.