KitPROG dla Psotnych Cypisków :P

KitPROG dla Psotnych Cypisków :P
Razem głosów: 8 co stanowi: 97.5% całości.

Dzisiejsza opowieść będzie o fragmencie płytki nieco mocniejszej czyli CY8CKIT-059 PSoC 5LP , a dokładnie chodzi mi o zawarty na tym fragmencie mały i sprytny programator/debuger  KitPROG….  poznamy go nieco , zmodyfikujemy i poradzimy sobie z problemami wynikającymi z używania potworka …

Po odłamaniu i dolutowaniu goldpinów lub innego 5 pinowego złącza  za niewielkie pieniądze otrzymujemy wygodny programator pracujący w standardzie SWD (Serial Wire Debuger),  oczywiście jako że to budżetowa wersja zestawu zaczynając na opakowaniu a na płytce kończąc wraz z programatorem ….  Niestety jest ubogo nawet zamiast normalnego USB dostajemy USB on PCB  czyli  wytrawione na płytce …  nie do końca lubię takie rozwiązania zwłaszcza, że mało są one stabilne ….. no ale działa …

Tak lubię tą stopę USB od D-Linka :)  to jednak zaobserwowałem że przypadkowe pociągnięcie za przewody , a nawet przestawienie płytki powoduje rozłączanie się i tym samym sprowadza kłopoty … których niebawem doświadczą też użytkownicy ATB1.05 …. <ale o tym później>

Ja osobiście postanowiłem sobie ułatwić życie i nieco usprawnić KitPROG’a  poprzez dodanie stabilnego wtyku , lub gniazda USB … jednak jak to ze mną bywa … nie mogłem się zdecydować czy zastosować gniazdo typu USB-B:

czy mini USB-B:

czy zwykły wtyk USB-A

taki jak się lutuje w różnych donglach , pendrajwach i takich tam …  no , ale właśnie dobrze by było poza możliwością wpinania w gniazdo USB mieć możliwość dania na kabelek .. tak są przedłużki USB jak choćby ta moja stopa D-Linka .. jednak poszukując czegoś co się nada w podręcznym zlewie znalazłem co trzeba i zapodałem :)

tak dokładnie.. najfajniejsze długie i stabilne złącze USB-A 2.0  no teraz programator siedzi stabilnie w slocie , nie rusza się , nie przesuwa — tak jak ma być ….

dokładnie o to chodziło … :) .. nie do końca gdyż posiadany wtyk USB ma jeszcze miłego suprajsa w sobie , mianowicie można do niego podłączyć przewód microUSB

a to już bardzo duża wygoda :) , dzięki ukrytemu w czeluściach gniazdu microUSB …

Teraz czuję się usatysfakcjonowany … :)  KitPROG jest wygodniejszy i stabilniejszy w użyciu a to najważniejsze ….  Niestety nie pamiętam kiedy i po co kupiłem ten dziwny wtyk ale są podobne dostępne na alliexpresie :

np takie z wtykiem microUSB ale tez i z gniazdem … wystarczy poszukać jak komuś potrzeba :) To na tyle słowem poprawek tego fajnego programatorka , ale bardzo budżetowego …


O Programatorku słów kilka :


KitProg to nie tylko cypiskowy programator SWD to dosyć mocno zaawansowane urządzenie o sporych możliwościach …. Poza portem SWD oznaczone jako J7 na czołowej stronie płytki w skład którego wchodzą sygnały :

  • SWDIO    – Input/output Data
  • SWDCLK – Zegar
  • RST  – RESET
  • GND
  • VTARG – zasilanie układu docelowego

znajdziemy SW3  czyli przełącznik BOOT/ TARGET RESET oraz dwa złącza pod goldpiny oznaczone J8 i J9  po obu stronach płytki , których pinout widzimy na obrazku poniżej:

Popatrzcie o ile po lewej J8  udostępnia nam same GPIO o tyle po prawej na J9 już poza GPIO znajdziemy UART (który się instaluje podczas instalowania sterowników) oraz I2C . O ile jak używać UART-a każdy wie o tyle o I2C powiemy sobie innym razem gdyż przyda nam się w jednym z artów :)

Do pracy z programatorkiem może nam posłużyć bardzo wygodny programik dostarczany wraz z pakietem …

w zasadzie to prosty program więc każdy sobie poradzi , a jak nie ogarnia, albo jest geekiem to jest obszerny manual do niego:

PSoC® Programmer User Guide

Warto zaktualizować firmware KitProga  – najnowsze to 2.18 , a robimy to w zakładce Utilities

I w zasadzie mógłbym zakończyć opis … ale dodam jeszcze, nasz KitPROG ma wiele ciekawych możliwości :) sam UART pozwala na wygodną pracę z naszymi PSoC’ami  z Cypiskowa  i to w zakresie baudrate do 2Mb/s (2000000) pełna lista prędkości  poniżej  … dlaczego ?? a bo jest tu pewna ciekawostka i zaraz pojawią się geeki i malkontenci z marudzeniem że tu nie działa i td…  a więc tak :

