Witajcie moi drodzy
Dzisiaj chciałbym przedstawić wam mój projekt płytki developerskiej z układem MCP2221. MCP2221 jest to konwerter USB-UART wraz z dodatkowymi wyjściami, które można ustawić w różnych trybach (input, output, ADC, itp) od Microchipa.
Co oferuje MCP2221?
- działanie na napięciu od 3.0 do 5.5V
- wirtualny port COM
- wyjścia I2C
- 4 piny GPIO
- 3 10-bitowe ADC
- 1 5-bitowe DAC
Projekt płytki
Schemat wzorowałem na tym dostępnym w nocie katalogowej układu.
Opracowałem taki schemat (początkowo chciałem na płytce zamieścić również diodę POWER, ale uznałem, że szkoda miejsca):
Płytkę zaprojektowałem jednostronną, tylko z elementami przewlekanymi, wraz z warstwą opisową.
Całość wykonałem metodą termotransferu i myślę, że wyszło dość nieźle.
Instalacja sterowników
Po podłączeniu poprawnie zlutowanej płytki powinniśmy zobaczyć coś takiego:
Świadczy to o braku sterowników. To dobry znak, ponieważ sterowniki można zainstalować bez problemu.
Sterowniki można ściągnąć ze strony Microchipa, ale dla wygody umieściłem je również w załącznikach do tego postu.
Po zainstalowaniu sterowników nasze urządzenie powinno być już poprawnie rozpoznawane przez "Menadżer urzadzeń".
Testowanie działania konwertera USB-UART
Najprościej przetestować całość można poprzez zwarcie wyjścia TX do RX, przez co wszystko co wyślemy, zostanie również przez nas odebrane. Do wysyłania/odbierania danych starczy dowolny terminal UART, ja użyłem RealTerm:
Sterowanie dodatkowymi pinami MCP2221
MCP2221 posiada dodatkowe piny, którymi można sterować z poziomu aplikacji na komputerze poprzez USB. Wielkim plusem tego jest fakt, że MCP2221 nie wymaga programowania - sterowanie odbywa się poprzez USB. Można dowolnie zmieniać konfiguracje pinów, ich tryb (wejście, wyjście, ADC) w trakcie działania układu.
Do testowania pinów MCP2221 służy aplikacja MCP2221 Utility od Microchipa:
MCP2221 Utility powinno automatycznie rozpoznać urządzenie po podłączeniu do komputera (jeśli są sterowniki).
Oczywiście, można również nimi sterować z poziomu programu (np. w języku C++). Ale to już jest bardziej skomplikowane.
Biblioteka MCP2221 HID autostwa Zak Kemble
Jest to niezależne od Microchipa rozwiązanie dla komunikacji z MCP2221. Całość jest open source i dostępna na licencji GPL. Stanowi ona alternatywę dla tego, co udostepnia Microchip i w mojej opinii działa całkiem nieźle.
Więcej informacji tutaj: http://blog.zakkemble.co.uk/mcp2221-hid-library/
I tutaj: https://github.com/zkemble/libmcp2221
Do biblioteki dołączone jest kilka przykładowych aplikacji, które można również skompilować na Windowsie w Visual Studio.
Aplikacja test GPIO:
Aplikacja test ADC:
Aplikacja test miscellaneous:
Załączniki
MCP2221_pcb_eagle_pdf.zip - projekt mojej płytki w Eagle wraz z pdfami do termotransferu (warstwa ścieżek i osobno warstwa opisowa)
mcp2221_eagle_lbr.zip - biblioteka lbr dla Eagle MCP2221
MCP2221 Windows Driver 2014-10-09.zip - sterowniki MCP2221 dla Windowsa
MCP2221Utility.zip - wygodne narzędzie do testów MCP2221
MCP2221Terminal.zip - bardziej zaawansowane narzędzie do testów MCP2221
MCP2221DLL_2015_06_17.zip - biblioteka do obsługi MCP2221 od Microchipa
libmcp2221-master-2016.zip - biblioteka OpenSource do usługi MCP2221 na licencji GPL
Podsumowanie
MCP2221 jest moim zdaniem ciekawym i bardzo niedocenionym układem. Można na jego bazie zbudować prosty programator bądź bootloader dla innych mikroprocesorów. Jego dużym atutem są dodatkowe piny IO, które mogą działać w różnych trybach, oraz szeroka gama narzędzi, zarówno tych od Microchipa jak i open source. Osobiście zamierzam zastosować MCP2221 w paru moich zaplanowanych już projektach, które tutaj niedługo też pewnie wrzucę.
Fajne? Ranking DIY Pomogłem? Kup mi kawę.