Mini płytka testowa ATMega8 AVR dla początkujących – moduły

Początek: Kliknij

Poniżej prezentuję przykładowe zdjęcia użycia płytki testowej.

board_lcd
Podłączenie wyświetlacza LCD 16*2

board_keypad
Podłączenie klawiatury membranowej 4×4

board_encoder
Podłączenie enkodera

Przykładowe moduły. Modułami nazywam drobne układy, które mogą współpracować z MCU i są wykonane tak, aby ułatwić ich podłączenie.

usb_supply
Kabel zasilający układ z USB.

led_ir
Dioda nadawcza IR wraz z rezystorem ograniczającym. Można podłączyć bezpośrednio pod 2 piny MCU.

ds1307_rtc
Zegar RTC na DS1307. Podłączany poprzez I2C (TWI).

24lc08_eeprom
Pamięć 24lc08 (1KB). Podłączana poprzez I2C. Wystarczą 4 przewody: GND, VCC, SDA, SCL.

Możliwości jest o wiele więcej. Szczególnie polecam zakupy na portalach aukcyjnych, wyszukując pod hasłem „arduino” gotowe moduły, które można wykorzystać do nauki. Aktualnie posiadam dalmierz ultradźwiękowy HC-SR04 oraz klawiaturę membranową.

Jeśli będzie zainteresowanie, opiszę jak wykonać i wykorzystać różne moduły.

Mini płytka testowa ATMega8 AVR dla początkujących – montaż

board_top
Kontynuacja informacji o płytce testowej.

Wykaz części oraz orientacyjny koszt (nie zawsze da się kupić po 1 sztuce)

  • podstawka DIL28 (0,20zł)
  • procesor – polecam ATMEGA8A (4,20zł)
  • kondensator 10-100uF/16V (0,08zł)
  • dioda LED 3mm, kolor dowolny (tu: niebieska) (0,30zł)
  • Tact Switch 3x6mm, h=4.3mm (0,16zł)
  • dławik 10uH φ3x7mm (0,10zł)
  • Wtyk IDC 10pin prosty (0,30zł)
  • Gniazdo goldpin proste (0,50zł)
  • Wtyk goldpin prosty (0,40zł)
  • 2x Kondensator SMD 18pF, obudowa 1206 lub 0805 (0,10zł)
  • 3x Kondensator SMD 100nF, obudowa 1206 lub 0805 (0,15zł)
  • Rezystor SMD 10K, obudowa 1206 (0,03zł)
  • Rezystor SMD 1K (ograniczenie prądu LED’a, można użyć dowolnego w zakresie 560R-100K, ja użyłem 30K i i tak jasno świeci), obudowa 1206 (0,03zł)
  • 2xRezystor 470R (może być pomiędzy 0-1K) (0,05zł)

Dodatkowo:

  • Kilka przewodów do zworek; odcinek 5cm 8-żyłowej skrętki w zupełności wystarczy (<0,01zł)
  • Laminat o wymiarach 75x35mm (0,58zł)

Podsumowując, koszt wykonania płytki to 7,19zł.

Niech nikogo nie przerażą użyte elementy SMD. Dzięki ich wykorzystaniu, płytka jest sporo mniejsza, jest mniej wiercenia, a wykonanie układu jest tańsze. Wszystko da się polutować zwykłą lutownicą za 30zł, używając zwykłej grubej cyny 1mm. Wystarczy pęseta, jakaś lupa i trochę staranności. W razie potrzeby można wykonać prowizoryczny topik w płynie, w postaci gęstego roztworu kalafonii w denaturacie lub izopropanolu.

Elementy SMD, dłuższe zworki oraz wybrane złącza Pinów (u mnie PortB oraz PortC) lutujemy od strony druku. Popzostałe elementy tradycyjnie.
Widok płytki od spodu
Schemat montażowy

Mini płytka testowa ATMega8 AVR dla początkujących – opis

