Podstawy

1. Czytanie schematów

Symbol Oznaczenie Nazwa Przykład
 - Połączenie przewodów
 - Skrzyżowanie (przewody nie łączą się)
Vcc Napięcie zasilające  
GND Masa  
R Rezystor
C Kondensator
C Kondensator elektrolityczny
D Dioda
D, LED LED
Q, X, XTAL Oscylator kwarcowy
T, Q Tranzystor
U, IC Układ scalony

 

2. Podstawowa zależność (Prawo Ohma)


Źródło: Wojciechowski J. - "Elektronika dla wszystkich", WKiŁ 1975


Prąd, napięcie, natężenie ze starego szwedzkiego podręcznika elektroniki. - Bardzo prosta ilustracja :)

 

3. Płytka uniwersalna - połączenia wewnętrzne

 

4. Stabilizator liniowy

Przykładowa aplikacja:

Wartość kondensatorów elektrolitycznych zwiększamy gdy prąd pobierany jest "skokami", pobieramy prąd bliski maksymalnemu prądowi stabilizatora, lub po prostu stabilizator podłączony jest dłuższym przewodem. W przypadku podłączania do mostka Gretz'a, kondensator elektrolityczny na wejściu powinien mieć znaczną pojemność (przynajmniej 1000uF na każdy amper pobieranego prądu), a napięcie pracy kondensatora powinno być większe lub równe 1,41*napięcie AC przed prostownikiem.

Moc wydzielana na stabilizatorze w postaci ciepła:

P = (Uin-Uout)*Iout

Np. wchodzi 14V, wychodzi 5V, pobieramy 0,5A:

P = (14-5)*0,5 = 4,5W.

 

5. Czego potrzebujemy do uruchomienia mikrokontrolera?

Po sprawdzeniu opracowanego prototypu z płytką stykową i modułem Arduino, można zdecydować się na budowę odrębnego urządzenia. W takim przypadku (o ile tylko zapewnimy źródło taktowania i nie potrzebujemy połączenia USB) możliwe jest zastosowanie zamiast pełnego modułu Arduino tańszego samego mikrokontrolera Atmega328 (lub nawet Atmega8):

Niniejszy schemat zawiera wyprowadzenia do programowania przy użyciu modułu Arduino pozbawionego mikrokontrolera: PROG_RST (Reset), PROG_RX i PROG_TX. Podczas programowania należy również dołączyć do układu zasilanie (PROG_V) i masę (PROG_G). W przypadku wykorzystania linii RX i TX we własnym zastosowaniu, można zastosować dwie podwójne zwory, zakładane na czas normalnej pracy urządzenia, a usuwane podczas programowania - w razie zapisu nowego programu na wyprowadzenia zworek bliższe mikrokontrolerowi dołączane jest Arduino z usuniętym mikrokontrolerem.
Uwaga: Jeżeli układ pobiera dość duży prąd na linii 5V, warto zastosować również zworę na zasilaniu mikrokontrolera by nie przeciążyć Arduino/USB/stabilizatora Arduino.

W celu łatwiejszego przeniesienia prototypu na własną konstrukcję, wyprowadzenia mikrokontrolera odpowiadające wyprowadzeniom modułu Arduino Uno można odczytać z poniższej tabelki:

Pin Arduino UnoPin Atmega328Uwagi
02Również Rx do RS232, programowania
13Również Tx do RS232, programowania
24-
35-
46-
511-
612-
713-
814-
915-
1016Również ISP SS
1117Również ISP MOSI
1218Również ISP MISO
1319Również ISP SCK, LED
AD023-
AD124-
AD225-
AD326-
AD427-
AD528-

 

6. Programujemy mikrokontroler poza Arduino

Najprostszym programatorem jest programator BSD, podłączany pod port równoległy. Opis budowy można znaleźć np. na tej stronie. W większości przypadków warto jednak dać rezystory 470 Ohm - 1K przed piny MOSI, MISO i SCK. Zabezpieczy to port. Nie należy wkładać układu przy włączonym komputerze - albo wkładamy całość programatora z chipem, albo robimy montaż przy wyłączonym komputerze. W przeciwnym wypadku można uszkodzić port lub mikrokontroler. Wiele programatorów obsługiwanych jest przez program AVRDude. Krótki opis programowania:

avrdude -p m328p -c bsd -e
avrdude -p m328p -c bsd -U flash:w:cpu.hex
avrdude -p m328p -c bsd -u -U lfuse:w:0xFF:m -U hfuse:w:0xC9:m

Linie te po kolei powodują:
- Wyczyszczenie zawartości układu.
- Zapisanie do układu zawartości pliku cpu.hex. Jeżeli chcemy wgrać i zawarotśc EPROM'u, używamy -U eeprom:w:eeprom.hex
- Ustawienie fuse-bitów: Niski: 0xFF, wysoki: 0xC9. Po takim ustawieniu nie będzie można już mikrokontrolera zaprogramować o ile nie dostarczy się mu źródła taktowania na wyprowadzenia XTAL. W przypadku programowania często wystarczajace jest wetknięcie oscylatora w otwory podstawki programatora wraz z układem.

UWAGA: W przypadku programatora na port równoległy pod Linuksem należy uruchamiać avrdude z poziomu administratora (np. przez sudo). Dzięki temu mamy dostęp do portu równoległego i odpowiednie odstępy czasowe są zachowane.

Jeżeli programujemy ATMega8, zmieniamy m328p na m8. Typ programatora zmieniamy z "bsd".

 


2015/16 mgr inż. Marek Wilkus, Ostatnia aktualizacja: 20160304