AVR/Arduino from the Scratch

From Razmjenavjestina-wiki
Jump to: navigation, search

SIG:Elektronika

AVR/Arduino From Scratch

Kad se kupi novi AVR 8-bitni mikrokontroler, on dolazi potpuno prazan. U njemu nema npr. Arduino bootloadera i zato nam treba elektronički sklop koji ga može programirati od nule.

Odabrali smo za početak DASA (direct AVR serial adapter) kompatibilni programator zbog toga što je najjednostavniji. A vjerojatno i najsporiji kad ide preko običnog usb2serial adaptera. Brzina se postiže originalnim PC serijskim portom ili neobičnim usb2serijskim adapterom sa custom firmwareom za stk500v2 protokol.

DASA može sflashat bilo koji image u AVR, a možemo i postaviti fuse bitove, pogotovo je interesantan "disable reset" bit nakon kojega se AVR više neće moći programirati sa DASA (to je neka vrsta write protecta a ni reset više ne radi).

Ali može ga se vratiti sa HVP, što bi uskoro moglo biti k'o stvoreno za naš slijedeći projekt. Nakon što disableamo resete na svim našim AVR-ovima trebaće nam ovo: AVR High Voltage Serial Programmer

Davorova part lista:

Moja shema za dasa-kompatibilni programator (direktno AVR serijsko programiranje) treba:

Osnovni alat:

(Vedran si je kupio neka za 124.01 kn u Chipoteci, Davor kaže da može i jeftinije)

Dijelovi:



Shema sa štampanom pločicom se otvara sa programom eagle (apt-get install eagle), ali imamo i Shemu u PDF. Na lijevom dijelu je stabilizator napajanja 7805 - može se zamijeniti sa gotovim stabiliziranim izvorom 5V/150mA (charger za mobitel 5V, napajanje 5V iz USB porta kompjutera ili USB chargera, može više mA samo ne više V ili baterija od 4.5V recimo 3x1.5V). Kondenzator 1uF solid state spojiti blizu na AVR-ov VCC (+) i GND (-), po mogućnosti ne predugim žicama i paziti na polaritet. Na kondenzatoru piše mali (+) pokraj izvoda koji ide na (+). Desni dio, tj. onaj koji ide iz serijskog porta spojiti na svoj model AVR-a (naći MISO, MOSI, SCK, RESET, VCC i GND na datasheetu). Obratiti pažnju da AVR-ovi često imaju dva VCC i dva GND - sve ih treba spojiti na plus (+) i minus (-) napajanja. Većinom radi bez schottky dioda, ovisno o serijskom portu i vodljivom naponu zener dioda (oko 0.6-0.7V), ali... Negativni napon na pin-u AVR-a veći od -0.7V u kombinaciji sa jakim 5V napajanjem može dovesti do tiristorskog efekta na substratu chipa -> svi pinovi AVR-a postanu vodljivi -> povuče jaku struju iz napajanja -> pregrije se -> ispusti famozni Bijeli Dim, od kojeg su sve komponente napravljene. Zato su schottky diode sa svojim naponom manjim od 0.3V veoma korisne.

30.10.2009 napravili smo dva sistema na 2 protoboard-a: Jedan sa attiny84, jedan sa atmega16.

ATMEGA16 datasheet (23.41 kn u Chipoteci): http://www.atmel.com/dyn/resources/prod_documents/doc2466.pdf

ATTINY84 datasheet (nema ga u ZG za kupit, možda netko može nabavit): http://www.atmel.com/dyn/resources/prod_documents/doc8006.pdf


Softverski dio priče:

apt-get install gcc-avr avr-libc avrdude

Hello world AVR svijeta (blinkenlights LED na pinu PB0):

#include <avr/io.h>
#include <stdlib.h>

#define LED (1<<PB0)

void main()
{
 int i;
 unsigned char t = LED;

 DDRB = t;

 for(;;)
 {
   PORTB = t;
   t ^= LED;
   for(i = 0; i < 10000; i++);
 }
}

za ATMEGA8 ili za ATMEGA16 ili za ATTINY84 i spojiti ga prema fajlu connections.txt

evo kako to izgleda sa ATMEGA16:
IMG_9221.JPG
ili ATTINY84 ovako:
attiny84-dasa.jpg
i ATMEGA8 radi sa schottky diodama ovako:
atmega8-dasa.jpg

Slični projekti:

http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard#toc9 - ali mi ne trebamo AVR programmer! (naravno mi još moramo riješiti kako pričati sa AVRom nakon što smo stavili softver, tj dobiti podatke iz njegove memorije.



Evo što se još može napraviti sa AVRom (Atmega644):

http://rossum.posterous.com/avr-homebrew-device-with-iphone-aspirations

Zanimljiv link na usenet diskusiju:

http://groups.google.com/group/hr.sci.elektronika.mikrokontroleri/browse_thread/thread/a549e18bbfc7a367/98d14ac6c1877c86#98d14ac6c1877c86

USBasp - USB programmer for Atmel AVR controllers http://www.fischl.de/usbasp/

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox
Razmjena Po Gradovima