KitPROG -TERMINAL

2000000 | 2000000
1000000 | 1000000
1000000 | 921600
  500000 | 460800
  250000 | 230400
115200 | 115200
57600 | 57600
38400 | 38400
19200 | 19200
9600 | 9600
4800 | 4800
2400 | 2400
1200 | 1200

Widzicie  o co chodzi ….   to proste dla prędkości 250Kb /s oraz 500kb/s i czasem dla 1Mb/s  wymagane jest ustawienie innej szybkości w terminalu powoduje to ograniczenie zegara wewnętrznego w PSoC5 , na którym jest zbudowany między innymi KitPROG. Nie nie licznie na to, że się to zmieni trzeba się przyzwyczaić gdyż ten problem nie jest naprawialny od strony programowej. I kolejne Firmware tu nic nie zmieni jak na to liczycie :)  Trzeba z tym żyć :) Nie zmienia to faktu, że UART w KitPROGU zjada FTDI na śniadanko z chlebkiem i musztardą.

Oczywiście poza tym jest jeszcze GPIO oraz I2C ale na razie przemilczę , gdyż KitPROG miewa problemy — jak każdy z samym sobą :)


KŁOPOCIKI


KitPROG pracuje w dwóch trybach  pierwszym i zadawalającym oraz szybkim jest właśnie Debuger/Programator KitPROG  SWD , działą szybko i super, a SW3 do resetowania Targeta jest cacusio … jednak … gdy przypadkowo przytrzymacie SW3 podczas podłączania do USB KitPROGA.. przełączy się w tryb BOOTLOADERA  …  łatwo zauważyć gdyż dioda statusu LED3 sobie Mryga c 1s., gdy nie zwrócimy na to uwagi możemy się nieco zdziwić  …

jak widzicie w Port Selection  niema nic …  :)  Nic nie zaprogramujecie , a próba przywrócenia firmware nie przyniesie rezultatu ….

Wystarczy jednak odpiąć i podpiąć jeszcze raz bez trzymania przycisku i UFF mamy KitPROG, a z powrotem ….

to jednak nie wszystko …. widzicie gdy podczas pracy z PSoC … użyjecie SW3 i przytrzymacie ok 6s …. zdarza się podczas pracy z debugiem pod środowiskiem PSoC Creator …  nagle KitPROG odmówi współpracy … pod PSoC Programmerem zobaczymy coś dziwnego :

Patrząc zaś na LED3 widzimy taki FADING …. Oczywiście PSoC a nie zaprogramujemy ani w Programmerze , ani Creatorze bo nasz KitPROG się przełączył w tryb MASS Storrage Programer … i jest rozpoznawany jako CMSIS-DAP.

To taki modny tryb pracy ostatnio gdzie plik hex z naszym programem, kopiujemy na dysk KitPROG:

Następnie dioda pomryga sobie szybko , a potem wciskamy F5 i w pliku STATUS.TXT odczytujemy stan programowania :

Tryb ten został specjalnie adoptowany na potrzeby układów PSoC4 dokładnie  układy z rodziny 4200M. Jak widzicie w pliku udało się zaprogramować … mamy też info, że jeśli chcemy wyjść mamy przytrzymać przycisk RESET-  (SW1) przez 5s  …  tak hmm….    u nas jest SW3 spoko jednak to RESET ale nie działa … po odłączeniu od USB i podłączeniu dalej mamy CMSIS-DAP , nawet po wejściu do BOOTLOADERA i wgraniu firmware na nowo dalej jest CMSIS-DAP …  bezużyteczny …. a w obszernym dokumencie :

KitProg User Guide

w Rozdziale Troubleshooting dowiemy się o innych problemach i sposobach z radzeniem sobie z nimi :

Porady o przywracaniu firmware , o kompilowaniu firmware, którego źródła znajdziecie tutaj na GitHubie:

KitPROG SOURCE

sporo też oużywaniu Bootloader mode itd… SUPER … NIESTETY  nie działa na nasz problem…,

a tymczasem rozwiązanie jest banalne :)

Podczas pracy CMSIS-DAP naciskamy SW3/RESET i trzymamy aż dioda LED3 (zielona) zgaśnie i wtedy puszczamy przycisk SW3.  wychodzi ok 11-12s po zabiegu następuje ponowna enumeracja programatora i …:

znów cieszymy się świetnym Programatorem KitPROG z SWD i UARTEM i I2C …

I to już koniec …. tego wpisu mam nadzieję, że wam coś pomogłem i nakreśliłem pewne sytuacje mogące wystąpić. Polecam też zapoznanie się z w/w dokumentem KitProg User Guide gdyż znajdziecie w nim wiele użytecznych informacji na temat tego małego- wielkiego narzędzia.

 

 

 

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

2 myśli nt. „KitPROG dla Psotnych Cypisków :P

  1. Dzięki Sun , właśnie miałem CMSIS-DAP i nie mogłem załapać co się dzieje, że cały czas dostaję info po wgrywaniu FAILED. Wchodzę na stronkę i jest opis .

Możliwość komentowania jest wyłączona.