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