Elektroda.pl
Elektroda.pl
X
IGE-XAOIGE-XAO
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Duża płytka startowa PIC32 + peryferia + przykłady

p.kaczmarek2 17 Lut 2019 16:47 1530 0
  • Duża płytka startowa PIC32 + peryferia + przykłady
    Witajcie moi drodzy.
    Dziś przedstawię projekt, który powstał w 2016 roku.
    Jest to bardzo duża płytka startowa przeznaczona dla mikroprocesorów z rodziny PIC32 w obudowie DIP28 (aczkolwiek PIC24 chyba też by tu mógł wejść). Zawiera ona dość bogate peryferia, które pozwalają zrealizować na niej szeroką gamę projektów związanych z PIC. Celem projektu było stworzenie dla mnie czegoś, co pozwoli mi na naukę PIC32 bez potrzeby noszenia ze sobą dużej ilości płytek stykowych i kabelków, które mają tendencje do odłączania się w transporcie.

    Co oferuje płytka?
    Na pokładzie znajduje się:
    - gniazdo DIP pod 32-bitowy PIC (np. PIC32MX250F128B)
    - wyświetlacz 2x16 wraz z miejscem na konwerter I2C <-> 2x16 (LCM1602)
    - konwerter USB to UART MCP2221
    - zegar RTCC MCP7940 wraz z baterią i oscylatorem 32.768kHz (komunikacja I2C)
    - termometr TC74A3 (komunikacja I2C)
    - expander MCP23017 (komunikacja I2C)
    - pamięć 24LC64 (komunikacja I2C)
    - 4 przyciski
    - 9 diody LED
    - przycisk RESET
    - dwa potencjometry montazowe
    - wyjście USB od PIC32
    - złączę na kartę SD
    - odbiornik IR TSOP31240 lub podobny
    - tranzystor pozwalający resetować głównego PICa z pomocą pinów IO MCP2221
    - złącze ICSP do programowania przez PICKIT
    Większość elementów można podłączyć lub odłączyć poprzez odpowiednie zworki lub dodatkowe kabelki. Dodatkowo PIC32 wspiera tzw. PPS (Peripheral Pin Select), czyli możliwość wyboru na którym fizycznym pinie jest jaka funkcjonalność, co zwiększa uniwersalność projektu. Po prostu w kodzie można sobie wybrać z danego zestawu wyjść gdzie przykładowo będzie Uart1 TX a gdzie Uart1 RX.

    Projekt płytki
    Projekt płytki powstał w Eagle i był robiony z założeniem, że całość jest jednostronna i tworzona w domu z pomocą termotransferu. Unikałem cienkich ścieżek na rzecz dodatkowych przelotek.
    Uwaga - całość była robiona z 3 lata temu, stan i styl tej płytki nie odzwierciedla tego co uważam na temat projektowania PCB teraz!
    Schemat:
    Duża płytka startowa PIC32 + peryferia + przykłady
    Układ elementów:
    Duża płytka startowa PIC32 + peryferia + przykłady
    Wykonanie:
    Duża płytka startowa PIC32 + peryferia + przykłady
    Źródła Eagle:
    PIC32MX2_s...160925.zip Download (173.95 kB)Punkty: 4 dla użytkownika
    Pliki do termotransferu:
    PIC32MX2_s...ansfer.zip Download (107.97 kB)Punkty: 4 dla użytkownika

    Kilka przykładów użycia - tabelka
    Tutaj udostępniam (wraz z kodem źródłowym!) parę projektów zrealizowanych na tej płytce. Są to proste demka poszczególnych funkcjonalności zrealizowanych tutaj na PIC32MX250F128B z rezonatorem 8MHz. Na każde składa się projekt mikroC + HEX + kod C.

    NazwaZałącznikOpis
    Blink LED PIC32MX250..._Blink.zip Download (81.78 kB)Punkty: 4 dla użytkownika Proste miganie diodami co 1000ms
    UART Write PIC32MX250...TWrite.zip Download (106.01 kB)Punkty: 4 dla użytkownika Przykład transmisji znaków ASCII przez UART (wraz z użyciem PPS by zremapować wyjście UART na odpowiedni pin)
    UART LED PIC32MX250...RTRead.zip Download (106.88 kB)Punkty: 4 dla użytkownika Zmiana stanu diody w momencie odebrania znaku na UART (wraz z użyciem PPS by zremapować funkcje UART na odpowiednie piny)
    LCD 4x16 po I2C PIC32MX250...2C_LCD.zip Download (152.49 kB)Punkty: 4 dla użytkownika Obsługa wyświetlacza 4x16 (lub 2x16) poprzez moduł I2C LCM1602
    I2C 1 scanner PIC32MX250...Hz_I2C.zip Download (197.68 kB)Punkty: 4 dla użytkownika Skan dostępnych urządzeń na magistrali I2C 1 z wydrukiem ich adresów na UART
    I2C 2 scanner PIC32MX250...z_I2C2.zip Download (197.38 kB)Punkty: 4 dla użytkownika Skan dostępnych urządzeń na magistrali I2C 2 z wydrukiem ich adresów na UART
    Termometr TC74 PIC32MX250...2_TC74.zip Download (203.56 kB)Punkty: 4 dla użytkownika Odczyt temperatury z TC74 poprzez I2C
    Expander MCP23017 PIC32MX250...P23017.zip Download (127.88 kB)Punkty: 4 dla użytkownika Podstawowa kontrola expandera MCP23017 przez I2C (ustawianie stanu na wyjściach jego pinów, itp)

    Tych przykładów i eksperymentów na tej płytce było więcej, ale zamieszczam tylko te które sprawdziłem niedawno, że na pewno działają.
    Na tej płytce można by chyba nawet zrealizować USB host - PIC32 odczytujący dane z pendrive.

    Kilka przykładów użycia - screeny, zdjęcia
    Zdjęcie poniżej pokazuje rezultat działania przykładu "LCD 4x16 po I2C".
    Duża płytka startowa PIC32 + peryferia + przykłady
    Wyświetlacz LCD jest podpięty do PIC poprzez taki konwerter:
    Duża płytka startowa PIC32 + peryferia + przykłady

    LCD jest zasilane z poziomu 5V, natomiast I2C jest na poziomie zasilania PICa, czyli 3.3V.

    Obrazek poniżej pokazuje rezultat działania przykładu "I2C 2 scanner", który znajduje trzy urządzenia podpięte do drugiej magistrali I2C (termometr TC74, RTCC MCP7940, i expander MCP23017):
    Duża płytka startowa PIC32 + peryferia + przykłady

    Obrazek poniżej pokazuje rezultat działania przykładu "Termometr TC74", który odczytuje temperature z TC74 poprzez I2C. Po dotknięciu palcem TC74 temperatura wzrasta.
    Duża płytka startowa PIC32 + peryferia + przykłady


    Błędy na płytce
    Na płytce znajdują się następujące błędy/niedociągnięcia:
    - MCP7940 ma zamieniony pin VDD (8) z SDA (5) - (chyba trafiłem na błędną bibliotekę Eagle)
    - w przypadku PIC32MX250F128B zworki RX/TX do MCP2221 od RB9 i RB8 nie mają sensu, bo tam nie można zremapować (Peripheral Pin Select) UART na te piny
    - TC74 nie możne być 'na stojąco' bo blokowałby miejsce na konwerter I2C od LCD2x16, więc miejsce na dwa piny i zworkę P_DT zastąpić zworką na PCB i położyć TC74 'na leżąco'
    Te błędy nie są poprawione w załączanych plikach Eagle, ponieważ płytka mi dobrze służy w takiej formie w jakiej jest i nie mam po co jej robić ponownie. Ścieżki przy MCP7940 po prostu przeciąłem i połączyłem dodatkowymi zworkami.


    Podsumowanie
    To właśnie ta płytka pozwoliła mi na dobrą sprawę zacząć przygodę z PIC32. Dzięki niej nie musiałem aż tyle walczyć z płytkami stykowymi i zbędnymi kabelkami, a do tego taka płytka jest o wiele bardziej mobilna. Jedną z jej największych zalet jest też konwerter UART<->USB znajdujący się na stałe na pokładzie, z którego korzystałem praktycznie ciągle do sprawdzania działania programów.
    Gdybym miał robić ten projekt teraz, to pewnie zrobiłbym go już w SMD, ale trzy lata temu zaprojektowanie całości w THT było dla mnie jedynym sensownym wyborem.
    P.S.
    Jeśli ktoś chce ogarnąć coś związanego z PICami (32 bądź nie), potrzebuje jakiejś pomocy lub kodu to zapraszam na PW.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    p.kaczmarek2
    Poziom 24  
    Offline 
  • IGE-XAOIGE-XAO