Elektroda.pl
Elektroda.pl
X
Metal Work Pneumatic
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Płytka prototypowa dla PIC18 z USB i Ethernetem

ghost666 17 Sie 2015 15:08 5067 10
  • Płytka prototypowa dla PIC18 z USB i Ethernetem
    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

    Płytka prototypowa dla PIC18 z USB i Ethernetem Płytka prototypowa dla PIC18 z USB i Ethernetem Płytka prototypowa dla PIC18 z USB i Ethernetem




    Płytka prototypowa dla PIC18 z USB i Ethernetem Płytka prototypowa dla PIC18 z USB i Ethernetem Płytka prototypowa dla PIC18 z USB i Ethernetem
    Płytka prototypowa dla PIC18 z USB i Ethernetem Płytka prototypowa dla PIC18 z USB i Ethernetem Płytka prototypowa dla PIC18 z USB i Ethernetem


    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

    Płytka prototypowa dla PIC18 z USB i Ethernetem
    Płytka prototypowa dla PIC18 z USB i Ethernetem Płytka prototypowa dla PIC18 z USB i Ethernetem
    Płytka prototypowa dla PIC18 z USB i Ethernetem Płytka prototypowa dla PIC18 z USB i Ethernetem


    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

    Płytka prototypowa dla PIC18 z USB i Ethernetem Płytka prototypowa dla PIC18 z USB i Ethernetem Płytka prototypowa dla PIC18 z USB i Ethernetem Płytka prototypowa dla PIC18 z USB i Ethernetem Płytka prototypowa dla PIC18 z USB i Ethernetem


    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!

    Płytka prototypowa dla PIC18 z USB i Ethernetem


    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
  • Metal Work Pneumatic
  • #3 18 Sie 2015 10:32
    22053
    Użytkownik usunął konto  
  • #4 18 Sie 2015 10:55
    ghost666
    Tłumacz Redaktor

    R-MIK napisał:
    ghost666 napisał:
    (...)i brak translatorów poziomu pomiędzy układami)(...)

    ENC28J60 nie wymaga translatorów. Akceptuje 5V na wejściach, choć sam jest zasilany z 3,3V.


    Ale w drugą stronę może być problem. Stan wysoki w 3v3 to 2,4 do 3,3 V a dla 5v to od 2,7 do 5 V - jest 0,3 V dla stanów nieustalonych ;). I chociaż to nie powinno wywoływać problemów z komunikacją, to kultura techniczna wymaga jednak zastosowania translatora dla pewności. Szczególnie w takim układzie jak płytka prototypowa, gdzie wszystko musi działać bez problemów, aby móc testować soft.

  • Metal Work Pneumatic
  • #5 18 Sie 2015 11:57
    michalko12
    Specjalista - Mikrokontrolery

    ghost666 napisał:
    Stan wysoki w 3v3 to 2,4 do 3,3 V

    Z tym, że te napięcie jest uzależnione od poziomu obciążenia portu, a wejście w CPU nie stanowi żadnego obciążenia dla ENC, więc translator jest tylko dmuchaniem na zimne.

  • #6 18 Sie 2015 12:28
    22053
    Użytkownik usunął konto  
  • #7 18 Sie 2015 13:42
    sstasinek
    Poziom 12  

    R-MIK napisał:

    Informacje wziąłem z noty producenta. Czyżby pracowali tam barany?
    ...
    Noty czytać ludzie, czytać!


    Czemu od razu barany?
    Uważasz sie za kogoś lepszego niż człowiek?
    Wystarczy że tworzyli go ludzie. Niezbyt uważnie czytałeś notke, nie zauważyłeś że owszem ENJ akceptuje 5V na wejściach SI, CLK, CS ale do wyjść SO, INT, CLKOUT dla przyzwoitości wymaga translacji. http://ww1.microchip.com/downloads/en/DeviceDoc/39662c.pdf
    strona dokumentu 8 (w pdf 10)
    Akurat w konkretnym schemacie PIC18 jest zasilany z 3.3V. Rozumiem że w innej konfiguracji, gorszym źródle zasilania, kapke wyższym niż 5V, dajesz gwarancje nie tylko stanów ustalonych, ale niedrenowania źródła przez "nieustalone" pary mosfetów w PIC?
    Ja w notce dla IO nie widze "ST" Schmitt Trigger tylko "I/O TTL".

  • #8 19 Sie 2015 08:52
    Urgon
    Poziom 36  

    AVE...

    Z tym zasilaniem to faktycznie projektanci dali troszkę tyłka. Wszystkie mikrokontrolery PIC1xF mogą być zasilane z 5V bez większych problemów, a napięcie Vusb sobie wytwarzają wewnętrznie. Zatem sensowniej byłoby zamienić regulator na jakiś 7805 lub podobny, dać przełącznik do jego obejścia, a do pinu Vusb podpiąć tylko dobry kondensator MLCC lub tantalowy. Ja tak zrobiłem w swojej płytce prototypowej z PIC18F45K50, się nią nie chwalę, bo jest zrobiona na uniwersalce, więc szpetna jak noc. Jak już układ ma być zasilany z 3v3, to niech wsadzą tam mikrokontroler PIC18LF, który do takiego zasilania jest zoptymalizowany.

  • #9 19 Sie 2015 11:13
    ghost666
    Tłumacz Redaktor

    Urgon napisał:
    AVE...

    Z tym zasilaniem to faktycznie projektanci dali troszkę tyłka. Wszystkie mikrokontrolery PIC1xF mogą być zasilane z 5V bez większych problemów, a napięcie Vusb sobie wytwarzają wewnętrznie. Zatem sensowniej byłoby zamienić regulator na jakiś 7805 lub podobny, dać przełącznik do jego obejścia, a do pinu Vusb podpiąć tylko dobry kondensator MLCC lub tantalowy. Ja tak zrobiłem w swojej płytce prototypowej z PIC18F45K50, się nią nie chwalę, bo jest zrobiona na uniwersalce, więc szpetna jak noc. Jak już układ ma być zasilany z 3v3, to niech wsadzą tam mikrokontroler PIC18LF, który do takiego zasilania jest zoptymalizowany.


    Ale na tej płytce jest taki układ o jakim piszesz -PIC18LF4553

  • #10 19 Sie 2015 12:45
    Urgon
    Poziom 36  

    AVE...

    Patrzyłem na schemat, nie listę komponentów. Co ciekawe, ani strona układu w Microchip, ani nota katalogowa nie wspominają o wersji LF PIC18F4550/4553, choć są dostępne w sprzedaży (oraz jako próbki u producenta). Dlatego to jest trochę niejasne. Ale za to nota katalogowa PIC18(L)F45K50 podaje przykładowe napięcia Vil i Vih:
    TTL >0,8V <2,0V dla zasilania 4,5-5,5V
    TTL >0,15Vdd <0,25Vdd+0,8 dla niższych napięć
    z buforem Schmitta: >0,2Vdd <0,8Vdd
    Zakładając, że faktycznie tam jest PIC18LF4553, i że ma identyczne napięcia, to w tej konfiguracji stan niski będzie od 0,495V, a wysoki do 1,625V. Co daje maksymalnie 1,13V różnicy między stanami niskim i wysokim.

  Szukaj w 5mln produktów