Przełącznik na MCP2200 by XBary

Przełącznik na MCP2200 by XBary
Razem głosów: 23 co stanowi: 96.52% całości.

20-SSOPZainspirowany wpisami o układzie MCP2200 o dość sporych możliwościach powstał mały prosty program. Program nazywa się XBPRGSwitch i jego zadaniem jest umożliwienie łatwego sterowania wyjściami GP0..GP7.

Ale od początku.

Podczas nauki oraz realizacji projektu opartego na mikrokontrolerach okazało się, że chcąc zaprogramować jeden mikrokontroler i zaraz następny itd trzeba było przekładać wtyczki USB programatora. Wiadomo że to dość nie zdrowe dla gniazd wtyczek i samych układów bo nie raz podczas tworzenia oprogramowania trzeba zaprogramować układ kilka a nawet kilkadziesiąt razy. Praca w ten sposób byłaby mało efektywna. A Windows i możliwości oprogramowania nie dają opcji wyboru programatora np ST-LINK bo zawsze widać jeden programator w systemie. Jedyne najprostsze rozwiązanie w takim przypadku to zastosowanie multiplexerów, np sprawdzonych 4053. Tak też zrobiłem że do przełączania docelowego mikrokontrolera do zaprogramowania użyłem tych multiplexerów, oraz przejściówkę UART-USB MCP2200.

4
Jako oprogramowanie w roli przełącznika posłuży nam wspomniany XBPRGSwitch do pobrania stąd

Archiwum należy rozpakować do pustego katalogu, a tak powinien wyglądać ten katalog po rozpakowaniu.

1W takiej postaci program się odwołuje do MCP2200 podpiętego USB o VID=04d8 i PID=00df. Jeśli Twoja przejściówka ma inne te numery to program można raz uruchomić z parametrami:

>XBPRGSwitch.exe /vid=xxxx /pid=xxxx

Utworzy się w katalogu z programem plik xbprgswitch.ini z zapisanymi wartościami, program powinien po uruchomieniu już widzieć wskazaną przejściówkę MCP…
Możliwości uruchomienia przełącznika są trzy, jako program rezydentny oraz z konsoli z parametrem z włączonym jako rezydent i jako zwykła komenda.
Po uruchomieniu klikając w ikonę programu powinna się pojawić mała ikonka koło zegarka na pasku zadań >

2

Jeśli przez kilka sekund nie zmieni koloru to oznacza że program nie widzi przejściówki MCP2200, jeśli zmieni kolor na tak >

Oznacza to że program nawiązał połączenie i klikając prawym klawiszem myszki mamy widoczne na obrazku dostępne domyślne opcje przełączania. Wybranie jednej z pozycji PRG1 out..PRG5 out spowoduje przełączenie pinów GP0..GP4 w odpowiedni stan, dla pozycji zaznaczonej jest to stan niski, a nie zaznaczona to stan wysoki(domyślnie ustawiony w układzie MCP2200). Następnie osobny przełącznik  UART>DISCOVERY i UART > MCP2200 operuje na pinie GP5, a pozostałe GP6 i GP7 są zostawione do sygnalizacji transmisji na RX/TX przejściówki MCP2200.

W tym miejscu można by zakończyć opis, bo program właśnie do tego ma służyć – czyli do przełączania. Dopiero konfiguracja pokazuje możliwości przełącznika.

Jeśli uruchomimy program jak wyżej iii mamy cały czas widoczną ikonkę obok zegarka, to można wejść w opcje przez menu albo klikając ikonkę żeby otworzyć okno >

5

Opcji nie jest za wiele, w końcu przełącznik ile może mieć tych opcji.
Od lewej mamy przycisk otwierający ten artykuł w domyślnej przeglądarce, następnie numery VID i PID z możliwością edycji (jeśli ktoś ma inne). Wyłączona opcja „Auto-klik…” – jest to doświadczalna opcja i po wykryciu przez program że zainstalowany jest programator Segger J-Link w wersji sklonowanej, to po zaznaczeniu jej  nie powinno się ukazywać co chwilę monit o możliwości aktualizacji firmware programatora. Kolejną opcją jest możliwość ustawienia tak aby przełącznik się uruchamiał razem z systemem, aby narzędzie było cały czas praktycznie pod ręką. Większość okna zajmuje log wykonywanych czynności. Informacje te są może mało istotne, ale widać mniej więcej co się dzieje.

