Złącze programujące Kanda to standardowy interfejs ISP (In-System Programming), który umożliwia programowanie mikrokontrolerów AVR bez wyjmowania ich z urządzenia. Stosuje się je między innymi w programatorach USBasp, zestawach AVT, płytkach rozwojowych oraz urządzeniach wyposażonych w interfejs SPI do programowania.
Czym jest złącze programujące Kanda?
Kanda to popularny standard złącza ISP używany z mikrokontrolerami AVR firmy Atmel, należącej obecnie do Microchip Technology. Pozwala programować układ wlutowany w płytkę drukowaną, bez jego demontażu i programowania równoległego.
Typowe złącze Kanda wyprowadza linie interfejsu SPI: MOSI, MISO i SCK, a także sygnał RST, zasilanie VCC oraz masę GND.
Złącze może również służyć do zasilania programowanego układu. Niektóre programatory podają napięcie przez pin VCC, dzięki czemu nie trzeba korzystać z osobnego zasilacza. Rozwiązanie to jest odpowiednie wyłącznie wtedy, gdy pobór prądu przez urządzenie nie przekracza możliwości programatora.
Wiele programatorów AVR ma 10-pinowe złącze Kanda, natomiast na płytkach rozwojowych często występuje 6-pinowe złącze Atmel ISP. Oba warianty są funkcjonalnie zgodne, dlatego można łączyć je za pomocą odpowiedniej przejściówki.
Jakie sygnały wyprowadza złącze Kanda?
Każdy sygnał złącza Kanda pełni określoną funkcję podczas programowania mikrokontrolera:
- VCC – napięcie zasilające lub napięcie odniesienia układu, najczęściej 5 V albo 3,3 V;
- GND – masa stanowiąca wspólny potencjał odniesienia;
- SCK – sygnał zegarowy sterujący przesyłaniem danych przez interfejs SPI;
- MOSI – linia przesyłająca dane z programatora do mikrokontrolera;
- MISO – linia przesyłająca dane z mikrokontrolera do programatora;
- RST – sygnał resetu, zazwyczaj aktywny w stanie niskim, który umożliwia przejście mikrokontrolera w tryb programowania;
- NC – niepodłączony styk występujący w standardowym wariancie 10-pinowym.
Cykl programowania zwykle rozpoczyna się od wymuszenia stanu niskiego na linii RST. Następnie programator inicjuje komunikację przez linie MOSI, MISO i SCK.
Kanda 6-pin a 10-pin – warianty złącza
W praktyce stosuje się dwa funkcjonalnie zgodne warianty złącza ISP. Najważniejsze różnice przedstawia tabela:
| Wariant | Wyprowadzone sygnały | Typowe zastosowanie | Cechy konstrukcyjne |
|---|---|---|---|
| Atmel ISP 6-pin | MOSI, MISO, SCK, RST, VCC i GND | płytki Arduino i kompaktowe płytki rozwojowe AVR | mniejsze wymiary i komplet sygnałów potrzebnych do programowania |
| Kanda 10-pin | MOSI, MISO, SCK, RST, VCC, GND i NC | programatory USBasp, STK200, STK500 oraz ich klony | dodatkowe styki masy i zgodność z taśmami IDC10 |
Różna liczba styków nie oznacza różnicy funkcjonalnej — oba warianty udostępniają wszystkie sygnały niezbędne do programowania ISP. Dodatkowe styki wersji 10-pinowej służą głównie do powielenia masy oraz dopasowania do złącza i taśmy IDC10.
Budowa mechaniczna złącza Kanda
Złącze Kanda w wersji 10-pinowej bazuje na popularnym złączu IDC10 o rastrze 2,54 mm. Jest ono przystosowane do zaciskania na płaskiej taśmie, najczęściej wykonanej z przewodów AWG28.
Typowy przewód programujący ma złącza IDC10 na obu końcach. Jedno podłącza się do programatora, a drugie do płytki docelowej.
Na PCB można zastosować zamknięte gniazdo IDC z kluczem polaryzacyjnym albo listwę goldpin 2×5, mechanicznie zgodną z odpowiednim wtykiem. W programach CAD, takich jak Autodesk EAGLE, należy wybrać bibliotekę z właściwym rastrem i układem pól lutowniczych.
Pin 1 kabla IDC jest zazwyczaj oznaczony czerwonym paskiem biegnącym wzdłuż taśmy. Oznaczenie to ułatwia prawidłowe ustawienie wtyku względem pinu 1 na programatorze i płytce docelowej.
Gdzie stosuje się złącze Kanda?
Złącze Kanda jest powszechnie wykorzystywane w systemach opartych na klasycznych mikrokontrolerach AVR:
- Programatory AVR – urządzenia takie jak USBasp, STK200, STK500 i ich klony często wykorzystują złącze Kanda 10-pin jako główny interfejs programujący;
- Zestawy rozwojowe i edukacyjne – płytki AVT oraz inne platformy dydaktyczne stosują złącza Kanda 10-pin lub Atmel ISP 6-pin;
- Płytki Arduino i ich klony – korzystają z 6-pinowego złącza ISP, które można połączyć z programatorem 10-pinowym za pomocą adaptera;
- Urządzenia przemysłowe i hobbystyczne – złącze umieszczone na PCB umożliwia programowanie, aktualizowanie oprogramowania i serwisowanie urządzenia.
Prawidłowo zaprojektowane złącze Kanda może pełnić funkcję uniwersalnego portu programującego i serwisowego. Pozwala korzystać z różnych programatorów, pod warunkiem zachowania zgodnego układu pinów oraz odpowiednich poziomów napięcia.
Przejściówki 6–10-pinowe i kompatybilność
Do łączenia programatora ze złączem Kanda 10-pin z płytką wyposażoną w Atmel ISP 6-pin służy niewielki adapter. Zazwyczaj ma on żeńskie gniazdo 6-pinowe oraz męskie złącze 10-pinowe.
Styki obu złączy są połączone bezpośrednio, bez dodatkowych układów aktywnych. Adapter zmienia wyłącznie układ wyprowadzeń — nie konwertuje napięcia ani poziomów logicznych.
Przejściówka może działać również w przeciwnym kierunku, umożliwiając podłączenie programatora z wyjściem 6-pinowym do płytki ze złączem Kanda 10-pin. Warunkiem jest zgodność sygnałów, napięcia zasilającego i poziomów logicznych.
Dzięki adapterowi jeden programator może obsługiwać różne płytki rozwojowe i urządzenia, niezależnie od zastosowanego wariantu złącza ISP.
Kanda w praktyce – typowy sposób użycia
Programator USBasp jest zazwyczaj wyposażony w port USB do komunikacji z komputerem oraz złącze Kanda 10-pin do połączenia z mikrokontrolerem.
Jeśli programator udostępnia taką funkcję, może zasilać układ docelowy przez linię VCC. Linie SPI oraz RST odpowiadają wtedy za przesyłanie danych i wprowadzenie mikrokontrolera w tryb programowania.
Przed włączeniem zasilania z programatora należy sprawdzić, czy jego napięcie jest zgodne z napięciem pracy mikrokontrolera i pozostałych elementów urządzenia. Trzeba również upewnić się, że układ nie jest jednocześnie zasilany z innego źródła, jeśli nie został do tego przystosowany.
Standardowy cykl programowania obejmuje następujące czynności:
- Podłączenie programatora – należy połączyć programator z płytką za pomocą kabla IDC10 lub adaptera 10–6 pinów;
- Sprawdzenie orientacji – pin 1 kabla musi odpowiadać pinowi 1 na obu złączach, a czerwony pasek taśmy powinien wskazywać właściwą stronę;
- Wybór źródła zasilania – układ może być zasilany z programatora, zewnętrznego zasilacza albo własnego źródła systemowego;
- Uruchomienie programowania – oprogramowanie komputerowe przesyła plik wynikowy, na przykład HEX, a programator zapisuje dane w pamięci mikrokontrolera przez interfejs SPI.
Taki sposób pracy realizuje koncepcję programowania w systemie i ułatwia aktualizowanie oprogramowania, testowanie prototypów, produkcję oraz późniejsze serwisowanie urządzeń.
Dobre praktyki projektowania złącza Kanda na PCB
Podczas projektowania złącza Kanda na płytce z mikrokontrolerem AVR warto przestrzegać kilku zasad:
- Zgodny układ sygnałów – piny należy rozmieścić zgodnie ze standardem 6- lub 10-pinowym, aby zachować kompatybilność z typowymi programatorami ISP;
- Łatwy dostęp do złącza – gniazdo powinno umożliwiać wygodne podłączenie taśmy IDC lub adaptera również po zamontowaniu płytki w obudowie;
- Wyraźne oznaczenie pinu 1 – na PCB warto umieścić trójkąt, numer, kwadratowe pole lutownicze lub inne jednoznaczne oznaczenie orientacji;
- Prawidłowe połączenie masy – wszystkie styki GND w wersji 10-pinowej powinny być podłączone do masy układu, co sprzyja zachowaniu integralności sygnałów;
- Odpowiedni typ złącza – zamknięte gniazdo IDC z kluczem ogranicza ryzyko odwrotnego podłączenia, natomiast listwa goldpin 2×5 zapewnia prostszą i bardziej uniwersalną konstrukcję;
- Kontrola napięcia VCC – projekt powinien chronić urządzenie przed niekontrolowanym zasilaniem z dwóch źródeł i przepływem prądów wyrównawczych;
- Ochrona linii SPI – dodatkowe elementy podłączone do MOSI, MISO i SCK nie powinny zakłócać komunikacji podczas programowania.
Jeżeli programowanie odbywa się wyłącznie na etapie produkcji, zamiast stałego złącza można zastosować pola testowe i styki sprężynowe typu pogo pin. W urządzeniach przeznaczonych do późniejszego serwisowania wygodniejsze jest klasyczne złącze Kanda lub Atmel ISP zamontowane na stałe.
Kanda a inne metody programowania
Standard Kanda odnosi się przede wszystkim do programowania ISP przez interfejs SPI w klasycznych mikrokontrolerach AVR. Nie jest jednak jedynym sposobem zapisu i aktualizowania oprogramowania.
Bootloader UART lub USB umożliwia wgrywanie programu przez port szeregowy albo USB bez użycia zewnętrznego programatora. Złącze Kanda pozostaje jednak przydatne podczas pierwszego programowania, zmiany ustawień konfiguracyjnych oraz odzyskiwania urządzenia po uszkodzeniu bootloadera.
JTAG, PDI, UPDI i debugWIRE to interfejsy stosowane do programowania lub debugowania wybranych rodzin mikrokontrolerów. Wymagają zgodnego narzędzia oraz odpowiednio zaprojektowanego złącza lub punktów testowych.
Złącze ISP/Kanda nie zastępuje wszystkich interfejsów programujących, ale pozostaje prostym, niedrogim i uniwersalnym rozwiązaniem dla wielu klasycznych mikrokontrolerów AVR. Szczególnie dobrze sprawdza się w projektach hobbystycznych, edukacyjnych, serwisowych i małoseryjnych.


