Showing posts with label AVR. Show all posts
Showing posts with label AVR. Show all posts

Monday, May 10, 2010

Simple Serial Programmer for AVR

This is a very simple and easy to build programmer for Atmel microcontrollers from AVR family. The microcontrollers must support serial programming. This programmer is connected to a PC through the RS232 serial interface and can be used with the PonyProg or Avrdude software programmer.



Description of the serial programmer:
The programmer is quite simple and it is based on the SI-Prog from the author of PonyProg software. The Zener diodes D2, D3 with the resistors R2, R3 reduce the voltage from the ouput pins DTR, RTS on the serial port to around 5V which is suitable for microcontroller (MOSI, SCK). MISO signal is connected directly to the input CTS pin. The Zener diode D1 with the resistor R1 drive the NPN transistor T1, which controls RESET signal. The AVR microcontrollers are in reset when the signal has low level. The resistor R5 works as a pull-up for reset signal. The resistor R4 helps to close the transistor T1. The programmer has standard 10 pins header.

Schematic of the serial programmer


Assembly diagram


PCB (top side)


PCB (bottom side)


Panelization (When you need more pieces.)


Assembled PCB (top side)


Attention:
The transistor T1 should be in opposite position then is depicted in the assembly diagram.
Please check the position of Base-Colector-Emitor on your transistor.

I use this programmer for programming Attiny13, Attiny26, Attiny2313, Atmega48, Atmega88, Atmega168, Atmega16 and it works very well. I also use the programmer with desktop computer, laptop, with and wihout USB-to-RS232 adapter and it works in all cases.


Using PonnyProg2000:
When you want to program your microcontroller with the PonnyProg2000 you have to setup the program as you can see on the following picture. You have to select chosen COM port, where is connected your programmer.

Ponyprog I/O port setting


Using Avrdude:
When you want to program your microcontroller with Avrdude you have to select the keyword "ponyser" as a programmer type and appropriate COM port. I'm using this method to program my microcontroller directly from the Atmel AVRstudio when I'm debuging my application. I create a batch file with the command for the avrdude and I call the batch file directly from the tool bar. It is very fast and easy. Avrdude is also part of the WinAVR package.

Microcontroler programming by avrdude


Programming header reduction:
Sometimes you have to program microcontroller in a aplication where is only 6 pins header instead of 10 pins. I created small adapter for this purpose. The adapter has 10 pins header, 6 pins header and 6 pins header in one line. 6 pins header in line is useful when you want to bring the signals to the breadboard.

Schematic of the programming header reduction


Assembly diagram


PCB (bottom side)


Assembled PCB (top side)


With this equipment you should be able easily program your AVR microcontrollers. Good luck.

Source: http://diy4fun.blogspot.com/2009/01/simple-serial-programmer-for-avr.html

Saturday, May 8, 2010

ATmega48/88/168 Development Board

This is versatile development board for AVR microcontrollers ATmega48/88/168. It is good for testing and debugging embedded programs. It has many built-in peripheries connected to microcontroller so you can use them without soldering. ATmega microcontrollers are produced by ATMEL and they include a lot of features: I/O, Timers, PWM generators, ADC, RS232, TWI, SPI, Analog Comparator, Oscillator, EEPROM… These microcontrollers are very versatile, easy to program and easy to use. This is the reason why I like these microcontrollers and why I decided to make development board for them.




The development board consists of:

1. ATmega AVR microcontroller in DIP28 package
The development board is designed to use ATmega48 with 4kB flash memory or ATmega88 (8kB), ATmega168 (16kB). New version of these microcontrollers ATmega48P/88P/168P and ATmega328P (with 32kB) are pin compatible with old version, so they can be used also.

External crystal X1 is placed in socket, so it is easy to change it or remove it. If internal oscillator is used then two PB6 and PB7 pins dedicated for crystal can be connected to the Port B connector.

Microcontroller can be reset by pressing reset button S1.


