Cieszące się coraz większą popularnością mikrokontrolery PSoC firmy Cypress wymagają odpowiedniego programatora. Opisywany niżej umożliwia ich programowanie w trybie ISSP (In-system Serial Programming). Programator ma bardzo prostą budowę i praktycznie składa się z kilku bardzo tanich elementów. Podłączany jest do portu równoległego LPT komputera PC.
Interfejs ISSP mikrokontrolerów PSoC umożliwia ich programowanie już po zamontowaniu w systemie. Wykorzystanie takiego sposobu programowania pozwala zrezygnować z zakupu programatora stacjonarnego. Jak wspomniano we wstępie, programator kontrolowany jest przez dedykowany dla niego i udostępniany za darmo program o nazwie Cyp. Programator obsługuje programowanie mikrokontrolerów PSoC w dwóch trybach: PowerOn oraz Reset.
W trybie PowerOn programowanie następuje przez dołączenie napięcia zasilającego do mikrokontrolera. Dzieje się to bez udziału linii zerującej XRES. W tym trybie można programować wszystkie typy mikrokontrolerów PSoC, które programowane są przed montażem w systemie, w którym będą pracowały.
W trybie Reset mogą być programowane wszystkie mikrokontrolery PSoC wyposażone w linie zerowania. W tym trybie nie mogą być programowane mikrokontrolery w małych obudowach (8-nóżkowych), gdyż nie mają one linii zerującej XRES. Tryb ten jest polecany do programowania mikrokontrolerów zamontowanych już w systemie, w którym mają pracować.
Opis działania układu
Na rys. 1 przedstawiono schemat ideowy programatora. Jest on sterowany z użyciem równoległego portu LPT, a dokładnie przez jego linie Dx i ACK. Linia D0 portu LPT jest linią zerującą XRES interfejsu programującego ISSP. Linia D1 została użyta do załączania napięcia dla programowanego mikrokontrolera w trybie pracy PowerOn. Załączanie zasilania odbywa się z wykorzystaniem tranzystora T1 z elementami R2 i R3. Zasilanie dla programowanego układu w trybie PowerOn musi być podane na linie VCC interfejsu ISSP i nie może być wyższe niż +5 V. Włączenie napięcia w trybie PowerOn sygnalizuje dioda LED D1. Rezystor R4 ogranicza prąd diody LED a kondensator C2 dodatkowo filtruje załączone napięcie zasilające programowany mikrokontroler. Linia D2 pracuje jako wyjściowa linia danych a linia ACK jako wejściowa linia danych interfejsu ISSP. Dioda D2 zabezpiecza linię wyjściową danych przed zmianami stanu linii wejściowej, kiedy to mikrokontroler z wykorzystaniem linii SDATA wysyła dane. Rezystor R1 odpowiednio polaryzuje linię wejściową SDATA. Linia D4 jest linią zegarową SCLK interfejsu ISSP. Dodatkowo na wyjście złącza programującego Z2 wyprowadzony został sygnał LEDP (dołączony do linii SCLK), który może być dołączony do diody LED sygnalizującej programowanie. Kondensator C1 filtruje napięcie zasilające programator.
Złącze ISSP programatora składa się z następujących linii:
- VCCX: napięcie zasilające programowany układ (wymagany podczas programowania w trybie PowerOn),
- XRES: sygnał zerowania (wymagany podczas programowania w trybie Reset),
- VCC: napięcie zasilające programator 2,7…5,5 V,
- SCLK: sygnał zegarowy,
- SDATA: sygnał danych,
- GND: masa programatora
Montaż i uruchomienie
Schemat montażowy programatora mikrokontrolerów PSoC przedstawiono na rys. 2. Większość elementów programatora przeznaczona jest do montażu SMD. Do ich zamontowania wystarczy lutownica z cienkim grotem, cyna o małej średnicy stopu oraz pinceta. Po zmontowaniu programatora jest on od razu gotowy do pracy i nie wymaga uruchamiania.
Na rys. 3 pokazano sposoby dołączenia programatora do różnych mikrokontrolerów PSoC.
Programator zasilany jest napięciem wprost z programowanego systemu. Zasilenie programatora napięciem większym niż +5 V lub o odwrotnej polaryzacji wiązać się będzie z możliwością jego uszkodzenia lub portu LPT. Programem współpracującym z zaprezentowanym programatorem jest program Cyp.
Program sterujący Cyp
Programem przeznaczonym do obsługi programatora jest program Cyp. Na rys. 4 przestawiono widok okna głównego programu Cyp. Program umożliwia wczytanie pliku z programem, jego zapisanie, przeładowanie oraz czyszczenie bufora. Na programowanym układzie możliwe jest wykonanie następujących operacji: programowanie, weryfikacja zapisanego programu, sprawdzenie sumy kontrolnej, odczyt programu z mikrokontrolera, kasowanie pamięci oraz zabezpieczenie zapisanego w mikrokontrolerze programu.
Konfigurację programatora można przeprowadzić w okienku po naciśnięciu przycisku Settings. Na rys. 5 pokazano okno Settings. Można w nim skonfigurować port LPT do którego został dołączony programator, opóźnienie pracy portu czy można włączyć weryfikacje zapisanego programu w mikrokontrolerze. Aby programator pracował poprawnie należy wybrać programator TYPE 4. Dodatkowo w tym okienku można skonfigurować czy programator będzie programował w trybie PowerOn czy Reset. Do programu sterującego programatorem można wczytywać pliki z programem z rozszerzeniem *.hex.
Podsumowanie
Wiadomo już że mikrokontrolery PSoC swoimi możliwościami przewyższają typowe mikrokontrolery 8-bitowe nie tylko możliwościami rekonfiguracyjnymi, ale także i ilością dostępnych peryferii, a zwłaszcza tych analogowych. Przedstawiony programator jest jednym z podstawowych narzędzi bez którego nie można rozpocząć pracy z mikrokontrolerami PSoC.
Marcin Wiązania