Teraz przejdźmy do opcji których nie widać, bo dotychczas opisałem jak przełączać GPx przez menu z ikonki koło zegarka. Te opcje niewidoczne i chyba najważniejsze są dostępne z lini komend. A więc uszykujmy sobie konsole tak >

6

Otóż tutaj w konsoli dopiero ujawniają się dopiero możliwości jakie otwiera program by sterować pinami GP0..GP7.  Program umożliwia przełączenie Gpx przez podanie parametru podczas uruchamiania np.wpisanie : XBPRGSwitch.exe /1
spowoduje przełączenie GP0 w stan niski a GP1 do GP4 w stan wysoki.

7

i tak jest z pozostałymi parametrami czyli /1/2/3/4/5/6/7/8 oraz /m/d (które przełączają pin GP5) można je wywołać z lini komend pomimo cały czas rezydującego programu w pasku zadań koło zegarka. Taka możliwość daje nam podpięcie przełącznika praktycznie gdziekolwiek w systemie, począwszy od ustawienia np w projekcie eclipse w  konfiguracji tak aby po kompilacji kodu przełącznik przełączył programator na odpowiednie wyjście. Można napisać skrypt BAT który też wywoła odpowiednie przełączenie w zależności od sytuacji. Wyobraźnia jest jedynym ograniczeniem stosowania przełącznika opartego na MCP2200.Np. pod piny GPx podłączamy popularną płytkę przekaźnikową dostępną w każdym sklepie, i praktycznie bez używania lutownicy i bez umiejętności programowania można sterować z komputera urządzeniami zewnętrznymi.

Wracamy do konfigurowania,bo z tych nie widocznych opcji to jeszcze jest nie wszystko.
Otóż w domyślnej konfiguracji program jest dostosowany do przełączania wyjścia programatora na tej płycie >

8

Dopiero edycja pliku xbprgswitch.ini daje możliwość dostosowania przełącznika do swojego projektu. Wystarczy w sekcji [main] dodać taki wpis xbswitch=0 i znikną wszystkie domyślne ustawienia odnoszące się do przełączania GPx.
Aby jakiekolwiek zmiany w pliku ini zostały zapamiętane to przed edycją należy wyjść z programu zamykając jego okno lub przez menu. Teraz nasze menu wygląda tak >

9

Struktura konfiguracji każdego z GPx jest w sumie prosta, każdy pin ma swoją osobną sekcje, wygląda to w ten sposób że dopisujemy do pliku INI sekcję [GP0] i w niej ustawiamy przez specjalne zmienne które są odpowiedzialne za działanie przełącznika odnośnie danego pinu GP0.
A to są te zmienne:
visible=1 – taki wpis w sekcji GP0 spowoduje ze pozycja ta będzie widoczna w menu przełącznika.
caption=wentylator – nazwa pozycji wyświetlana w menu przełącznika.
msg=włączono wentylator – to jest tekst jaki się pojawi w logu wykonywanych czynności.
group=10 – w tej zmiennej ustawiamy sposób w jaki ma się odbywać przełączanie, jeśli w każdej sekcji zmienna ta ma inną wartość to przełączanie każdego pinu GP0 odbywa się niezależnie. Jeśli np w dwóch sekcjach group będzie miało taką samą wartość to przełączanie będzie pomiędzy tymi pinami, działa to na tej zasadzie że tylko jedna pozycja w menu może być zaznaczona w obrębie tej samej grupy.
checked=0 – tą zmienną ustawiamy czy pozycja zaznaczona w menu przełącznika jest stanem niski czy wysokim, w tym przypadku niskim i tak jest też standardowo.
separator=1 – tą zmienną decydujemy czy za pozycją w menu ma się pojawić linia pozioma tzw separator.

Przykładowe konfiguracje:

10

11

Myślę że nie trzeba już więcej podawać przykładów jak skonfigurować przełącznik przez plik ini, dodam tylko taką jeszcze sytuację kiedy będziemy chcieli kompletnie odhaczyć gp1 i gp2 bo mamy ją w jednej grupie i działają na zasadzie przełącznika. Aby tego dokonać należy z lini komend uruchomić program z takimi parametrami /2=off /3=off .

To już by było na tyle jeśli chodzi o przełącznik, pomysły odnośnie tego programu jeszcze są :)  i jak zdrowie pozwoli to pojawią się kolejne ciekawe opcje w następnych wersjach.

Podziel się na:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay