POL
ENG

Biblioteka RFM12B w C dla STM32

Jeżeli potrzebujesz jedynie biblioteki to pobierz poniższe pliki i możesz opuścić stronę. Jeżeli jesteś ciekawy całej opowieści, to zapraszam do szerszego opisu



Kolega poprosił mnie o zaprojektowanie bezprzewodowego termometru. Bez dłuższego zastanowienia postanowiłem wykorzystać rozpracowane wcześniej moduły RFM70. Powstał prototyp, który działał zgodnie z założeniami. Jednak podczas testów w rzeczyswistych warunkach okazało się, że zasięg jest bardzo ograniczony i nie da się go komfortowo używać. Postanowiłem przerzucić się na pasmo modelarskie 433MHz. Gama modułów pracujących na tym paśmie jest bardzo szeroka. Ostatecznie zdecydowałem się użyć modułów tego samego producenta HOPE RF - RFM12B


Po wnikliwej lekturze noty katalogowej okazało się, że układy te oferują bardzo ciekawe możliwości i wynikowy układ można jeszcze zmniejszyć oszczędzając miejsce i pieniądze. Jako że układ jest szeroko wykorzystywany przez użytkowników Arduino, to w Internecie można znaleźć sporo przykładowych bibliotek. Zdecydowałem się wykorzystać jedną z nich. Niestety żadna ze ściągniętych nie spełniała moich oczekiwań i potrzeb. Albo były napisane w C++ (ja posiadam kod w C), albo wykorzystywały software-owy SPI co jest dla mnie niewygodne i zarazem nienaturalne mając wbudowany, sprzętowy w uC. Dlatego musiałem ponownie napisać ją po swojemu. Z wszystkich pobranych wybrałem taką, która wyglądała najlepiej. Przeróbka zajęła kilka wieczorów. To co jest nietypowe, to trzymanie w kodzie wartości zapisywanych rejestrów. Okazuje się, że do RFM12B można jedynie zapisywac konfiguracje, a odczytywać tylko dane i rejestr statusu. Chcąc zmienić jeden bit aktualizujemy wszystkie. Dla ułatwienia sobie życia, postanowiłem trzymać kopię tych paru rejestrów i zmieniać tylko to co potrzebuję.


Pliki do pobrania:


Wszelkie prawa zastrzeżone. Projekt i wykonanie strony SrcPro.pl