board_lcd
Przedstawiam Wam zaprojektowaną przeze mnie płytkę pod mikroprocesor ATMega8 (ATMega8A, ATMega48/88/168/328) w wersji DIP. Płytka powstała w celu ułatwienia nauki mikroprocesorów z wykorzystaniem płytki stykowej.
Możliwości i cechy:

  • Niska cena (kilka zł)
  • Niewielkie wymiary
  • Złącze IDC/KANDA daje wygodę programowania. Płytka powstała przede wszystkim dlatego, że miałem już dosyć podpinania pojedynczych kabelków złącza ISP pod płytkę stykową. Tutaj wpinasz taśmę w gniazdo, i wszystko od razu działa. Płytka może być zasilana z tego gniazda, a dodatkowo testowany układ.
  • Wyprowadzone wszystkie piny I/O procesora. Nie ma ograniczeń. Dodatkowo, pominąłem piny zasilające, dzięki temu oszczędzamy sporo miejsca na płytce stykowej, związanej z niewygodnym rozłożeniem zasilania po dwóch stronach układu scalonego. Piny zostały zgrupowane w 3 złącza.
  • Obsługa różnych modeli procesorów. Działa z ATMEGA8, ATMEGA8A, ATMEGA48/88/168/328, i bardzo możliwe, że z jakimiś jeszcze.
  • Złącze RS232. Bardzo ważne i przydatne. W standardzie TTL, czyli na napięciach takich jak procesor. Dzisiaj mało który komputer ma złącze RS232, ale znowu wystarczy kupić za $0.99 na eBay konwerter USB-RS232, i wszystko śmiga. Łatwo debugować program, nie trzeba podpinać i obsługiwać wyświetlacza. Piny Rx i Tx zabezpieczone poprzez rezystory, więc w razie zwarcia nic się nie stanie. Dodatkowo układ można zasilać z przejściówki USB.
  • Poprawne zasilanie. Płytka posiada kondensatory filtrujące 100nF przy końcówkach zasilających.
  • Filtrowanie części analogowej. AVCC zasilane poprzez dławik 10uH, własny kondensator filtrujący. Dodatkowy kondensator podłączony do wejścia Aref.
  • Wyjście zasilania części analogowej. Podpinając układ pod ADC, możesz wykorzystać filtrowane zasilanie wyprowadzone na płytce za pomocą dodatkowego gniazda.
  • Wygodna współpraca nawet z najmniejszą płytką stykową. Płytka widoczna na początku kupiona została na e-bay za niecały $1 wraz z przesyłką, która posiada 170 pól stykowych. W zupełności wystarczy do zmontowania wielu układów. Bez mojej płytki testowej po wpięciu procesora mamy na start zajęte 14 z 17 rzędów pinów po każdej stronie. Z moją płytką nie musisz wpinać nawet jej w styki, albo możesz wpiąć np. 5 pinów PortB.1-PortB.5, a resztę wykorzystać po swojemu. Na fotografii wstępnej widać, że bez problemu podłączyłem wyświetlacz LCD 16*2. Dodatkowo spokojnie mieści się np. zegarek RTC na DS1307, i jeszcze jest miejsce.
  • Możliwość wymiany kwarcu. Domyślnie MCU pracuje na wew. oscylatorze, ale jak trzeba, można włożyć dowolny zewnętrzny w przewidziane gniazdo. Kondensatorki 18pF są już na swoim miejscu.
  • Opisane złącza. Kilka naklejek na płytkę, a zaoszczędzisz wiele czasu zaglądania do noty katalogowej. Nazwy pinów I/O, a także drugorzędna funkcja. Tyle, ile się zmieściło.
  • Przycisk RESET. Przydatny podczas testów. Poprawne wpięcie Tact-switch’a w płytkę stykową jest praktycznie niewykonalne i bardzo frustrujące. Tu jest już na miejscu. Sam pin Reset podciągnięty do „plusa” poprzez rezystor 10K.
  • Łatwość wykonania płytki. Płytka jest jednostronna, o dość szerokich ścieżkach (jak na dzisiejsze czasy, nawet bardzo). Drukarka laserowa, śliski papier i za 20 minut masz gotową płytkę. Dłużej zajmie podpinanie kabelkami procka na płytce stykowej, aby wszystko było poprawnie. Na płytce minimalna ilość zworek.
  • Prezent. Dla chętnych udostępnię różne aplikacje układów które łatwo uruchomić używając tej płytki stykowej (ale można i bez niej). Zaprezentuję różne moduły dołączane do procesora i przykładowe programy w C.