2. AVR Ports B, C, D headers
If built in peripheries are not used another device can be connected to the PORT B, C and D. Each port is connected to the 10-pin header. You could connect LCD display, Rotary Encoder, SD Card Reader, etc. with microcontroller. See my future posts.


3. 5V Power supply
Both AC and DC voltage can be plugged in, because of using rectifier bridge. Input voltage can be connected to 2.5mm power jack connector or screw terminal. Power can be switch on / off by SW1. Power supply voltage is stabilized by common IO 7805. When the power is switch on red LED6 is lighted.


4. 4x LEDs
Four green LEDs can be connected to the Port D shorting jumpers JMP6-9.


5. 4x Buttons
Four buttons are connected to the Port B.


6. Piezo
Piezo speaker can be connected to pin PB1 through JMP5.


7. ADC accessories
The microcontroller has built-in 10bits AD converter. On the board is LC filter for power supply of this ADC. You can use internal or external reference. The rotary trimming resistor R2 is connected to Aref input for playing with the external reference.


8. Potentiometer
For simulation of varying ADC input voltage the rotary trimming resistor R1 can be connected to PC1 (ADC1) through JMP12.


10. Temperature sensors
If you want to play with temperature sensor, you can connect temperature sensor with either analog or PWM output. Temperature sensor with analog output can be connected to the PC0 (ADC0) through JMP10. Temperature sensor with PWM output can be connected to the PB0 through JMP11.


10. RS232 line
Standard serial interface is placed on the board. Level shifter MAX232 is used. MAX232 has two receiver and two transmitter lines. You can connect RXD and TXD of RS232 with RXD and TXD of microcontroller with help of config header. RTS and CTS of RS232 can be connected with PD6 and PD7 through JMP3 and JMP4. See config header part.


11. Config Header
Config header allows interconnect different I/O microcontroller pins with RS232 line or with screw terminal.


12. Srew terminals
Screw terminals allow easily connect wires to microcontroller. Through this terminal you compose for example frequency counter of voltmeter, etc. Ground and 5 Volts are also presented on screw terminal.


13. ISP
Development board includes serial port interface to allow direct in-system programming (ISP). Microcontroller can be programmed trough RS232 serial port by using program Pony Prog or Avrdude (ponyser). To avoid interference with RS232 signals, programmer can be disconnected using analog switches 4066. These switches can be closed manually by SW2 or automatically when the reset is active (using JMP13).


14. Mounting Holes
In each corner of PCB is placed one ΓΈ3.2mm mounting hole.




And the result ...

Assembly diagram

Top Side

Bottom Side

LINKS:
Following web side inspired me to build the development board.
AVR Development and Application Boards

You can download this project including whole schematic, assembly diagram and PCB.
ATmegaa48 Development Board

Source: http://diy4fun.blogspot.com/2008/04/atmega4888168-development-board.html

Thursday, April 8, 2010

RF remote control using microcontroller AVR


Using remote control make our work more easier. like turn off Air conditioner, change channel TV, play your home theater and more. There are many type of remote control like Infrared, Radio Frequency, SMS and more. To control device behind the wall like garage door you can only use Radio Frequency remote control. Because the other can not bypass the wall.

Here is RF Remote control using microcontroller created by serasidis. There are two part in this electronic project : transmitter and receiver. The transmitter is constituted by AT90S2323 microcontroller and TLP434 RF transmitter module at 418MHz. the transmitter designed for battery economy use and safe transmition of the data. The receiver constituted by RF receiver module RLP434A at 418MHz, the microcontroller AT90S2313 and the 2 relays with can handle any electric (or electronic) device up to 10 Amps (the contacts of my relays are 10Amp at 250Volts).For antenna you can use a cable 30 - 35cm long.

Download here for documentation, firmware, source code and schematic.

Source: http://new-pic-controller.blogspot.com/2010/03/rf-remote-control-using-microcontroller.html