Programowanie i flashowanie CC2531 bez kabla z użyciem RaspberryPi

Jak flashować CC2531 bez CC Debugger (downloader cable), bez kabla UART i bez ESP, przy użyciu jedynie Raspberry Pi. Do zaprogramowania modułu będziesz potrzebował kilka kabelków z pinami i lutownicę (a może uda się obyć nawet bez niej). Poradnik jest zgody z każdym urządzeniem CC2531, ja wykorzystałem model EBYTE E18-2G4U04B PA.

Połączenie

Pierwszą rzeczą, którą musisz zrobić to wyprowadzenie kabelków ze swojego modułu. Ja wykorzystałem kabelki z zestawu z Forbota. Kabelki o wtyczce męskiej z obu stron były na tyle cienkie, że zmieściły się w port i nawzajem przyblokowały siebie otuliną. Do każdego z nich wpiąłem następnie kabelki o obu wtyczkach żeńskich, a drugi koniec podpiąłem do Raspberry zgodnie z następującym schematem.

Zobacz jeszcze na rozpiskę wyjść typowego CC2531 oraz mojego od EBYTE.

EBYTE CC2531
Typowy CC2531

U mnie połączenie wyglądało następująco. Pamiętaj, że użyłem trochę nietypowego modułu.

Podłącz teraz moduł do portu USB Raspberry i jeżeli zaświeci się na nim lampka, to znaczy, że jak na razie wszystko wygląda OK.

WiringPi

WiringPi jest biblioteką napisaną w języku C, która jest wykorzystywana do uzyskania dostępu do portów układów SoC BCM2835, BCM2836 and BCM2837, czyli dokładnie tych użytych w dowolnym RaspberryPi. Instalacja polega na sklonowaniu repozytorium, które niestety już nie istnieje na oryginalnym hostingu autora. Na szczęście istnieje jego mirror.

Otwórz konsolę swojego Raspberry i sklonuj repozytorium, wejdź do niego i zbuduj kod.

git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build

Pobierz oprogramowanie

Oprogramowanie nazywa się Z-Stack Home i znajduje się na oficjalnym repozytorium autora – https://github.com/Koenkk/Z-Stack-firmware/. Autor co jakiś czas aktualizuje oprogramowanie, więc istnieje ryzyko, że bezpośredni link mógłby nie zadziałać. Autor tworzy dwa rodzaje oprogramowania – coordinator oraz router, nas interesuje to pierwsze, wejdź więc do folderu coordinator. W nim masz dwie wersje – 3.0 i 1.2. Autor nie zaleca używania wersji 3.0, bo nadal jest ono w wersji rozwojowej, wybierz więc folder Z-Stack_Home_1.2. Gdyby coś się zmieniło, czytaj opis na stronie projektu na Githubie, tam będziesz miał najświeższe informacje. następnie wejdź do folderu bin i wybierz wersję default. Teraz musisz pobrać plik zip odpowiadający nazwie Twojego układu, czyli musi zawierać w nazwie CC2531. Pobierz plik zip i wypakuj go gdzieś. W chwili pisania tego poradnika odpowiednie archiwum znajduje się tutaj: CC2531_DEFAULT_20201127.zip.

Flashowanie

Flashowanie polega na usunięciu istniejącego oprogramowania układu, a następnie wgraniu nowego. W pierwszej kolejności pobierz odpowiedni skrypt i sprawdź, czy połączenie z modułem działa.

cd
git clone https://github.com/jmichault/flash_cc2531
cd flash_cc2531

Musi się pojawić ID = b524.. Jeżeli pojawi się ID = 0000 lub ID = ffff to znaczy, że coś źle podłączyłeś.

Potem wpisz ./cc_erase żeby usunąć obecne oprogramowanie.

Rozpakowane w poprzednim oprogramowanie wrzuć do folderu ze skryptem, tj. flash_cc2531. Następnie wykonaj zapis poleceniem ./cc_write z parametrem przyjmującym plik hex, w moim przypadku było to ./cc_write CC2531ZNP-Prod.hex. Pamiętaj, że autor może w przyszłości zmienić nazwę tego pliku, więc bądź uważny przy tej operacji. Zapis u mnie trwał około 3 minut. W tym czasie postaraj się nie dotykać urządzenia, żeby niczego nie rozłączyć.

To wszystko, odłącz sprzęt, odepnij kabelki i zapakuj z powrotem w obudowę swój moduł (o ile miałeś obudowę). Możesz go teraz podłączyć do urządzenia, w którym będziesz z niego korzystał.