board_top_desc
Opis płytki na zdjęciu

board_breadboard
Jak prezentuje się płytka razem z płytką stykową

pcb_normal
Schemat (przepraszam, że tak nieestetycznie narysowany)

board_side
Widok od boku.

Pobierz PDF’a z mozaiką ścieżek gotową do termotransferu: atmega8_test_board

AVR-GCC Operacje na pinach I/O w języku C

Przykłady na PORTC, pin nr 3:

Konfiguracja pinów:

  1. Cały port jako wejścia:
    DDRC = 0x00;
  2. Cały port jako wyjścia:
    DDRC = 0xFF;

 
Sterowanie wyjściami:

  1. Wyzerowanie bitu:
    PORTC &= ~_BV(3);
  2. Ustawienie bitu:
    PORTC |= _BV(3);
  3. Zmiana stanu:
    PORTC ^= _BV(3);

 
Odczyt stanu wejść:

  1. Czy na wejściu jest 1:
    bit_is_set(PINC,3)
  2. Czy na wejściu jest 0:
    bit_is_clear(PINC,3)

Ładowarka Li-Ion we wtyku USB

Swego czasu zakupiłem taką oto latarkę:

latarka

Jest to model BL-8606 z popularną diodą Cree XM-L. Zasilana jest z jednego akumulatorka Li-Ion 18650 – napięcie nominalne to 3,7V. Latarka spisuje się bardzo dobrze, jasność jest bez zastrzeżeń. Jakość wykonania samej latarki jest bardzo dobra. Nie można niestety tego powiedzieć o pozostałych akcesoriach. Ładowarka sieciowa uległa po pewnym czasie uszkodzeniu. Na domiar złego, dioda LED wskazująca stan naładowania po podłączeniu latarki zapalała się na zielono – sugerując pełne naładowanie akumulatora. Z tego powodu pierwsze oskarżenie padło na akumulator oraz samą latarkę. Dopiero po zmierzeniu napięcia na wtyku kabla ładowarki wyszło na jaw w czym rzecz – ładowarka była niesprawna, a dioda statusu zapalała się pod wpływem resztki energii akumulatora.

Same akumulatorki są bardzo wdzięczne. Wysokie napięcie z jednego ogniwa (~3,7V), brak efektu pamięciowego, dobry stosunek waga/pojemność to niektóre z ich zalet. Ja uzyskałem ich 6 sztuk z rozebrania baterii od laptopa Asus. W środku znajdowało się 6 sprawnych ogniw o wymiarach 18650. Niesprawny był za to kontroler, przez co laptop mimo pełnego naładowania wyłączał się po kilku minutach.

Czas więc było postarać się o nową ładowarkę. Proces poprawnego ładowania akumulatorów Li-Ion oraz Li-Poly jest dosyć skomplikowany w realizacji. Polega on, w skrócie, na dwóch etapach: ładowania stałym prądem do odpowiedniego napięcia, a następnie stałym napięciem. Ponieważ zależało mi na jak najbardziej poprawnym procesie ładowania, moją uwagę zwróciły wyspecjalizowane układy firmy MicroChip, a dokładniej kość MCP 73831:

schemat

