page 1/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 page 2/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 Stół zadowoleń (z ang. Table of contents) 0. Zaprzeczenie (z ang. Disclaimer).....................................................................................................3 1. Przedstawienie (z ang. Introduction)................................................................................................4 2. Opis generała (z ang. General description)......................................................................................5 3. Zgromadzenie naczyń kuchennych (z ang. Hardware assembly).....................................................7 3.1. śywioły (z ang. Elements)........................................................................................................7 3.2. Łącznik (z ang. Connector).......................................................................................................8 3.3. PoŜyteczne sztuczki (z ang. Useful tips)..................................................................................8 4. Miękkie towary (z ang. Software)....................................................................................................9 4.1. Mocne wyroby (z ang. Firmwares)...........................................................................................9 4.2. Kierowcy (z ang. Drivers)......................................................................................................10 4.3. Czuła inicjacja (z ang. Soft initialization)...............................................................................11 5. Znaczące wypychanie bezgraniczne (z ang. Extremely important stuff).......................................13 6. Początki nadmiarowych wiadomości (z ang. Additional information sources).............................15 7. Niepokojąca strzelanina (z ang. Troubleshooting).........................................................................16 8. Przemiana kloca (z ang. Changelog)..............................................................................................17 9. Wyrostek robaczkowy (z ang. Appendix).......................................................................................18 page 3/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 0. Zaprzeczenie (z ang. Disclaimer) This hardware design is provided 'as is' and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. in no event shall the designer be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this design, even if advised of the possibility of such damage. page 4/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 1. Przedstawienie (z ang. Introduction) ICD2 – 99% SMD to klon oryginalnego ICD2 firmy Microchip. ICD2 (In Circuit Debugger) to programator i (przede wszystkim!) debugger który obsługuje praktycznie kaŜdy istniejący mikrokontroler produkowany przez firmę Microchip. Urządzenie jest w pełni wspierane przez zintegrowane środowisko uruchomieniowe firmy Microchip – MPLAB IDE. ICD2 łączy się z komputerem za pomocą interfejsu USB. Do urządzenia firma Microchip dostarcza wraz z pakietem MPLAB IDE specjalne sterowniki dla systemu Windows. Do debuggowanego (lub programowanego) układu ICD2 podłączany jest za pomocą interfejsu szeregowego zawierającego 5 linii. page 5/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 2. Opis generała (z ang. General description) Projekt ICD2 – 99% SMD powstał ze względu na brak w internecie gotowych i dostępnych projektów ICD2 wykorzystujących elementy SMD – popularne klony ICD2 są więc przewaŜnie bardzo duŜe, a przylutowanie kilkudziesięciu elementów przewlekanych nie jest szczególnie fascynujące. ICD2 – 99% SMD jest próbą wyjścia naprzeciw tym problemom – w procesie projektowania nacisk postawiony został na niedoróbki występujące w innych klonach. Oczywiście autor nie neguje ogromu pracy włoŜonego w projekty klonów „pierwszej generacji” – zapewne zastosowanie elementów przewlekanych było dla projektujących poŜądane lub w inny sposób uzasadnione – twórcom pierwszych wersji klonów ICD2 naleŜy się szacunek za pracę jaką włoŜyli w stworzenie tego urządzenia! Kończąc wątek sentymentalno-filozoficzny... Opisywany tutaj projekt powstał na bazie dwóch najpopularniejszych klonów ICD2 – potyo2 oraz PICS, których dokładne opisy i schematy moŜna znaleźć w internecie1. W projekcie klona ICD2 – 99% SMD kluczowy nacisk połoŜony został na następujących kwestiach: – wykorzystanie elementów przewlekanych jedynie tam gdzie ma to uzasadnienie (ekonomiczne bądź inne), – maksymalne uproszczenie schematu przy jednoczesnym zachowaniu pełnej funkcjonalności oryginalnego ICD2, – minimalizacja rozmiaru całego urządzenia przy jednoczesnym dopasowaniu do dostępnych w Polsce obudów. W klonie zastosowano więc 3 przewlekane kondensatory elektrolityczne o pojemności 100uF, poniewaŜ wersje SMD są kilkukrotnie droŜsze. RównieŜ ze względów ekonomicznych zastosowany został przewlekany potencjometr montaŜowy oraz rezonator kwarcowy. Gniazdo programowania układu docelowego oraz gniazda do programowania dwóch mikrokontrolerów wchodzących w skład klona są w wersji przewlekanej, poniewaŜ gniazda i goldpiny montowane powierzchniowo nie są zbyt odporne na siły powstające przy częstym wyjmowaniu i wkładaniu kabla połączeniowego, a do tego są one wielokrotnie droŜsze. Do tego naleŜy zauwaŜyć, Ŝe elementy te w wersjach SMD nie są mniejsze od swoich odpowiedników w wersji przewlekanej. Przewidziana została moŜliwość zastosowania cewki wchodzącej w skład przetwornicy w wersji przewlekanej lub SMD – decyzja ta uzasadniona jest faktem, Ŝe cewka w tej konkretnej obudowie jest zapewne elementem o najgorszej dostępności. Klon ICD2 – 99% SMD jest czymś pośrednim między bardzo rozbudowanym klonem potyo2 oraz bardzo uproszczonym klonem PICS, przy zachowaniu maksymalnej funkcjonalności. Opis najlepiej rozpocząć od skrótowego przedstawienia sprzętowej strony oryginalnego ICD2 oraz dwóch klonów na których bazuje projekt ICD2 – 99% SMD. Oryginalne ICD2 jest urządzeniem zasilanym jedynie z portu USB komputera PC – dodatkowy zasilacz podłączany był w celu zwiększenia wydajności prądowej w przypadku zasilania bezpośrednio z ICD2 układów o duŜym poborze prądu. W układzie zawarta była przetwornica impulsowa, która z napięcia 5V generowała napięcie o wartości ok. 13V uŜywane do wprowadzania 8-bitowych mikrokontrolerów w tryb programowania. Napięcie wyjściowe z tej przetwornicy mogło być regulowane przez cyfrowy potencjometr sterowany przez ICD2. Sygnały programujące (linia danych oraz linia zegara) były buforowane tak aby dopasować poziomy napięć do napięcia pracy układu docelowego. 1 http://www.icd2clone.com/ (07.12.2007) page 6/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 Klon PICS jest układem w maksymalnym stopniu uproszczonym. Nie zawiera on cyfrowego potencjometru do regulacji wysokiego napięcia programującego ani układów dopasowania poziomów napięć. Z tego względu teoretycznie układ ten potrafi współpracować jedynie z 8-bitowymi mikrokontrolerami firmy Microchip: PIC10, PIC12, PIC14, PIC16 i PIC18 oraz jedną rodziną 16-bitową – dsPIC30. PoniewaŜ pozostałe rodziny mikrokontrolerów Microchip'a – PIC24, dsPIC33 oraz PIC32 – przystosowane są do pracy z napięciem zasilającym równym 3,3V współpraca z klonem PICS jest potencjalnie niebezpieczna dla układu docelowego. Problem ten jednak w większości przypadków nie obowiązuje, poniewaŜ 16- i 32-bitowe mikrokontrolery Microchipa zwykle tolerują wyŜsze napięcia na pinach słuŜących do programowania. Niemniej „zwykle” nie znaczy „zawsze” jeśli linia ta wykorzystana jest w docelowym układzie takŜe do innego celu – nie tak tolerancyjnego w sprawie napięć – nie ma moŜliwości wykorzystania tego akurat klona. Klon potyo2 jest wersją wyjątkowo rozbudowaną i bardzo zgodną z oryginałem – posiada buforowane linie programujące oraz cyfrowy potencjometr do regulacji wysokiego napięcia programującego. Dodatkowo klon ten posiada moŜliwość automatycznego „odłączania się” od układu docelowego po zaprogramowaniu go – dzięki dodatkowemu buforowi na wyjściu linie programujące są w stanie wysokiej impedancji jeśli programator jest akurat bezczynny. Ze względu na specyfikę procesu programowania i debuggowania rozwiązanie to ma zastosowanie jedynie w procesie programowania – uniemoŜliwiłoby ono całkowicie proces debuggowania. Dodatkowo, ze względu na fakt iŜ najnowsze rodziny 16- i 32-bitowych mikrokontrolerów Microchip nie korzystają juŜ z wysokiego napięcia programującego, rozwiązanie to nie funkcjonuje w ich przypadku. W zaprojektowanym klonie pozostawiono część odpowiedzialną za konwersję poziomów napięć, dzięki czemu moŜe on bezproblemowo pracować z układami zasilanymi napięciem róŜnym od 5V. Cały klon zasilany jest jedynie z gniazda USB – za generację wysokiego napięcia programującego odpowiada – jak zwykle – mała przetwornica impulsowa. PoniewaŜ rola cyfrowego potencjometru regulującego wysokie napięcie programujące jest bliŜej nieznana (potencjometr nigdy nie zmienia swoich nastaw, nie zachodzi Ŝadna transmisja na liniach sterujących) został on zastąpiony potencjometrem montaŜowym, który pozwoli dostroić napięcie programujące w sposób bardzo dokładny. Scalony multiplekser sterujący linią resetu w oryginalnym ICD2 i niektórych klonach został zastąpiony kilkoma tranzystorami. Dodatkowo zrezygnowano ze standardowego dla Microchipa złącza programującego w postaci gniazda RJ-11 (6-pinowe gniazdo typu modular jack), które jest duŜe i niewygodne. Zamiast standardu zastosowano wygodne gniazdo pinowe typu IDC. Dzięki zastosowanym rozwiązaniom i uproszczeniom rozmiar tego rozbudowanego debuggera mógł zostać znacząco ograniczony. Na końcowy rozmiar płytki drukowanej zasadniczy wpływ miały równieŜ dostępne rozmiary popularnych obudów – urządzenie nie zmieściłoby się do bardzo niewielkiej obudowy, za to w obudowie większej mogło być ono większe. Z tego teŜ względu elementy rozmieszczone są jedynie na jednej stronie płytki, dzięki czemu nieznacznie zredukowana została jej cena (jednostronny opis). Płytka drukowana ma wymiary 75mm x 52mm. Całość została dopasowana do obudowy Z-232 (szczególnie dla wariantu Z-23A o dowolnym kolorze) firmy Kradex. 2 http://kradex.com.pl/z23.htm (07.12.2007) page 7/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 3. Zgromadzenie naczyń kuchennych (z ang. Hardware assembly) 3.1. śywioły (z ang. Elements) Schemat, wzory płytek, rozkład i lista potrzebnych elementów dołączone są jako załączniki na końcu tego dokumentu. Elementy dyskretne (rezystory, kondensatory stałe, dioda, diody LED, dławik) są w obudowach o rozmiarze 0805. Wszystkie tranzystory są w obudowach SOT-23. Gniazdo USB jest typu mini-B kątowe do montaŜu powierzchniowego. Gniazdo do podłączenia układu docelowego jest gniazdem typu IDC-10, kątowym do montaŜu przewlekanego. Gniazda do programowania mikrokontrolerów wchodzących w skład debuggera są po prostu goldpinami prostymi. Kondensatory elektrolityczne powinny mieć raster wyprowadzeń wynoszący 100mils (2,54mm). Cewka SMD wchodząca w skład przetwornicy impulsowej jest w obudowie CSN042C lub w dowolnej obudowie przewlekanej. Przewlekany rezonator kwarcowy jest w standardowej obudowie HC-49 (preferowana niska). Potencjometr montaŜowy do regulacji wysokiego napięcia programującego powinien być w obudowie pionowej. Układy scalone U3 – U5 są w obudowach typu SOIC. Mikrokontrolery U1 i U2 są w obudowach TQFP. Wartość większości rezystorów zastosowanych w projekcie nie ma kluczowego znaczenia dla poprawnej pracy debuggera. Szczególne znaczenie mają jedynie rezystory R12 – R14 oraz R19 – R21. Tworzą one dzielniki do pomiaru wysokiego napięcia programującego, napięcia zasilającego układ docelowy oraz napięcia na linii resetu – w miarę moŜliwości rezystory te powinny być jak najdokładniejsze. Pozostałe rezystory w układzie pełnią głównie funkcję ograniczeń prądowych lub ustalania potencjałów (pull-up / pull-down), dlatego teŜ ich wartości mogą być zmienione w pewnym stopniu (oczywiście w sposób rozwaŜny, uwzględniając schemat i róŜnorakie zaleŜności układowe). Kondensatory ceramiczne pełnią w układzie głównie funkcję filtrowania napięć. Szczególną rolę pełni jedynie kondensator C5, który słuŜy do ustalenia częstotliwości pracy przetwornicy impulsowej – jego wartość moŜe być zmieniona na inną, jeśli tylko spełnia ona załoŜenia przedstawione w nocie aplikacyjnej scalonej przetwornicy impulsowej typu MC34063. Zasadniczo wartości z zakresu 200pF – 2nF są akceptowalne. Dodatkowo naleŜy zwrócić uwagę na maksymalne napięcie pracy kondensatora elektrolitycznego C1 znajdującego się na wyjściu przetwornicy – powinno być ono większe od 15V. Parametry indukcyjne dławika FB filtrującego zasilanie są nieistotne – kluczowa jest jego niska rezystancja oraz maksymalny prąd, który powinien być większy niŜ 100mA. Parametry cewki L1 wchodzącej w skład przetwornicy impulsowej równieŜ nie są kluczowe – jej indukcyjność powinna się mieścić w zakresie 100uH – 200uH. DuŜą zaletą będzie oczywiście niska rezystancja, maksymalny prąd jest parametrem mało istotnym, gdyŜ linia wysokiego napięcia programującego nie jest obciąŜona w tym zastosowaniu. Diody LED PWR oraz TRGT sygnalizują obecność napięcia zasilającego sam debugger oraz układ docelowy – obydwa napięcia są konieczne do poprawnej pracy układu. Dodatkowe dwie diody BUSY oraz ERR sygnalizują pracę urządzenia lub wystąpienie błędu. Dioda D1 pracująca w przetwornicy impulsowej powinna mieć niski czas przełączania oraz moŜliwie niewielki spadek napięcia w kierunku przewodzenia. Maksymalne napięcie wsteczne powinno być większe niŜ 15V, a maksymalny prąd nie powinien być przesadnie mały (>10mA). Idealna byłaby dioda Shottky'ego, ale normalne diody przełączające lub prostownicze równieŜ umoŜliwią po- page 8/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 prawną pracę. 3.2. Łącznik (z ang. Connector) Gniazdo ICSP3 do podłączenia układu docelowego, jak juŜ napisano w rozdziale 2, nie jest rozwiązaniem standardowym, jednak nawiązuje do niego bardzo mocno. Ze względu na duŜą popularność (a co za tym idzie – dostępność) zastosowane zostało gniazdo typu IDC-10 kątowe. Oczywiście nic nie stoi na przeszkodzie aby zastosować gniazdo proste (przy braku obudowy nie będzie to problem), dwurzędową listwę goldpinów (prostą lub kątową) lub wlutować w otwory na stałe dowolny rodzaj kabla. Opis wyprowadzeń złącza programującego znajduje się w tabeli 1. Jak łatwo zauwaŜyć, w złączu występuje 5 linii, kaŜda z nich doprowadzona jest do dwóch sąsiednich pinów gniazda. Tabela 1. Pinologia złącza ICSP VPP/MCLR – 1 2 – VPP/MCLR VDD – 3 4 – VDD GND – 5 6 – GND ICSPDAT/PGD – 7 8 – ICSPDAT/PGD ICSPCLK/PGC – 9 10 – ICSPCLK/PGC Takie rozłoŜenie wyprowadzeń programujących jest zgodne kolejnością ze standardem, dlatego łatwo moŜna wykonać przejściówkę (lub stosowny kabel połączeniowy) do standardowych zestawów uruchomieniowych mikrokontrolerów PIC / dsPIC. Linia VDD powinna być dołączona do zasilania układu docelowego – słuŜy ona do zasilania bufora konwertującego poziomy napięć. Istnieje równieŜ moŜliwość zasilania całego układu docelowego przez ICD2 (pod warunkiem niewielkiego poboru prądu!). 3.3. PoŜyteczne sztuczki (z ang. Useful tips) Jeśli w planie jest zamknięcie urządzenia w obudowie, kondensatory elektrolityczne najlepiej przylutować na spodniej (pozbawionej opisu) stronie płytki w pozycji leŜącej – standardowe kondensatory na stojąco nie zmieszczą się w obudowie. Pierwszą czynnością po podłączeniu układu do portu USB w komputerze powinno być sprawdzenie i regulacja wysokiego napięcia programującego. Napięcie to najlepiej zmierzyć na dodatnim wyprowadzeniu kondensatora elektrolitycznego C1 – jeśli układ pracuje poprawnie napięcie to powinno być rzędu kilkunastu volt. Przy pomocy potencjometru P1 naleŜy je wstępnie wyregulować do wartości około 12,5V. 3 ICSP – In Chip Serial Programming page 9/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 4. Miękkie towary (z ang. Software) 4.1. Mocne wyroby (z ang. Firmwares) Pierwszym krokiem który naleŜy wykonać przed uŜyciem ICD2 – 99% SMD jest wgranie do mikrokontrolerów wchodzących w jego skład stosownych wsadów umoŜliwiających komunikację z komputerem PC. Na wstępie naleŜy zaznaczyć bardzo waŜną sprawę. Wsady wgrywane do klonów nie są oryginalnymi wsadami z ICD2 – stworzone zostały one przez hobbystów pracujących nad stworzeniem pierwszego klona ICD2 – imitują one jedynie zachowanie oryginalnego oprogramowania firmy Microchip, dlatego teŜ czasem z klonami ICD2 są pewne problemy. Wsady do mikrokontrolerów znajdujących się na ICD2 moŜna pobrać ze strony icd2clone4, poświęconej – zgodnie z nazwą – klonom ICD2. Rys. 1. Bity konfiguracyjne dla mikrokontrolera PIC18F4550 Bity konfiguracyjne są juŜ ustawione w kodzie, jednak ze względu na częste „rozprogramowywanie” się urządzenia z tymi wsadami, naleŜałoby je lekko zmodyfikować. Modyfikacja taka jest moŜliwa przy uŜyciu pakietu MPLAB IDE5 firmy Microchip, który będzie i tak potrzebny później, więc warto pobrać i zainstalować go od razu. Po uruchomieniu MPLABa rozpoczynamy od wybrania typu układu docelowego – Configure / Select Device... - wybieramy układ PIC18F4550. Następ4 http://www.icd2clone.com/ (07.12.2007) 5 http://www.microchip.com/mplab/ (07.12.2007) page 10/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 nie naleŜy zaimportować wsad dla tego procesora poprzez File / Import... . Poprawny import powinien zostać potwierdzony przez komunikat: Loaded <dysk>:\<sieŜka>\<nazwa_pliku>.hex. w zakładce Build okienka Output. W tym momencie moŜna juŜ przejść do edycji bitów konfiguracyjnych poprzez menu Configure / Configuration Bits... . Po odznaczeniu pola „Configuration Bits set in code.” moŜna edytować poszczególne wartości pól konfiguracyjnych. Dla układu PIC18F4550 naleŜy włączyć wszystkie opcje dotyczące blokady zapisu, czyli: Table Write Protect <adres>, Config. Write Protect, Table Write Protect Boot, Data EE Write Protect. Dzięki temu mikrokontroler nie ma Ŝadnej moŜliwości zmiany (lub uszkodzenia) własnego oprogramowania. Wszystkie ustawienia dla układu PIC18F4550 z wprowadzonymi zmianami przedstawione zostały na rysunku 1. Tak zmodyfikowany wsad moŜna zapisać z powrotem do pliku *.hex (File / Export..., wszystkie opcje w oknie domyślnie) lub zaprogramować bezpośrednio mikrokontroler, jeśli posiadany programator obsługiwany jest przez pakiet MPLAB IDE. Wsad do drugiego mikrokontrolera – PIC16F877A – nie wymaga modyfikacji bitów konfiguracyjnych. Pliki zaprogramowania mikrokontrolerów (z wprowadzonymi zmianami dla układu PIC18F4550) zostały równieŜ udostępnione na stronie domowej autora6. W przypadku braku dostępu do działającego programatora mikrokontrolerów PIC, najtańszym i najpewniejszym programatorem, który posłuŜyć moŜe do wgrania owych wsadów, będzie Brenner 5, którego schemat moŜna znaleźć na stronie o programatorach PIC7 (strona niemiecka, moŜna próbować automatycznego tłumaczenia Google Translate8). Dodatkowo jest równieŜ programator P16PRO9, którego modyfikacje znaleźć moŜna na elektrodzie10. 4.2. Kierowcy (z ang. Drivers) Kolejnym krokiem w drodze do uruchomienia klona ICD2 jest podłączenie zaprogramowanego urządzenia do komputera i zainstalowanie sterowników. Sterowniki do ICD2 dostarczane są wraz z instalacją pakietu MPLAB IDE11, dlatego teŜ przed kontynuowaniem konieczna jest instalacja tego oprogramowania. Po podłączeniu klona ICD2 do komputera powinien pojawić się monit systemu o znalezieniu nowego sprzętu o mistycznej nazwie „USB Device”. Pod Ŝadnym pozorem nie naleŜy pozwolić systemowi Windows zainstalować sterowników automatycznie – wybierze on standardowy driver, który nie będzie współpracował z ICD2. Wskazujemy systemowi operacyjnemu lokalizację sterowników, które znaleźć moŜna w folderze (zakładając instalację pakietu MPLAB w standardowej lokacji) C:\Program Files\Microchip\MPLAB IDE\ICD2\Drivers W powyŜszej lokalizacji znajdują się sterowniki dla urządzenia zwanego „Microchip MPLAB ICD 2 Firmware Client”. System operacyjny z duŜym prawdopodobieństwem zaprotestuje, Ŝe sterowniki te nie zostały prawidłowo podpisane cyfrowo. Oczywiście naleŜy przy uŜyciu środkowego palca zapewnić system operacyjny, Ŝe sterowniki są bezpieczne i zainstalować je pomimo jego protestów. 6 Http://www.chopin.elektroda.eu/ (10.12.2007) 7 http://www.sprut.de/electronic/pic/projekte/brenner5/index.htm (07.12.2007) 8 http://translate.google.com/translate?u=http%3A%2F%2Fwww.sprut.de%2Felectronic%2Fpic%2Fprojekte %2Fbrenner5%2Findex.htm&hl=pl&ie=UTF-8&sl=de&tl=en (07.12.2007) 9 http://picallw.feniks-pro.com/hardware.htm (07.12.2007) 10 http://www.elektroda.pl/rtvforum/topic849868.html (07.12.2007) 11 http://www.microchip.com/mplab/ (07.12.2007) page 11/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 Jeśli wszystko poszło prawidłowo, w MenadŜerze urządzeń systemu operacyjnego po podłączeniu ICD2 pojawi się grupa „MicrochipTools”, zawierająca nasz „Microchip MPLAB ICD 2 Firmware Client”. Jeśli zainstalowany wcześniej klon ICD2 podpięty zostanie do innego portu USB konieczna będzie ponowna instalacja sterowników – systemowi moŜna pozwolić na automatyczne przeprowadzenie tej operacji. 4.3. Czuła inicjacja (z ang. Soft initialization) ICD2 obsługuje róŜne mikrokontrolery przy uŜyciu róŜnego firmware'u, który ładowany jest z poziomu pakietu MPLAB. PoniewaŜ wsady do układu PIC16F877A nie zawierają takowego firmware'u (wsad ten to jedynie bootloader), naleŜy MPLABa zmusić silnym argumentem (lub argumentem siły) do załadowania takowego. Po uruchomieniu pakietu MPLAB IDE (nie trzeba otwierać Ŝadnego projektu lub kodu) i podłączeniu klona ICD2 do portu USB łączymy się z urządzeniem wybierając je jako debugger lub programator: menu Debugger [Programmer] / Select Tool / MPLAB ICD 2. PoniewaŜ jest to dziewicze uruchomienie ICD2, program uraczy nas spotkaniem ze wspaniałym czarodziejem (z ang. Wizard), na którego 6-ciu ekranach moŜemy wykonać następujące fascynujące kroki: 1. nacisnąć przycisk „Dalej”, 2. zrobić to samo co w punkcie 1., 3. wybrać czy ICD2 ma zasilać nasz układ docelowy czy nie, a następnie wykonać czynność z punktu 2., 4. zaŜyczyć sobie, aby MPLAB automatycznie łączył się z ICD2, po czym ponownie wykonać czynność z punktu 1., 5. pozwolić MPLABowi automatycznie ładować nowy firmware po zmianie typu układu docelowego, a następnie kliknąć przycisk „Dalej”, 6. nacisnąć przycisk „Zakończ”. Ups... MPLAB zgłasza błąd... W oknie Output, w zakładce MPLAB ICD 2 powinien znajdować się następujący komunikat: Connecting to MPLAB ICD 2 ...Connected ICD0082: Failed MPLAB ICD 2 operation MPLAB ICD 2 Ready Sytuacja taka jest normalna, świadczy ona jedynie o fakcie, Ŝe do ICD2 nie jest jeszcze załadowany Ŝaden firmware. Aby go załadować z menu Debugger [Programmer] wybieramy opcję „Download ICD2 Operating System”. W oknie wyboru pliku naleŜy wybrać jedyny widoczny plik *.hex z katalogu C:\Program Files\Microchip\MPLAB IDE\ICD2 (zakładając oczywiście, Ŝe MPLAB IDE zainstalowano w domyślnej lokalizacji) i otworzyć go. Operacja wgrywania nowego firmware'u sygnalizowana będzie zapaleniem się diody BUSY na urządzeniu oraz stosownym komunikatem w oknie Output, w zakładce dotyczącej ICD2: Downloading Operating System Jeśli operacja przebiegła poprawnie, po krótkiej chwili w tym samym oknie pojawią się następujące komunikaty: Connecting to MPLAB ICD 2 ...Connected Setting Vdd source to MPLAB ICD 2 ICDWarn0020: Invalid target device id (expected=0x21, read=0x0) ...Reading ICD Product ID Running ICD Self Test page 12/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 ...Passed ...Download Operating System Succeeded MPLAB ICD 2 Ready W zaleŜności od kilku czynników (wybrany sposób zasilania, aktualnie wybrany typ układu) komunikaty mogą się nieco róŜnić. PowyŜsze komunikaty, wraz z ostrzeŜeniem o niewłaściwym identyfikatorze układu docelowego, pojawią się w przypadku gdy do ICD2 nie jest dołączony Ŝaden układ. Po podpięciu do ICD2 jakiegoś urządzenia docelowego (w poniŜszym przykładzie makiety z mikrokontrolerem PIC16F887), i ponownym połączeniu się z ICD2 (przycisk „Reset and Connect to ICD2” lub menu Debugger [Programmer] / Connect) okno komunikatów powinno zawierać informacje podobne do poniŜszych: Connecting to MPLAB ICD 2 ...Connected Setting Vdd source to MPLAB ICD 2 Target Device PIC16F887 found, revision = Rev 0x2 ...Reading ICD Product ID Running ICD Self Test ...Passed MPLAB ICD 2 Ready Jeśli podczas procesu łączenia zgłoszony zostanie następujący błąd: Running ICD Self Test ... Failed Self Test. See ICD2 Settings (status tab) for details. naleŜy zgodnie z sugestią MPLABa zajrzeć do menu Debugger [Programmer] / Settings... . Interesujące – w tej sytuacji oczywiście – informacje znajdują się w zakładce Status, pole Self Test, oraz w zakładce Power. Problem ten moŜe mieć kilka źródeł, w tym moŜe być to wynik nieprawidłowego zlutowania części układu odpowiedzialnej za pomiar napięć (któreś napięcie nie spełnia załoŜeń), nieprawidłowości w części układu odpowiedzialnej za generację wysokiego napięcia (problem dotyczy wysokiego napięcia programowania oznaczonego przez Vpp), nieprawidłowości w części układu odpowiedzialnej za sterowanie linią MCLR (problem dotyczy sygnału MCLR i / lub Vpp). Źródłem problemu moŜe być równieŜ duŜy rozrzut wartości rezystorów wchodzących w skład dzielników pomiarowych. page 13/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 5. Znaczące wypychanie bezgraniczne (z ang. Extremely important stuff) Klony ICD2 nie są wiernymi kopiami oryginału, nie są równieŜ idealne. Głównym źródłem problemu jest napisane przez hobbystów oprogramowanie mikrokontrolerów zarządzających klonem, które nie jest doskonałe. NaleŜy pamiętać, aby NIGDY nie wyłączać ICD2 z portu USB gdy jest on wciąŜ wybrany jako debugger / programator w MPLABie oraz gdy dołączony jest do niego jakiś układ docelowy, który ma własne zasilanie. Prawidłowe odłączenie ICD2 od komputera powinno przebiegać w przedstawionej poniŜej kolejności. 1. (opcjonalnie – jedynie gdy układ docelowy ma własne zasilanie, które przekazywane jest do ICD2) odłączyć układ docelowy od ICD2; 2. odłączyć ICD2 od komputera PC w sposób programowy – z menu Debugger [Programmer] wybrać opcję Select Tool / None; 3. wyciągnąć kabel USB z portu w komputerze PC lub z gniazda w ICD2; Niedotrzymanie tych ograniczeń poskutkować moŜe następującymi konsekwencjami: – – – – konieczność zresetowania MPLABa (praktycznie zawsze), konieczność zresetowania komputera PC (dosyć często), konieczność przeprogramowania mikrokontrolera PIC18F4550 w klonie ICD2 (czasem)12, konieczność przeprogramowania mikrokontrolera PIC16F877A w klonie ICD2 (rzadko)13. Nieprawidłowości (trwałe zawieszenie komunikacji USB lub sterownika) sygnalizowane są przez poniŜsze komunikaty pojawiające się przy próbach (ponownego) połączenia się z ICD2: Connecting to MPLAB ICD 2 ICD0019: Communications: Failed to open port: (Windows::GetLastError() = 0x2, 'Nie moŜna odnaleźć określonego pliku.') ICD0021: Unable to connect with MPLAB ICD 2 MPLAB ICD 2 Ready Kroki mające na celu poprawę tej sytuacji naleŜy wykonać w następującej kolejności: 1. bez odłączania ICD2 od USB „wyłączyć” go programowo (Select Tool / None), odłączyć targeta (tylko jeśli ma własne zasilanie), odłączyć od portu USB, odczekać kilka sekund, podłączyć ponownie, połączyć się z ICD2 (Select Tool / MPLAB ICD 2) – jeśli wciąŜ nie moŜna nawiązać połączenia – przejść do punktu 2., 2. rozłączyć się z ICD2 (Select Tool / None), odłączyć targeta (tylko jeśli ma własne zasilanie), odłączyć od portu USB, zamknąć MPLABa, odczekać kilka sekund, włączyć MPLABa, podłączyć ICD2 do portu USB, połączyć się z ICD2 (Select Tool / MPLAB ICD 2) – jeśli wciąŜ nie moŜna nawiązać połączenia – przejść do punktu 3., 3. rozłączyć się z ICD2 (Select Tool / None), odłączyć targeta (tylko jeśli ma własne zasilanie), odłączyć od portu USB, zamknąć MPLABa, uruchomić ponownie system operacyjny, włączyć MPLABa, podłączyć ICD2 do portu USB, połączyć się z ICD2 (Select Tool / MPLAB ICD 2) – jeśli wciąŜ nie moŜna nawiązać połączenia naleŜy wpaść w panikę i przeprogramować obydwa mikrokontrolery znajdujące się na ICD2. Jeśli po podłączeniu ICD2 do USB system zgłasza nieznane urządzenie USB (lub inny błąd związany z urządzeniem USB), oznacza to na 99%, Ŝe konieczne jest przeprogramowanie mikrokontrole12 NaleŜy zaznaczyć, Ŝe modyfikacje firmware'u do mikrokontrolera PIC18F4550 opisane w rozdziale 4.1 najprawdopodobniej rozwiązuje problem uszkadzającego się firmware'u. 13 j.w. page 14/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 rów zarządzających ICD2. Pozostały 1% to sytuacje, gdy do odłączonego od USB ICD2 podłączony był ciągle układ docelowy z własnym źródłem zasilania. page 15/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 6. Początki nadmiarowych wiadomości (z ang. Additional information sources) Szczegółowe informacje o ICD2 moŜna odnaleźć w następujących miejscach: – dokumentacja ICD2 – MPLAB® ICD 2 In-Circuit Debugger User's Guide – dostępna na stronie internetowej poświęconej ICD214, – MPLAB ICD 2 Release Notes – dostępne w dokumentacji instalowanej wraz ze środowiskiem MPLAB IDE – Start / Programy / Microchip / MPLAB IDE vX.XX / Documentation, – internet (google, elektroda, …). 14 http://www.microchip.com/icd2/ (13.12.2008) page 16/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 7. Niepokojąca strzelanina (z ang. Troubleshooting) Problem Dioda LED TRGT jest zapalona, choć układ docelowy jest odłączony, a ICD2 nie powinien go zasilać. Geneza Napięcie 5V (pochodzące od mikrokontrolera PIC16F877A) występujące na którymkolwiek wejściu niezasilanego układu typu 74HC126 przez diody zabezpieczające jego wejście jest przenoszone na pin zasilania. Napięcie to ma wartość ok. 2-3V. Rozwiązanie: Zignorować problem – wydajność tego źródła napięcia jest na tyle znikoma, Ŝe problem nie ma Ŝadnego znaczenia. Dołączenie napięcia zasilania (z układu docelowego lub bezpośrednio z ICD2) spowoduje natychmiastową zaporową polaryzację diod zabezpieczających wejścia układu 74HC126. Problem Podczas debuggowania od czasu do czasu pojawiają się błędy, a ICD2 się zawiesza. Geneza Przy bardzo szybkiej komunikacji (szczególnie przy najnowszych mikrokontrolerach pracujących z duŜymi częstotliwościami – PIC24, dsPIC, PIC32), duŜe znaczenie ma długość przewodu łączącego ICD2 z układem docelowym. Rozwiązanie: W przypadku pojawiających się często błędów nie naleŜy stosować przewodów połączeniowych dłuŜszych niŜ ok. 20-30cm. Problem Po wejściu do niekończonej pustej pętli ICD2 się zawiesza Geneza Aplikacja oczekuje aŜ debuggowany układ osiągnie kolejną linijkę, co nigdy się nie zdarzy, poniewaŜ pętla jest nieskończona. Rozwiązanie: Nie wchodzić do pustych nieskończonych pętli. Umieścić w pustych pętlach instrukcję Nop();. Problem Podczas pracy krokowej ICD2 się zawiesza Geneza Kod pisany w języku wysokiego poziomu po optymalizacji nie zawsze odpowiada kolejności zamierzonej przez programistę, zmienia się równieŜ czas Ŝycia zmiennych i ich lokalizacja. Rozwiązanie: Zmniejszyć poziom optymalizacji kodu (najlepiej wyłączyć optymalizację na czas debuggowania). Zmniejszyć ilość lub całkowicie wyłączyć pokazywanie zmiennych (okno Watch), a szczególnie zmiennych lokalnych (okno Locals). Nie debuggować niektórych funkcji. page 17/18 ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 8. Przemiana kloca (z ang. Changelog) 17.12.2008 Initial release page 18/18 9. Wyrostek robaczkowy (z ang. Appendix) – Schemat układu – Lista elementów (zgrupowane elementy podobne) – Lista elementów (bez grupowania) – Warstwa opisu Top Overlay ICD2 – 99% SMD Rev00 Technical Reference Manual Rev00 D C B A C14 u_pgc 27pF 330R R43 10kR R23 GND 5 R41 1kR 12 13 33 34 8 9 10 11 14 15 16 17 1 VCC C4 100uF ERR 14 8 2 1 dir_pgc OE U4B 6 7 74HCT125 12 13 GND pgc u_pgd2 u_pgd1 330R R27 330R 330R R42 R39 7 3 1kR R17 VCC GND R18 10kR 877_rst GND 2 GND VCC YA OE PWR 14 9 10 GND R31 4.7kR VCC 74HCT125 U5C 8 74HCT125 5 4 dir_pgd R35 1kR 13 U4D 74HC126 12 11 10kR R25 74HC126 4.7kR R37 U5B 6 GND R34 1kR 1 2 U4A 18_mclr 877_wr 877_rd 25 26 27 18 510R R3 TRGT VCC R28 pgd 16_pgc 16_pgd led_error led_busy 877_busy Q1 BC847 v_mclr v_tvcc dir_pgc v_vpp vcc_ctrl dir_pgd clkout R10 10kR 16_mclr VCC Q4 8 9 10 11 14 15 16 17 19 20 21 22 23 24 30 31 18 Header 5 Header 5 R29 GND 10kR VCC 3 Q6 BC847 Q5 BC857 R44 10kR mclr-gnd VCC mclr-tvcc 10kR R32 R40 10kR tVCC BC847 C18 100nF tVCC mclr-vpp C17 100nF VCC 330R C666 100nF VCC R7 C7 100uF R4 1R 100R R38 Q3 BC857 VPP Date: File: A4 Size 5 1 3 5 7 9 IDC-10 ICSP vcc_ctrl 4 D1 1N4148 4 Sheet of Drawn By: VCC tVCC C15 100nF GND R21 2.2k GND Q2 BC857 GND C2 100nF VPP R14 6.8kR v_vpp VPP C1 100uF Freddie Chopin Revision Rev00 10kR R22 2 mclr 4 tVCC 6 GND 8 pgd 10 pgc 1kR R24 R20 4.7kR R19 2.2k GND R13 4.7kR v_tvcc R12 6.8kR v_mclr tVCC GND 4 220pF 1 2 3 C5 VPP GND u_mclr 24kR MC34063AD R8 -VIN GND 100uH R5 180R U3 8 DRVC SWC 7 IPK SWE 6 VCC TCAP L1 20:56:20 2008-11-19 D:\elektronika\..\icd2-smd.SCHDOC Number Title ICD2 Clone - 99% SMD mclr tVCC GND pgd pgc mclr C10 P1 2.4kR 100nF GND 1kR C12 100nF GND U2 PIC16F877A-I/PT 32 mclr-vpp MCLR/VPP RC0/T1OSO/T1CKI 35 mclr-tvcc RC1/T1OSI/CCP2 36 mclr-gnd OSC1/CLKI RC2/CCP1 37 u_pgc OSC2/CLKO RC3/SCK/SCL 42 u_pgd1 RC4/SDI/SDA 43 u_pgd2 RA0/AN0 RC5/SDO 44 RA1/AN1 RC6/TX/CK 1 RA2/AN2/VREF-/CVREF RC7/RX/DT RA3/AN3/VREF+ 38 877_ssp0 RA4/T0CKI/C1OUT RD0/PSP0 39 877_ssp1 RA5/AN4/SS/C2OUT RD1/PSP1 40 877_ssp2 RD2/PSP2 41 877_ssp3 RB0/INT RD3/PSP3 2 877_ssp4 RB1 RD4/PSP4 3 877_ssp5 RB2 RD5/PSP5 4 877_ssp6 RB3/PGM RD6/PSP6 5 877_ssp7 RB4 RD7/PSP7 RB5 25 877_rd RB6/PGC RE0/RD/AN5 26 877_wr RB7/PGD RE1/WR/AN6 27 877_cs RE2/CS/AN7 VCC F1RMW4R3Z_16 16_mclr 1 2 VCC 3 GND 16_pgd 4 16_pgc 5 F1RMW4R3Z_18 18_mclr 1 2 VCC 3 GND 18_pgd 4 18_pgc 5 3 GND RE0/AN5/CK1SPP RE1/AN6/CK2SPP RE2/AN7/OESPP MCLR/Vpp/RE3 877_ssp0 877_ssp1 877_ssp2 877_ssp3 877_ssp4 877_ssp5 877_ssp6 877_ssp7 38 39 40 41 2 3 4 5 D_minus D_plus 877_busy BUSY 510R tVCC R2 2 GND R30 4.7kR AY VCC GND U5D 11 R33 1kR 4 74HC126 5 tVCC NC/ICCK/ICPGC NC/ICDT/ICPGD NC/ICRST/ICVPP NC/ICPORTS RD0/SPP0 RD1/SPP1 RD2/SPP2 RD3/SPP3 RD4/SPP4 RD5/SPP5/P1B RD6/SPP6/P1C RD7/SPP7/P1D 32 35 36 42 43 44 1 510R R1 C8 100nF C9 100nF C11 330nF GND PIC18F4550-I/PT R6 510R led_busy led_error RB0/AN12/INT0/FLT0/SDI/SDA RB1/AN10/INT1/SCK/SCL RB2/AN8/INT2/VMO RB3/AN9/CCP2/VPO RB4/AN11/KBI0/CSSPP RB5/KBI1/PGM RB6/KBI2/PGC RB7/KBI3/PGD 74HCT125 U5A 3 4.7kR R36 GND VCC RA0/AN0 RA1/AN1 RC0/T1OSO/T13CKI RA2/AN2/VREFRC1/T1OSI/CCP2/UOE RA3/AN3/VREF+ RC2/CCP1/P1A RA4/T0CKI/C1OUT/RCV RC4/D-/VM RA5/AN4/SS/HLVDIN/C2OUT RC5/D+/VP OSC2/CLKO/RA6 RC6/TX/CK OSC1/CLKI RC7/RX/DT/SDO 74HC126 U4C GND 10 9 18_pgc 18_pgd 877_rst 877_cs clkout R16 10kR FB C3 100nF U1 GND 19 20 21 22 23 24 31 30 1 1 2 D_minus 3 D_plus 4 R11 10kR Y1 20MHz 27pF GND VCC mini-B C13 VCC GND GND SHLD VBUS DD+ GND USB 2 1 7 28 VDD VDD 37 VUSB 6 29 VSS VSS 7 28 VDD VDD 6 29 VSS VSS u_mclr D C B A Capacitor Capacitor Capacitor High Conductance Fast Diode Header, 5-Pin Inductor Flat Cable Connector (IDC), Low-Profile Male Header, Angled Solder Pin, 10 Contacts, Performance Level 2 Inductor Quadruple Bus Buffer Gate with 3-State Outputs Quad Bus Buffer (3-State) USB 2.0, Right Angle, SMT, B Type, Receptacle, 5 Position, Black Crystal Oscillator U4 U5 USB Ğroda 19-lis-19-2008 9:01:03 PM Y1 DC-to-DC Converter Control Circuit U3 P1 Potentiometer Q1, Q4, Q6 NPN Bipolar Transistor Q2, Q3, Q5 PNP Bipolar Transistor R1, R2, R3, R6 Resistor R4 Resistor R5 Resistor R7 Resistor R8 Resistor R10, R11, R16, R18, R22, R23, R25, Resistor R29, R32, R40, R44 R12, R14 Resistor R13, R20, R30, R31, R36, R37 Resistor R17, R24, R33, R34, R35, R41 Resistor R19, R21 Resistor R27, R28, R39, R42, R43 Resistor R38 Resistor U1 High-Performance, Enhanced Flash, USB Microcontroller with nanoWatt Technology U2 Enhanced Flash Microcontroller L1 Cap Cap Cap 1N4148 Header 5 Inductor IDC-10 Capacitor C2, C3, C8, C9, C10, C12, C15, C17, C18, C666 C5 C11 C13, C14 D1 F1RMW4R3Z_16, F1RMW4R3Z_18 FB ICSP 20MHz kwarc SO14_N SO14_N 440247 1 1 1 1 1 1 TQFP-44 751-02_L 2 6 6 2 5 1 1 1 3 3 4 1 1 1 1 11 1 1 1 2 1 2 1 1 10 Quantity 4 3 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 TQFP-44 6.8kR 4.7kR 1kR 2.2k 330R 100R Res2 Res2 Res2 Res2 Res2 Res2 PIC18F455 0-I/PT PIC16F877 A-I/PT MC34063A D 74HC126 74HCT125 mini-B RPot BC847 BC857 Res2 Res2 Res2 Res2 Res2 Res2 100u inductor SMD H CSN042C 1kR Pot B SO-G3/C2.5 SO-G3/C2.5 510R CR2012-0805 1R CR2012-0805 180R CR2012-0805 2.4kR CR2012-0805 24kR CR2012-0805 10kR CR2012-0805 Inductor 220pF CC2012-0805 330nF CC2012-0805 27pF CC2012-0805 SMD _LED HDR1X5 CR2012-0805 918510x323 Comment Value Footprint LED3 SMD _LED Cap Pol1 100uF Elektrolit, 100mils pitch, 6.3mm dia Cap 100nF CC2012-0805 Description Typical BLUE SiC LED Polarized Capacitor (Radial) Designator BUSY, ERR, PWR, TRGT C1, C4, C7 Report Generated From Altium Designer Page 1 of 1 Header 5 Inductor IDC-10 Capacitor Capacitor Capacitor Capacitor Capacitor Capacitor Capacitor Capacitor Capacitor Capacitor Capacitor High Conductance Fast Diode Typical BLUE SiC LED Header, 5-Pin Header, 5-Pin Inductor Flat Cable Connector (IDC), Low-Profile Male Header, Angled Solder Pin, 10 Contacts, Performance Level 2 Inductor Potentiometer Typical BLUE SiC LED NPN Bipolar Transistor PNP Bipolar Transistor PNP Bipolar Transistor NPN Bipolar Transistor PNP Bipolar Transistor NPN Bipolar Transistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor C8 C9 C10 C11 C12 C13 C14 C15 C17 C18 C666 D1 ERR F1RMW4R3Z_ 16 F1RMW4R3Z_ 18 FB ICSP Ğroda 19-lis-19-2008 9:02:14 PM L1 P1 PWR Q1 Q2 Q3 Q4 Q5 Q6 R1 R2 R3 R4 R5 R6 R7 R8 R10 R11 R12 R13 R14 R16 R17 R18 Cap Cap Cap Cap Cap Cap Cap Cap Cap Cap Cap 1N4148 LED3 Header 5 Capacitor Polarized Capacitor (Radial) C5 C7 Inductor RPot LED3 BC847 BC857 BC857 BC847 BC857 BC847 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Cap Cap Pol1 Cap Cap Cap Pol1 Capacitor Capacitor Polarized Capacitor (Radial) C2 C3 C4 Comment LED3 Cap Pol1 Description Typical BLUE SiC LED Polarized Capacitor (Radial) Designator BUSY C1 Report Generated From Altium Designer CR2012-0805 918510x323 HDR1X5 Footprint SMD _LED Elektrolit, 100mils pitch, 6.3mm dia CC2012-0805 CC2012-0805 Elektrolit, 100mils pitch, 6.3mm dia CC2012-0805 Elektrolit, 100mils pitch, 6.3mm dia CC2012-0805 CC2012-0805 CC2012-0805 CC2012-0805 CC2012-0805 CC2012-0805 CC2012-0805 CC2012-0805 CC2012-0805 CC2012-0805 CC2012-0805 SMD _LED SMD _LED HDR1X5 100uH inductor SMD CSN042C 1kR Pot B SMD _LED SO-G3/C2.5 SO-G3/C2.5 SO-G3/C2.5 SO-G3/C2.5 SO-G3/C2.5 SO-G3/C2.5 510R CR2012-0805 510R CR2012-0805 510R CR2012-0805 1R CR2012-0805 180R CR2012-0805 510R CR2012-0805 2.4kR CR2012-0805 24kR CR2012-0805 10kR CR2012-0805 10kR CR2012-0805 6.8kR CR2012-0805 4.7kR CR2012-0805 6.8kR CR2012-0805 10kR CR2012-0805 1kR CR2012-0805 10kR CR2012-0805 100nF 100nF 100nF 330nF 100nF 27pF 27pF 100nF 100nF 100nF 100nF 220pF 100uF 100nF 100nF 100uF 100uF Value Page 1 of 2 Enhanced Flash Microcontroller DC-to-DC Converter Control Circuit Quadruple Bus Buffer Gate with 3-State Outputs Quad Bus Buffer (3-State) USB 2.0, Right Angle, SMT, B Type, Receptacle, 5 Position, Black Crystal Oscillator U2 U3 U4 U5 USB Y1 Ğroda 19-lis-19-2008 9:02:14 PM Description Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Resistor Typical BLUE SiC LED High-Performance, Enhanced Flash, USB Microcontroller with nanoWatt Technology Designator R19 R20 R21 R22 R23 R24 R25 R27 R28 R29 R30 R31 R32 R33 R34 R35 R36 R37 R38 R39 R40 R41 R42 R43 R44 TRGT U1 Comment Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 Res2 LED3 PIC18F4550-I/ PT PIC16F877A-I/ PT MC34063AD 74HC126 74HCT125 mini-B 20MHz Value 2.2k 4.7kR 2.2k 10kR 10kR 1kR 10kR 330R 330R 10kR 4.7kR 4.7kR 10kR 1kR 1kR 1kR 4.7kR 4.7kR 100R 330R 10kR 1kR 330R 330R 10kR 751-02_L SO14_N SO14_N 440247 kwarc TQFP-44 Footprint CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 CR2012-0805 SMD _LED TQFP-44 Page 2 of 2