Following pins of Atmega16 is used in programmer circuit-
Pin NO. | Description |
6 | MOSI (SPI Bus Master Output/Slave Input |
7 | MISO (SPI Bus Master Input/Slave Output) |
8 | SCK (SPI Bus Serial Clock) |
9 | Reset |
10 | Vcc |
11 | Ground |
Table-Atmega16 Pins
• SCK – Port B, Pin 7
SCK: Master Clock output, Slave Clock input pin for SPI channel. When the SPI is enabled as a Slave, this pin is configured as an input regardless of the setting of DDB7.When the SPI is enabled as a Master; the data direction of this pin is controlled by DDB7. When the pin is forced by the SPI to be an input, the pull-up can still be controlled by the PORTB7 bit.
• MISO – Port B, Pin 6
MISO: Master Data input, Slave Data output pin for SPI channel. When the SPI is enabled as a Master, this pin is configured as an input regardless of the setting of DDB6. When the SPI is enabled as a Slave, the data direction of this pin is controlled by DDB6. When the pin is forced by the SPI to be an input, the pull-up can still be controlled by the PORTB6 bit.
• MOSI – Port B, Pin 5
MOSI: SPI Master Data output, Slave Data input for SPI channel. When the SPI is enabled as a Slave, this pin is configured as an input regardless of the setting of DDB5. When the SPI is enabled as a Master, the data direction of this pin is controlled by DDB5. When the pin is forced by the SPI to be an input, the pull-up can still be controlled by the PORTB5 bit.
• RESET-Pin 9
Reset Input. A low level on this pin for longer than the minimum pulse length will generate a reset, even if the clock is not running.
• VCC -Pin 10
Digital supply voltage(+5V).
•GND-Pin-11
Ground.
Following Pins are used in parallel port-
Pin No. | Description |
7,8,9 | Data pins |
10 | Status pin |
19 | Ground |
Interfacing -
In programmer circuit pins of parallel port which are above described has to interface with pins of ATmega16 microcontroller which are responsible for in-system programming. The parallel port can be interfaced directly with microcontroller. To avoid reverse current we can use Schottkey diodes as safety precaution for pc motherboard.
Following pins of
| Atmega16 |
Pin 7 | Reset (Pin 9) |
Pin 8 | SCK (Pin8) |
Pin 9 | MOSI (Pin6) |
Pin 10 | MISO(Pin7) |
Pin 19 | Ground(Pin11) |
Interface Connections
Fig-Circuit Diagram of ATmega16 Programmer
Fig. The Snapshot
SOFTWARES USED:
WinAVR– WinAVR is open source package in which we use two sub-programs
Programmers Notepad & Mfile.
Version- 2.0.8.718-basic
Creator- Simon Steele
Purpose- 1. To write code.
2. To compile coding.
3. To generate Hex Code.
4. To burn Hex code.
The next tutorial will make you aware with how to install and use WinAVR for compiling and burning the program.
For a very good Tutorial on AVR USB Programmer, follow this link:
http://www.embedautomation.com/lectureseries
Regards:
Aditya Sharma
(http://robozeal.blogspot.com)
31 comments:
hi i've build the circuit exactly... i've checked the connections.... everything seems to be alright.... but when i do the prob test after connecting the programmer to the printer port it says test failed.... any suggestions???
i also ignored the msg nd proceed with writing the program but it says device missing... error code -24.... any suggestions.... i'm using pony prog....
Pony prog is a serial device programmer it will not work with this parallel port circuit. Why don't you use WInAVR. I have posted a detailed tutorial on this as well and that will surely work.
do you have anything on serial port programmer for atmega32?..i've tried pony prog but still can't do it..i've been looking for that type of programmer and your explanation is easier to understand and to follow the steps to program the avr..hopefully u can post it...
and one more thing..what's the different using parallel or serial?..or it's just simply a methods that we can choose?..which is easier?..thanks in advance
If you are a beginner i will prefer that you should go for the Parallel port programmer, you can just design the circuit on the breadboard and it will do.
You can go for the serial port programmer through USB about which i have already provided the link in the post. It will work with Ponyprog.
Serial and Parallel port ones are both better in there own applications, the USB is the latest technology we use for serial comm. Parallel ports are obsolete and even latest desktop computers didn't provide parallel port interface.
Tell me please how to connect the Schottkey diodes in the circuit. A Schottkey with 5V and 1A is good? Should I use these diodes for all five connections between the parallel port and the controller?
Thanks in advance
Connect the diodes in reverse biased to the PC parallel port. Connecting to MISO and MOSI and pins will be enough.
Can I use Avrstudio for parallel programming the uc?
Actually their are various kinds of programmers and the one given here in this post is "bsd programmer". AVRStudio does not support programming through this device. You may look out for other programmers in STK series which are parallel port programmers and are supported by AVRStudio.
Hello again,
I wrote a program using programmer's notepad(from WinAvr) and I made the makefile, but now I don't know how to compile the program to run it with AVR Insight. And then I would ask you how to burn it to the microcontroller(via parallel port of course). And how do i generate the hex code after compiling?
Thanks in advance,
Etienne
Hi,
I think it works. I made an error in configuring the makefile. I compiled the program with Tools->[WinAVR]Make All and it generates some files with .hex, .o, .elf, .eep etc. To burn the uc i have to use Tools->[WinAVR]Program? It will automatically load the hex file in the uc? And how to use Insight? I can use it only after burning the uc?
Thank you,
Etienne
Sorry for the late reply..
I have not mentioned anywhere to use AVR Insignt.. not getting exactly what your doubt is..
If you have successfully generated the hex file and installed the software exactly as mentioned in the tutorial, the code must be burned directly by the Programmers Notepad only.. Make sure that you have saved the makefile in the folder where your other files are. Do elaborate your further queries
sir
i an a bigner in this field i want your guid lines .i want know which book i have to use?
Their no specific books for learning all these, If you are a beginner you can refer to "Mazidi"-Its a good book for 8051 family of microcontrollers. Otherwise net is the best place to learn.
In computers, ports are used mainly for two reasons: Device control and communication. We can program PC's Parallel ports for both. Parallel ports are mainly meant for connecting the printer to the PC. But we can program this port for many more applications beyond that.
hello
my pc doesn't hav parallel or serial port..
the how program the MCU
pls reply
at feelpavan@yahoo.co.in
You can make a USB programmer give at this link..
http://www.fischl.de/usbasp/
Hii Aditya Sharma.
Can you help me to control printer dot matrix use ATmega16 with program C??
can you help me.... please... :((
hey can u help me in interfacing matlab to atmega16..i want to send some data to atmega16...
@ amod
You can user the serial port to interface the Atmega16 (USART port). Look for serial port control through MATLAB. Revert back if further assistance needed.
Hi,
I have an line follower circuit of ATmega16,But,I am little confused about it..I don't know what the symbol that i have marked on the circuit dig means (circuit dig url is posted at the bottom)Whether its an parallel port programmer or USB???If it is a parallel port programmer,How will be the connection to DB25???What should i do with the pins 3,6,8,10 which is grounded,Should i simply leave it using only 7,9,1,5,2 pins for DB25???Please reply..
Thank you!
URL to circuit dig :http://www.playback2.sixserve.com/Download/untitled.JPG
hi...i few doubts abt this circuit...should we compulsory use schoottky diodes and i'm using windows7 actually i'm unable to install completely regarding running cms in the cmd.exe window...please reply me sir
hi,
i m using winavr programmer.
to makefile which programmer should we consider is it stk200...
also while burning as per ur connection..
it shows error , even though its
hex is created error free.
plz help...
hai
this is shekar from hyd
i didd my mini project hardware part completed
while compling program i winavr
getting errors iam attachig progm
plz send it to my mail by making necessary corrections my mai is shekark1409@google.com
source program:
Robit.c
#include
void main(void)
{
unsigned int k,h;
DDRA=0x00;
DDRD=0XFF;
while (1)
{
k=PINA;
h=k & 0x0f;
switch (h)
{
case 0x02: //if I/P is 0x02
{
PORTD=0x89; //O/P 0x89 ie output one
break;
}
case 0x08: //if I/P is 0x08
{
PORTD=0x86; //O/P 0x86 ie output two
break;
}
case 0x04:
{
PORTD=0x85; //O/P 0x85 output three
break;
}
case 0x06:
{
PORTD=0x8A; //O/P 0x8A output four
break;
}
case 0x05:
{
PORTD=0x00; // STOP
break;
}
}
}
}
sir i have .hex file with me. i downloaded form internet for gsm controlled robot.
i did parallel port connection as u said in breadboard.
i connected to pc.
but i can't burn the hex file into my atmega16.
how do i do this plz help me.
i tried almost all programming softwares..
and even serial port connection that also dint workout.
how do i know that uc is connected wen i connect in parllel port?
i don know what mistake i have exactly made..
Will you please send me a circuit for usb interfacing
Mail me @ sridardhiyagu@gmail.com
This was brilliant stuff! Thanks for the write up! You can Download any laserjet drivers from HP LaserJet p1102 here!
Hi frnd....i m a b.tech.2nd year student(ece). i m interested in robotics .i hv some knowedge about basic robotics(made:-power supply,automatic street light etc.)& microcontroller atmega8,ATMEGA16( made:-development board,working on line follower )....but i want advance knowledge in robotics field .so i want summer course(may,june)for advance robotics,circuit design,embeded system...PLZ guide me &tell some institutes name which are offering
summer course..
plz send information on my id
e-mail: ram.singathiya@gmail.com
Ram das where you live first tell, so I let you know that which ins is gud for you.
info@projectsmaker.com
can v use it for atmega8 also?
hi
I have made an Arduino severino S3V3 as given in this site http://arduino.cc/en/Main/ArduinoBoardSerialSingleSided3.But the problem here is a iam able to burn the bootloader to the uc through isp on the severino via usbasp but the bootloader gets erased after the power is disconnected soon after some seconds.The programs run fine. i upload the programs using arduino IDE but if i remove the power after burning the bootloader and uploading program, it gets erased and doesnt run the uploaded program and i have to burn the bootloader again. Bootloader file - arduino-1.0.3\hardware\arduino\bootloaders\atmega folder (ATmegaBOOT_168_diecimila). i use USBasp programmer and avrdude for burning the programs.
The code i used to burn the bootloader is
avrdude -c usbasp -p m168 -u -U flash:w:ATmegaBOOT_168_diecimila.hex
Please help me out...
I wish to drive circuit through matlab making the same connection through parallel port using Atmega16. Will it be possible? please suggest me what shall I do?
Post a Comment