radiový transceiver RFM12BP

Ahoj,

Už delší dobu se zabývám konstrukcí MCU řízené radiostanice s tímto transceiverem.
Pro snadnější práci jsem provedl překlad datasheetu + doplněno o vlastní praktické poznatky z konstrukce a programování (hlavně funkce pro inicializaci, příjem a vysílání). Dokument je pro současné i budoucí zájemce zde: ulozto.cz/xgKaW643/rfm12bp-manual-cz-v2-pdf

Charakteristika transeiveru RFM12BP-433

  • Přenosová rychlost: 115,2 kbps (s ext. RC filtrem až 256 kbps)
  • VF výkon: 0,5W !
  • Citlivost: -115 dBm
  • Napětí logiky: 3,3V
  • Napětí VF zesilovače: 12V
  • Komunikace s MCU: SPI
  • Cena: 283 Kč (tme.cz), cca. 12,5$ (aliexpress)
    Vyrábí se i ve variantách pro pásma 315MHz, 868MHz a 915MHz :slight_smile:

EDIT:
Ten samý dokument co je na ulozto.cz je i jako příloha
RFM12BP_manual_CZ_v2.pdf (657 KB)

To RFM12BP-433 má rozhraní SPI i UART? To je jedno co se použije, nebo je to SPI na nastavováví a UART na vysílání? Ten modul vypadá složitě, bych potřeboval něco, co tam proste vložím a bez většího nastavování by to přenášelo. Hlavně aby to nechytalo bordel v klidovým stavu…

Bordel to v klidovým stavu chytá vždycky. Jen sofistikovanější moduly umí vyhodnotit, zda jde o platná data nebo ne a podle toho se zachovat.

RFM12BP-433 má pouze SPI. “Redukci” mezi UART a SPI musí obstarat MCU. Nicméně HopeRF vyrábí přímo i UART moduly (akorát je nutné dodat MAXe pro konvezi úrovní).
Co se příjmu bordelu týče, tak ten je v ISM 433Mhz značný. Určitě bych šel raději do pásma 868, ale vlastní zkušenost nemám.
RFM12BP proti bordelu bojuje dvojbajtovou synchronizací na začátku (standardně 0x2D, 0xD4 - druhý synchro bajt je uživatelsky nastavitelný), než spustí přerušení, ale ani to nestačí. Jsou i další možnosti, jak filtrovat příjem. Já osobně jsem šel cestou, že přenáším radiové pakety fixní délky ve složení:

0x2D, 0x4B, 0xCA, servisní bajt, CRC8_servisniho bajtu, 16xdata bajt, CRC8_data, rezervní bajt

Takže na začátku jsem přidal ještě jeden (třetí) synchronizační bajt 0xCA, který testuju v rutině přerušení a pokud je přijat - jedná se o “můj” paket a jeho zpravcování je dále řízeno informacemi v servisním bajtu. Pokud není 0xCA, jedná se téměř jistě o smetí a paket je zahozen a dojde pouze k výpisu informace na UART terminál a můžu teda potvrdit, že je to poměrně často (cca. Tak 3x za minutu).

Co se jednoduchosti nastavení týká, tak do přenosové rychlosti cca. 30kbps funguje vše v pohodě. Při vyšších rychlostech už je nutné laborovat s šířkou pásma přijímače, kmitočtovým zdvihem vysílače, citlivostí, útlumem přijímače a výkonem, takže 115,2 kbps bez “bordelu” a s přijatelnou BER jen tak lehce dosáhnout nejde.

Pásmo 868 MHz používám a je tam to samé jako na 433 MHz. Používám ty nejjednodušší moduly od HOPE a připojuju je přímo na UART. To co z přijímače leze filtruje UART. Napájení 2,5V-5V, bohužel rychlost přenosu jenom 600-9600bd. Sice v datasheetu píšou “data rate can be defined by customer from 300bps~100kbps”, ale to už není běžně dostupné u nás. Je to sice transmitter a receiver zvlášť, ale není potřeba žádné nastavování.

to Johny Servis: Krásna práca :slight_smile:

Ďakujem za podelenia sa s vývojom/výskumom a prajem všetko dobré