pl:avrc:programator
Differences
This shows you the differences between two versions of the page.
pl:avrc:programator [2012/08/31 23:01] – created mkucia | pl:avrc:programator [2012/11/17 20:17] (current) – mkucia | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Programator ====== | ||
+ | ===== Wstęp ===== | ||
+ | Dawno temu kiedy komputery posiadały jeszcze [[wp> | ||
+ | ===== Idea ===== | ||
+ | Obecnie popularne programatory posiadają następujące wady: | ||
+ | * Są stosunkowo drogie - Najtańszy oficialny programator [[http:// | ||
+ | * Są skomplikowane - wiele programatorów posiada np. bufory konieczne do programowania układów pracujących przy napięciach zasilania innych niż 5V | ||
+ | * < | ||
+ | Oraz co najgorsze: | ||
+ | * Wymagają innego programatora do uruchomienia! | ||
+ | |||
+ | Kod programatora opiera się na projekcie wchodzącym w skład pakietu LUFA((Lightweight USB Framework for AVRs by Dean Camera)): [[http:// | ||
+ | ===== Zalety tego programatora ===== | ||
+ | * Dzięki wbudowanemu [[bootloaderowi]] USB nie jest konieczne posiadanie innego programatora w celu jego uruchomienia. | ||
+ | * Umożliwia zasilenie układu docelowego | ||
+ | * Zastosowanie elementów [[SMD]] eliminuje konieczność wiercenia (chyba najbardziej uciążliwy proces podczas wytwarzania płytek). | ||
+ | * Tylko 4 elementy wymagają odpowiedniej polaryzacji + mikrokontroler (trudniej o pomyłkę). | ||
+ | * Pracuje z avrdude lub z AVR Studio (w zależności od wybranego firmware) | ||
+ | * Niski koszt (20÷25 PLN październik 2011) | ||
+ | * Małe wymiary | ||
+ | * Posiada generator 4MHz (do ratowania zablokowanych układów przez złe ustawienie fusebitów źródła taktowania) | ||
+ | * Programuje układy korzystające z interfejsów [[ISP]], PDI, TPI (Układy AVR32 i xMega) | ||
+ | * Prawdziwe USB (nie przekombinowane jak w przypadku np. USBASP) | ||
+ | ===== Schematy ===== | ||
+ | {{: | ||
+ | {{: | ||
+ | TODO zdjęcie - wzór | ||
+ | ===== Lista elementów ===== | ||
+ | |||
+ | ^ Element ^ Wartość ^ Opis ^ | ||
+ | | IC1 | AT90USB162 | Mikrokontroler | | ||
+ | | USB | - | Pola lutownicze do podłączenia przewodu USB | | ||
+ | | F1 | 500 [mA] | Bezpiecznik polimerowy | | ||
+ | | R1 R2 | 22 [Ω] | Rezystory linii USB | | ||
+ | | C1 | 1 [uF] | Kondensator stabilizatora napięcia 3V3 ((Dla modułu USB układu)) | | ||
+ | | C3 C4 | 33 [pF] | Kondensatory oscylatora | | ||
+ | | Y1 | 16 [MHz] | Oscylator kwarcowy | | ||
+ | | C2 | 100 [nF] | Kondensator szyny zasilania | | ||
+ | | C5 | 10 [uF] | Kondensator szyny zasilania | | ||
+ | | R3 | 1 [kΩ] | Rezystor ustalający stan nieaktywny (wysoki) na sygnale reset uC | | ||
+ | | R4 | 1 [kΩ] | Rezystor ustalający stan nieaktywny (wysoki) na sygnale hardware bootloader uC | | ||
+ | | R5 R6 | x [kΩ] | Rezystory ograniczające prądy w diodach sygnalizacyjnych | | ||
+ | | LED1 LED2 | Diody sygnalizacyjne | | ||
+ | | | | Złącza szpilkowe typu goldpin | | ||
+ | |||
+ | ===== Wykonanie ===== | ||
+ | - Laminat należy przyciąć do odpowiednich wymiarów | ||
+ | - Krawędzie laminatu należy zaokrąglić za pomocą pilnika do metalu lub papieru ściernego | ||
+ | - Laminat należy dokładnie oczyścić z zabrudzeń | ||
+ | - Na laminat należy przenieść obraz ścieżek układu dowolną metodą | ||
+ | - Laminat należy wytrawić | ||
+ | - Obraz ścieżek należy zmyć | ||
+ | - Wszystkie ścieżki należy sprawdzić pod kątem przerw i zwarć z pobliskimi ścieżkami | ||
+ | - Płytkę należy zabezpieczyć roztworem kalafonii | ||
+ | - Pobielamy pady układu scalonego | ||
+ | - Jako pierwszy montujemy układ scalony, po dokładnym spozycjonowaniu i sprawdzeniu poprawności pozycji. Przylutowywujemy dwa naprzeciw położone wyprowadzenia cały czas przytrzymując układ. Po unieruchomieniu układu przylutowywujemy pozostałe wyprowadzenia. | ||
+ | - Sprawdzamy każde wyprowadzenie układu pod kątem zwarć i przerw | ||
+ | - Przylutowywujemy kolejne elementy zaczynając od najmniejszych. | ||
+ | - Diody oraz kondensatory [[integra: | ||
+ | - Przylutowywujemy przewody USB | ||
+ | - Przewody przylutowywujemy do pól lutowniczych (:!: w złączu linie MOSI i MISO muszą być zkrosowane!) | ||
+ | ===== Uruchomienie ===== | ||
+ | ==== Sprawdzenie poprawności działania i troubleshooting==== | ||
+ | - Sprawdzamy polaryzację kondensatorów | ||
+ | - Sprawdzamy poprawność połączeń | ||
+ | - Sprawdzamy czy nie ma zwarcia pomiędzy masą a szyną zasilania | ||
+ | - Sprawdzamy czy kryształ jest połączony z uC i czy nie ma zwarć | ||
+ | - Sprawdzamy czy nie ma zimnych lutów (matowe połączenie zamiast błyszczącego) | ||
+ | - Podłączamy urządzenie do komputera | ||
+ | - Sprawdzamy napięcie na kondensatorach tantalowych: | ||
+ | - Sprawdzamy czy linie MOSI i MISO są skrosowane | ||
+ | ==== Oprogramowanie ==== | ||
+ | 1. Ściągamy potrzebne narzędzia: | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * (Dodatkowo) [[http:// | ||
+ | Osoby korzystające z Linuksa powinny pobrać odpowiednie dla siebie narzędzia i odpowiednio dostosować następujące kroki. | ||
+ | |||
+ | :!: Kod z pakietu LUFA wymaga modyfikacji: | ||
+ | |||
+ | 2. Sprawdzony układ podłączamy do komputera, za pomocą menedżera urządzeń lub programu USBView powinniśmy zaobserwować pojawienie się nowego urządzenia. (Pod Linuksem można użyć narzędzia lsusb) | ||
+ | |||
+ | 3. Instalujemy sterowniki które znajdują się w katalogu instalacyjnym narzędzia Atmel FLIP. | ||
+ | |||
+ | 4. Jeżeli skompilowaliśmy program samodzielnie, | ||
+ | - uruchomić narzędzie Atmel FLIP | ||
+ | - wybrać opcje z menu głównego: __Device__-> | ||
+ | - wybrać opcje z menu głównego: __Settings__-> | ||
+ | - w momencie pojawienia się okna __USB Port Connection__ wybieramy opcje __Open__ | ||
+ | - wybrać opcje z menu głównego: __File__-> | ||
+ | - w zakładce __Operations Flow__ klikamy przycisk __Run__ | ||
+ | - zamykamy narzędzie Atmel FLIP | ||
+ | |||
+ | 5. Resetujemy urządzenie poprzez ponowne podłączenie do portu USB. W śród urządzeń USB powinno się pojawić nowe urządzenie, | ||
+ | |||
+ | 6. Jeżeli nasz system nie chce uruchomić niepodpisanego sterownika musimy jeszcze wygenerować odpowiednie pliki INF za pomocą narzędzia inf-wizard należącego do pakietu libUSB-win. | ||
+ | |||
+ | ==== Możliwe problemy ==== | ||
+ | * Jeżeli na komputerze zainstalowano AVRStudio to w systemie będą zainstalowane sterowniki [[http:// | ||
+ | ===== Korzystanie z programatora ===== | ||
+ | Jeżeli programujemy za pomocą avrdude należy korzystać z następującego schematu: | ||
+ | < | ||
+ | |||
+ | |||
+ | ===== Aktualizacja oprogramowania ===== | ||
+ | Kiedy kupujemy MCU ma on wgrany jedynie bootloader znajdujący się na końcu pamięci programu. Po resecie PC((program counter)) " | ||
+ | Po wgraniu oprogramowania MCU, bootloader nie jest automatycznie aktywowany. Można jednak wymusić uruchomienie bootloadera już po wgraniu programu. Należy: | ||
+ | * Podciągnąć linię HWB((HardWare Boot)) do minusa [1] | ||
+ | * Zresetować układ poprzez linię reset [2] (tutaj wystarczy ułamek sekundy zwarcia z masą, ale linia HWB musi być w tym czasie również zwarta) | ||
+ | Aby to zrobić należy zewrzeć następujące punkty do masy (układ ma być podłączony do komputera). | ||
+ | |||
+ | {{: | ||
+ | |||
+ | TICK Do zwarcia linii z masą konieczne jest metalowe narzędzie. Jedna z ścieżek może zostać zwarta za pomocą czarnego przewodu wyprowadzonego z płytki. | ||
+ | |||
+ | :!: Należy zwrócić szczególną ostrożność podczas procedury, można spowodować zwarcie linii zasilania komputera. Kolorem czerwonym oznaczyłem ścieżki szyny zasilania, | ||
+ | niebieskim masę a fioletowym ścieżki do zwarcia z masą. | ||
+ | |||
+ | ===== Pliki ===== | ||
+ | * {{: | ||
+ | * {{: |
pl/avrc/programator.txt · Last modified: 2012/11/17 20:17 by mkucia