Rysunek powyżej przedstawia typowy schemat budowy ładowarki Li-Ion, zaczerpnięty z noty katalogowej. Jak widać, jest on banalnie prosty. Rezystor podpięty pomiędzy końcówkę PROG (pin 5) a masę ustala maksymalny prąd ładowania. Dla wartości 2kΩ wynosi on 500mA i jest to maksymalny prąd dla tego układu. Chcąc zmniejszyć prąd, zwiększamy wartość opornika. W nocie katalogowej znajduje się zarówno wzór jak i wykres pomocny przy jego doborze. Dioda LED informuje o statusie pracy – zapalona oznacza ładowanie, zgaszona koniec ładowania. Napięcie ładowania zależy od wersji układu – dla użytej przeze mnie MCP73831T-2 wynosi 4,2V i jest to napięcie odpowiednie dla moich akumulatorków. Większość akumulatorów Li-Ion o napięciu nominalnym 3,7V przy pełnym naładowaniu wykazuje 4,2V, a przy pełnym rozładowaniu 2,75V. Dalsze rozładowanie prowadzić może do nieodwracalnego uszkodzenia akumulatora, natomiast przeładowanie grozi nawet wybuchem. Na szczęście układ firmy Microchip jest w pełni automatyczny. Ładowarkę najwygodniej zasilać napięciem 5V. Z tego powodu, postanowiłem zamontować ją we wtyku USB. Gniazda USB dostępne są powszechnie: komputer, zasilacze wtyczkowe, posiadam nawet takie gniazdo w moim samochodzie. Z tego względu jest to bardzo wygodne rozwiązanie. Z gniazda USB 2.0 możemy pobrać nawet 500mA prądu, a więc dokładnie tyle, ile potrzebujemy – sam układ w najgorszym przypadku pobierze 1,5mA, natomiast dioda LED tyle, jakim opornikiem ją podłączymy. Ja użyłem 1kΩ, a więc pobór prądu z USB wyniesie maksymalnie 503mA czyli z różnicą mniejszą od 1%. Dodatkowo podejrzewam, że opornik programujący ma wartość trochę większą od wspomnianych 2kΩ. W razie obaw zawsze można zastosować opornik o wyższej wartości. Można też nie montować diody LED, jednak mimo niedogodności z montażem warto mieć informację o działaniu ładowarki.

Oto zmontowany układ we wnętrzu gniazda:

ladowarka

Układ MCP73831 posiada w tym wypadku „większą” obudowę, tj. SOT-23-5. Model został zamontowany na kawałku laminatu. Ścieżki nie zostały wytrawione, a jedynie wyżłobione zostały przerwy pomiędzy nimi. Niestety aktualnie mam utrudnione możliwości wykonania termotransferu, przede wszystkim przez brak drukarki laserowej, Wszystkie użyte elementy posiadają obudowy SMD, natomiast jest możliwe polutowanie układu zwykłą lutownicą. Kondensatory pochodzą z uszkodzonej płyty głównej komputera z podstawką Intel 775; położone są w oknie podstawki. W moim przypadku mają one wartości 10μF, ale nie stanowi to żadnego problemu. Nad diodą LED w plastiku obudowy wtyku USB został wywiercony otwór (średnica ok. 1mm, wiertłem do płytek drukowanych), jako „okno”. Całość, łącznie z wspomnianym otworem została zaklejona przezroczystym klejem na gorąco.

Koszt wykonania Ładowarki można zamknąć w 10zł. Wyjdzie jeszcze taniej, gdy otrzymamy układ MCP73831 jako próbki (sample) testowe. Ja w ten sposób właśnie otrzymałem tą ładowarkę. O sample można ubiegać się na stronie Microchip. Sam układ nie jest też specjalnie drogi, bo kosztuje ok. 5zł. Tak więc za śmieszne koszty uzyskujemy wygodną oraz optymalną z punktu widzenia procesu ładowania ładowarkę.

Najmniejsza latarka

Prototyp wykonanej przeze mnie (virtmedia.pl) najmniejszej latarki.

Schemat:

Schemat układu "Joule Thief"

Do budowy zostały użyte elementy SMD (LED, rezystor 1kΩ, tranzystor BC847), własnoręcznie nawinięty transformator na rdzeniu ferrytowym w kształcie pierścienia oraz bateryjka zegarkowa LR41.Schemat użytej tu przetwornicy, która jest w stanie zasilić diodę LED już przy napięciu pracy rzędu 0,6V, można odnaleźć w internecie pod hasłem „Joule thief”. Cała latarka ma wymiary 8x8x10mm. Jako źródło światła można użyć LED-ów dowolnego koloru.