Poniższy projekt opisuje w jaki sposób samodzielnie wykonać płytkę rozwojową dla mikrokontrolera PIC18 wyposażoną w Ethernet i interfejs USB 2.0 o pełnej prędkości. Istotną zaletą tego projektu jest niska cena wykonania.
Opis płytki rozwojowej:
Płytka oparta jest o mikrokontroler PIC18LF4553. Układ ten posiada interfejs USB 2.0 o pełnej prędkości (do 12 Mbit/s), który do działania nie wymaga żadnych zewnętrznych układów. Mikrokontoler wyposażony jest w 32 kB pamięci programu, 2 kB pamięci RAM i może działać z zewnętrznym zegarem taktującym jego działanie o częstotliwości do 48 MHz. Wykorzystanie zewnętrznego zegara jest opcjonalne, gdyż układ posiada wbudowany system taktowania o częstotliwości 8 MHz.
Kontroler sieci ethernet ENC28J60 wykorzystany jest w projekcie do zapewnienia mikrokontrolerowi połączenia z siecią poprzez interfejs SPI. Układ ENC28J60 posiada wbudowany MAC oraz warstwę fizyczną 10Base-T i 8 kB pamięci RAM. Działa on w trybach full- i half-duplex w sieciach 10/100/1000Base-T.
Mikrokontroler nie jest wlutowany w płytkę drukowaną (PCB) na stałe, ale znajduje się w podstawce. Pozwala to na wygodne testowanie układu na płytce rozwojowej i następnie przekładanie go do prototypu finalnego urządzenia, w którym układ ten ma pracować. Z uwagi na to że kontroler sieci ethernet zasilany jest z napięcia 3,3 V autor zdecydował się zastosować takie napięcie zasilania dla mikrokontrolera. Pozwoliło to uprościć projekt (tylko jedno napięcie zasilania - jeden stabilizator i brak translatorów poziomu pomiędzy układami) i oszczędzić miejsce na PCB.
Zastosowanie układu z serii LF nie ogranicza oczywiście zakresu napięć zasilania, gdyż układy te mogą pracować z VDD od 2,0 V do 5,5 V. Oznacza to, że można prototypować na niej także układy, które docelowo zasilane mają być napięciem np. 5 V.
Płytka prototypowa zasilana może być z portu USB lub zewnętrznego zasilacza napięcia stałego. Napięcie musi wynosić od 4,5 V do 12 V. Pamiętać trzeba, że układ ENC28J60 pobierać może do 180 mA, więc zasilanie np. z baterii może nie być najlepszym pomysłem. Wybór źródła napięcia zasilania (USB lub zewnętrzny zasilacz) dokonuje się zworką.
Krok 1: Elementy
Do wykonania płytki prototypowej według niniejszego projektu potrzebne będą:
10 x Kondensator ceramiczny SMD (obudowa 0603) 100 nF
2 x Kondensator tantalowy SMD (obudowa 3528) 10 µF
4 x Kondensator ceramiczny SMD (obudowa 0805) 22 pF
1 x Mikrokontroler PIC18LF4553 lub PIC18LF4550 (w obudowie PDIP) - lepiej wykorzystać jest PIC18LF4553 ponieważ ma 12 bitowy przetwornik analogowo-cyfrowy (ADC). Dodatkowo PIC18LF445x mają 24 kB pamięci, a nie 32 kB. Oba układy są kompatybilne z płytką.
1 x Podstawka PDIP 40 pin
1 x Układ ENC28J60 w obudowie SPDIP
1 x Złącze MagJack RJ45
1 x Złącze zasilacza DC 5,5 mm
1 x Złącze USB Mini-B SMD
1 x Oscylator 25MHz w obudowie SMD (HC49/UP)
1 x Oscylator 8MHz w obudowie SMD (HC49/UP) - zamiast niego można wykorzystać dowolny inny o częstotliwości do 48 MHz
2 x Oporniki 10 kΩ SMD (obudowa 0805)
8 x Oporniki 100 Ω SMD (obudowa 0805) - najlepiej o tolerancji 1%
1 x Opornik 1,5 kΩ SMD (obudowa 0805)
1 x Opornik 2,2 kΩ SMD (obudowa 0805) - najlepiej o tolerancji 1%
1 x Opornik 120 Ω SMD (obudowa 0805) - najlepiej o tolerancji 1%
2 x Oporniki 470 Ω SMD (obudowa 0805)
1 x Mikroswitch SMD
1 x Koralik ferrytowy o prądzie min. 80 mA.
1 x Stabilizator LD1117V33 w obudowie SMD (SOT223)
1 x Listwa pinowa 2,54mm (100 mil) 40 pin
1 x Złącze 2,54mm (100 mil) 4x2-pin męska
1 x Gniazdo na goldpiny 2,54mm (100 mil) 40 pin
1 x Zworka 2,54 mm (100 mil) - taka sama jak w komputerach.
Krok 2: Wykonanie PCB
Kolejnym krokiem jest wykonanie płytki drukowanej. To nie jest opis trawienia płytek, więc pominięto szczegóły tego procesu.
Trawienie PCB
Przed wybraniem metody wykonania PCB trzeba upewnić się, że pozwoli ona odwzorować cienkie ścieżki - 0,3 mm - jakie są w projekcie. Nikt nie twierdzi, że np. metoda z wykorzystaniem wydruków z drukarki laserowej nie umożliwi osiągnięcia takiej rozdzielczości, ale z pewnością będzie to trudniejsze niż wykorzystanie fotorezystu.
W opisywanym projekcie wykorzystano metodę optyczna. Trzeba upewnić się, że posiada się wysokiej rozdzielczości folię z wydrukiem, inaczej może być problem z odpowiednią ekspozycją i osiągnięciem zamierzonej rozdzielczości na PCB.
Wiercenie otworów w PCB
Po wytrawieniu laminatu trzeba wywiercić otwory na elementy przewlekane. Większość otworów jest wiercone wiertłem 0,8 mm lub 1 mm. Układy scalone i koralik ferrytowy mają otwory montażowe 0,8 mm, goldpiny, zworki i złącza 1 mm. Dodatkowo złącze MagJack ma dwa otwory o średnicy 1,6 mm dla ekranu i 3,2 mm dla plastikowych wsporników. Złącze zasilania ma trzy otwory o średnicy 3,2 mm na PCB. Złącze USB powinno mieć na PCB dwa otwory 0,9 mm, ale 1 mm sprawdzają się równie dobrze. Dodatkowo przewidziano 4 otwory montażowe 3,2 mm na PCB dla nóżek.
Dokumentację płytki drukowanej można pobrać ze strony projektu.
Krok 3: Lutowanie elementów
Po wywierceniu wszystkich otworów można przystąpić do montażu elementów. Większość elementów elektronicznych jest w obudowach SMD, więc trzeba uzbroić się w topnik i pęsetę. Montaż rozpocząć należy od kondensatorów 100 nF gdyż są one najmniejsze. Po zamontowaniu elementów w obudowach 0603 przystąpić można do większych - 0805 a potem 3528. Na końcu montażu elementów SMD lutujemy oscylatory, port USB i mikroswitch.
Po wlutowaniu elementów SMD przystępujemy do montażu elementów przewlekanych. Zworki pod procesorem należy wlutować przed umieszczeniem podstawki pod układ w PCB.
Przed zalutowaniem złącza MagJack trzeba odciąć z niego piny 4, 5 i 6 - nie są one używane, więc zostały usunięte z projektu, aby mieć więcej miejsca na ścieżki.
Układ ENC28J60 musi być wlutowany bezpośrednio w PCB, gdyż generuje on sporo ciepła. Dzięki temu ścieżki będą funkcjonowały jako radiator, odprowadzający ciepło z układu. Wlutowanie tego układu scalonego bezpośrednio w PCB ma też tą zaletę, że pozwala na zmniejszenie pasożytniczych pojemności i indukcyjności, które wprowadzać mogą dodatkowy szum do sygnałów ethernetowych.
Podczas lutowania stabilizatora napięcia dobrze jest dodać nadmiarową ilość lutowia do górnej ścieżki. Ułatwi do rozpraszanie ciepła generowanego przez ten element.
Po wlutowaniu wszystkich elementów trzeba zmyć z płytki nadmiar topnika np. izopropanolem. Ostatnim krokiem na tym etapie jest umieszczenie zworki wyboru źródła napięcia zasilania.
Krok 4: Testowanie
Płytka jest już gotowa. Przed umieszczeniem mikrokontrolera w gnieździe dobrze jest sprawdzić napięcie na pinach VDD i reset układu. Powinno tam być około 3,3 V względem dowolnego punktu masy (VSS) na PCB.
Jeśli napięcia się zgadzają, można podłączyć do włączonej płytki switch albo router ethernetowy. Migające diody LEC na gnieździe MagJack potwierdzą działanie interfejsu sieciowego. Dioda statusu (w tym przypadku żółta) powinna zapalić się na stałe, co oznacza że warstwa fizyczna interfejsu działa poprawnie.
Jeśli wszystkie testy zakończą się powodzeniem można włożyć do układu mikrokontroler i podpiąć programator do złącza ICSP. Jeśli nie mamy takiego programatora musimy przekładać układ z gniazda programatora do podstawki w naszej płytce rozwojowej.
Krok 5: Rozpocznij pisanie!
Ostatnim krokiem jest korzystanie z płytki, co zależne będzie od wykorzystanego środowiska programistycznego i kompilatora. Autor korzysta z środowiska Microchipa - MPLAB X IDE z kompilatorem XC8. Łatwo w sieci można znaleźć programy pozwalające na obsłużenie interfejsu sieciowego oraz protokołów telnetu i ICMP z układami PIC16 i PIC18. Przykłady z sieci mogą wymagać niewielkich modyfikacji, pod kontem wykorzystanego układu i sposobu podłączenia pinu CS do mikrokontrolera. W płytce prototypowej pin CS podłączony jest do RC6.
Poza ethernetem:
Jak łatwo zauważyć najwięcej opisu poświęcono interfejsowi sieciowemu, ale to tylko część możliwości płytki. Obecność tego interfejsu nie oznacza, że trzeba z niego korzystać przy każdej okazji i w każdym projekcie. Płytka nadaje się także do stosowania przy innych projektach. Jeśli chcemy w nich korzystać z SPI trzeba jednakże pin CS układu ENC28J60 (RC6) utrzymywać w stanie wysokim.
Źródło: http://www.instructables.com/id/PIC18-Development-Board-with-Ethernet-and-USB/?ALLSTEPS
Opis płytki rozwojowej:
Płytka oparta jest o mikrokontroler PIC18LF4553. Układ ten posiada interfejs USB 2.0 o pełnej prędkości (do 12 Mbit/s), który do działania nie wymaga żadnych zewnętrznych układów. Mikrokontoler wyposażony jest w 32 kB pamięci programu, 2 kB pamięci RAM i może działać z zewnętrznym zegarem taktującym jego działanie o częstotliwości do 48 MHz. Wykorzystanie zewnętrznego zegara jest opcjonalne, gdyż układ posiada wbudowany system taktowania o częstotliwości 8 MHz.
Kontroler sieci ethernet ENC28J60 wykorzystany jest w projekcie do zapewnienia mikrokontrolerowi połączenia z siecią poprzez interfejs SPI. Układ ENC28J60 posiada wbudowany MAC oraz warstwę fizyczną 10Base-T i 8 kB pamięci RAM. Działa on w trybach full- i half-duplex w sieciach 10/100/1000Base-T.
Mikrokontroler nie jest wlutowany w płytkę drukowaną (PCB) na stałe, ale znajduje się w podstawce. Pozwala to na wygodne testowanie układu na płytce rozwojowej i następnie przekładanie go do prototypu finalnego urządzenia, w którym układ ten ma pracować. Z uwagi na to że kontroler sieci ethernet zasilany jest z napięcia 3,3 V autor zdecydował się zastosować takie napięcie zasilania dla mikrokontrolera. Pozwoliło to uprościć projekt (tylko jedno napięcie zasilania - jeden stabilizator i brak translatorów poziomu pomiędzy układami) i oszczędzić miejsce na PCB.
Zastosowanie układu z serii LF nie ogranicza oczywiście zakresu napięć zasilania, gdyż układy te mogą pracować z VDD od 2,0 V do 5,5 V. Oznacza to, że można prototypować na niej także układy, które docelowo zasilane mają być napięciem np. 5 V.
Płytka prototypowa zasilana może być z portu USB lub zewnętrznego zasilacza napięcia stałego. Napięcie musi wynosić od 4,5 V do 12 V. Pamiętać trzeba, że układ ENC28J60 pobierać może do 180 mA, więc zasilanie np. z baterii może nie być najlepszym pomysłem. Wybór źródła napięcia zasilania (USB lub zewnętrzny zasilacz) dokonuje się zworką.
Krok 1: Elementy
Do wykonania płytki prototypowej według niniejszego projektu potrzebne będą:
10 x Kondensator ceramiczny SMD (obudowa 0603) 100 nF
2 x Kondensator tantalowy SMD (obudowa 3528) 10 µF
4 x Kondensator ceramiczny SMD (obudowa 0805) 22 pF
1 x Mikrokontroler PIC18LF4553 lub PIC18LF4550 (w obudowie PDIP) - lepiej wykorzystać jest PIC18LF4553 ponieważ ma 12 bitowy przetwornik analogowo-cyfrowy (ADC). Dodatkowo PIC18LF445x mają 24 kB pamięci, a nie 32 kB. Oba układy są kompatybilne z płytką.
1 x Podstawka PDIP 40 pin
1 x Układ ENC28J60 w obudowie SPDIP
1 x Złącze MagJack RJ45
1 x Złącze zasilacza DC 5,5 mm
1 x Złącze USB Mini-B SMD
1 x Oscylator 25MHz w obudowie SMD (HC49/UP)
1 x Oscylator 8MHz w obudowie SMD (HC49/UP) - zamiast niego można wykorzystać dowolny inny o częstotliwości do 48 MHz
2 x Oporniki 10 kΩ SMD (obudowa 0805)
8 x Oporniki 100 Ω SMD (obudowa 0805) - najlepiej o tolerancji 1%
1 x Opornik 1,5 kΩ SMD (obudowa 0805)
1 x Opornik 2,2 kΩ SMD (obudowa 0805) - najlepiej o tolerancji 1%
1 x Opornik 120 Ω SMD (obudowa 0805) - najlepiej o tolerancji 1%
2 x Oporniki 470 Ω SMD (obudowa 0805)
1 x Mikroswitch SMD
1 x Koralik ferrytowy o prądzie min. 80 mA.
1 x Stabilizator LD1117V33 w obudowie SMD (SOT223)
1 x Listwa pinowa 2,54mm (100 mil) 40 pin
1 x Złącze 2,54mm (100 mil) 4x2-pin męska
1 x Gniazdo na goldpiny 2,54mm (100 mil) 40 pin
1 x Zworka 2,54 mm (100 mil) - taka sama jak w komputerach.
Krok 2: Wykonanie PCB
Kolejnym krokiem jest wykonanie płytki drukowanej. To nie jest opis trawienia płytek, więc pominięto szczegóły tego procesu.
Trawienie PCB
Przed wybraniem metody wykonania PCB trzeba upewnić się, że pozwoli ona odwzorować cienkie ścieżki - 0,3 mm - jakie są w projekcie. Nikt nie twierdzi, że np. metoda z wykorzystaniem wydruków z drukarki laserowej nie umożliwi osiągnięcia takiej rozdzielczości, ale z pewnością będzie to trudniejsze niż wykorzystanie fotorezystu.
W opisywanym projekcie wykorzystano metodę optyczna. Trzeba upewnić się, że posiada się wysokiej rozdzielczości folię z wydrukiem, inaczej może być problem z odpowiednią ekspozycją i osiągnięciem zamierzonej rozdzielczości na PCB.
Wiercenie otworów w PCB
Po wytrawieniu laminatu trzeba wywiercić otwory na elementy przewlekane. Większość otworów jest wiercone wiertłem 0,8 mm lub 1 mm. Układy scalone i koralik ferrytowy mają otwory montażowe 0,8 mm, goldpiny, zworki i złącza 1 mm. Dodatkowo złącze MagJack ma dwa otwory o średnicy 1,6 mm dla ekranu i 3,2 mm dla plastikowych wsporników. Złącze zasilania ma trzy otwory o średnicy 3,2 mm na PCB. Złącze USB powinno mieć na PCB dwa otwory 0,9 mm, ale 1 mm sprawdzają się równie dobrze. Dodatkowo przewidziano 4 otwory montażowe 3,2 mm na PCB dla nóżek.
Dokumentację płytki drukowanej można pobrać ze strony projektu.
Krok 3: Lutowanie elementów
Po wywierceniu wszystkich otworów można przystąpić do montażu elementów. Większość elementów elektronicznych jest w obudowach SMD, więc trzeba uzbroić się w topnik i pęsetę. Montaż rozpocząć należy od kondensatorów 100 nF gdyż są one najmniejsze. Po zamontowaniu elementów w obudowach 0603 przystąpić można do większych - 0805 a potem 3528. Na końcu montażu elementów SMD lutujemy oscylatory, port USB i mikroswitch.
Po wlutowaniu elementów SMD przystępujemy do montażu elementów przewlekanych. Zworki pod procesorem należy wlutować przed umieszczeniem podstawki pod układ w PCB.
Przed zalutowaniem złącza MagJack trzeba odciąć z niego piny 4, 5 i 6 - nie są one używane, więc zostały usunięte z projektu, aby mieć więcej miejsca na ścieżki.
Układ ENC28J60 musi być wlutowany bezpośrednio w PCB, gdyż generuje on sporo ciepła. Dzięki temu ścieżki będą funkcjonowały jako radiator, odprowadzający ciepło z układu. Wlutowanie tego układu scalonego bezpośrednio w PCB ma też tą zaletę, że pozwala na zmniejszenie pasożytniczych pojemności i indukcyjności, które wprowadzać mogą dodatkowy szum do sygnałów ethernetowych.
Podczas lutowania stabilizatora napięcia dobrze jest dodać nadmiarową ilość lutowia do górnej ścieżki. Ułatwi do rozpraszanie ciepła generowanego przez ten element.
Po wlutowaniu wszystkich elementów trzeba zmyć z płytki nadmiar topnika np. izopropanolem. Ostatnim krokiem na tym etapie jest umieszczenie zworki wyboru źródła napięcia zasilania.
Krok 4: Testowanie
Płytka jest już gotowa. Przed umieszczeniem mikrokontrolera w gnieździe dobrze jest sprawdzić napięcie na pinach VDD i reset układu. Powinno tam być około 3,3 V względem dowolnego punktu masy (VSS) na PCB.
Jeśli napięcia się zgadzają, można podłączyć do włączonej płytki switch albo router ethernetowy. Migające diody LEC na gnieździe MagJack potwierdzą działanie interfejsu sieciowego. Dioda statusu (w tym przypadku żółta) powinna zapalić się na stałe, co oznacza że warstwa fizyczna interfejsu działa poprawnie.
Jeśli wszystkie testy zakończą się powodzeniem można włożyć do układu mikrokontroler i podpiąć programator do złącza ICSP. Jeśli nie mamy takiego programatora musimy przekładać układ z gniazda programatora do podstawki w naszej płytce rozwojowej.
Krok 5: Rozpocznij pisanie!
Ostatnim krokiem jest korzystanie z płytki, co zależne będzie od wykorzystanego środowiska programistycznego i kompilatora. Autor korzysta z środowiska Microchipa - MPLAB X IDE z kompilatorem XC8. Łatwo w sieci można znaleźć programy pozwalające na obsłużenie interfejsu sieciowego oraz protokołów telnetu i ICMP z układami PIC16 i PIC18. Przykłady z sieci mogą wymagać niewielkich modyfikacji, pod kontem wykorzystanego układu i sposobu podłączenia pinu CS do mikrokontrolera. W płytce prototypowej pin CS podłączony jest do RC6.
Poza ethernetem:
Jak łatwo zauważyć najwięcej opisu poświęcono interfejsowi sieciowemu, ale to tylko część możliwości płytki. Obecność tego interfejsu nie oznacza, że trzeba z niego korzystać przy każdej okazji i w każdym projekcie. Płytka nadaje się także do stosowania przy innych projektach. Jeśli chcemy w nich korzystać z SPI trzeba jednakże pin CS układu ENC28J60 (RC6) utrzymywać w stanie wysokim.
Źródło: http://www.instructables.com/id/PIC18-Development-Board-with-Ethernet-and-USB/?ALLSTEPS
Fajne? Ranking DIY
