Na FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!

Vytvořit web zdarma

Na FreeHostingu Endora běží desítky tisíc webů. Přidejte se ještě dnes!

Vytvořit web zdarma

MODUL CC1101 433.92Mhz

Vlastimil Vágner

     Potřeboval jsem v jednom přípravku mít možnost ovládat driver L9110 pro motory na větší vzdálenost než jsou schopny komunikovat moduly bluetooth co používám. Tak jsem zvolil modul CC1101 ovládaný pomocí Arduino Nano který jsem pro testování osadil do Arduino IO shieldu, pro komunikaci mezi Arduino a modulem CC1101 jsem použit 8 – kanálový obousměrný převodník logických úrovní (5V – 3.3V) a pro napájení celé sestavy jsem použil vyrobený napájecí zdroj s výstupním napětím 8V pro napájení  Arduino Nano,  5V a 3.3V pro napájení převodníku a modulu CC1101. Bohužel po zhruba necelých třech týdnech občasných pokusů a různých programů i od AI jsem zjistil po výměně modulů za stejné zapůjčené, že moduly co mi dorazili, jsou vadné. Tak že aspoň trochu co dělat abychom si modul nezničili.

 

POPIS MODULU CC1101 433.92Mhz

     Uvedený modul má několik hodně závažných nedostatků a tyto jsou optická absence že modul je zapnut, dále není optická signalizace komunikace mezi modulem a řídícím mikrokontrolérem po sběrnici SPI a ta nejpodstatnější věc je optická absence že koncový stupeň vysílá nebo přijímá dle toho, jak je modul nakonfigurován (tuto základní informaci že koncový stupeň funguje jsem již používal u vyráběných vysílačů pro RC modely v 70 – letech!). To že modul využívá čip, který komunikuje pouze pomocí registrů bez uvedených možností signalizace z něho dělá lidově řečeno „hloupý modul“. Další důležitá věc je napájení modulu CC1101 a to je 3.3V včetně datových linek které jsou také v tomto rozpětí A TOTO NAPĚTÍ JAK U NAPÁJENÍ TAK DATOVÝCH LINEK SE NESMÍ NIKDY PŘEKROČIT čip komunikuje rozhraním SPI což také zabírá více IO linek u použitého mikrokontroléru. Nikdy nezapínejte modul bez připojené antény většinou dojde ke zničení koncového stupně bez viditelné známky. Pro napájení Arduino, obousměrného převodníku logických úrovní a modulu CC1101 je vždy lepší používat zdroje mimo desky Arduino tyto nemusí snést odběr modulu, dost často bývají zarušeny a hlavně pokud je v programu použita funkce „ ELECHOUE_CC1101.setPa(parametr)“ tato umožňuje zvýšit výstupní výkon a hlavně proudový odběr což zdroj 3.3 na desce Arduino zcela dobře přetíží ne-li zničí. Tím že modul nemá uvedenou signalizaci a pro odzkoušení programu přijimač7_led_signál a vysílač7_led_signál, jsem si v napsaném programu dopsal několik  řádek s led diodou na PINU D4 tak že dioda je připojena ANODOU K PINU D4 A KATODOU K REZISTORU KTERÝ JE PAK PŘIPOJEN K ZÁPORNÉMU NAPÁJECÍMU PÓLU (-). Hodnotu rezistoru je nutné si spočítat dle námi zvolenému proudu led  diody a proudu výstupního PINU D4. Tak to jsem měl přehled o tom že program funguje jak má tzv. vykonává řádek po řádku. U vysílače je dioda zapnuta řádek výše před odesláním dat a vypnuta po odeslání dat, u přijímače je led zapnuta pokud přijdou nějaká data a po 100 milisekundách opět vypnuta šlo jenom o to abych měl jistotu že program funguje jak má. Jinak to samozřejmě nemůže nahradit signalizaci komunikace čipu na  modulu CC1101 a řídícím mikrokontrolérem.

 

POPIS ZDROJE PRO NAPÁJENÍ ELEKTRONIKY A MODULU CC1101

     Zdroj je vyrobený na univerzální vrtané destičce a propojení součástek je provedeny pomocí drátků, napájení vyrobeného zdroje bylo při testování z regulovatelného zdroje 230VAC/4V – 12VDC/2A v terénu je možné používat dobíjecí články o výstupním napětí do 9VDC. Na stabilizaci napětí na hodnotu 5VDC je použit stabilizátor 7805 jehož vstup a výstup je blokován keramickými kondenzátory osazení nutno dodržet jinak dochází k rozkmitání stabilizátoru  a na stabilizaci napětí z 5V na 3.3V je použit step.down typu TPS62A02 4.5 – 5.5V - 3.3V/2A. Schéma zapojení zdroje je na Obr.č.01., na Obr.č.02 je schéma celkového propojení elektroniky. Pozor pokud je ARDUINO NAPÁJENO Z PROGRAMOVACÍHO KABELU PŘI TESTOVÁNÍ PROGRAMU NESMÍ BÝT SOUČASNĚ NAPÁJENO I ZE ZDROJE!. A MUSÍ SE PROVÉST PROPOJENÍ POUZE GND (-) ARDUINO A GND (-)  ZDROJE .

 

 

 

 

 

PROGRAMY

     Pro počítač jsou uloženy v podadresáři POČÍTAČ jsou celkem dva jde o sériové terminály jeden umožňuje zobrazovat delší zprávy na řádku stejně tak i odesílat, oba programy používají shodnou knihovnu která se musí nacházet ve stejném adresáři jako uvedené programy. K programům je v adresáři i popis pro zadávaní parametrů. Pro modul jsou v podadresáři ARDUINO tři programy dva jsou pro otestování komunikace přijímač7_led_signal, vysílač7_led_signál  a další program test.SPI.INO ten pouze otestuje zda modul CC1101 komunikuje pomocí SPI s Arduino Nano. Hodnoty zadávané v setupu jednoho modulu musí být shodné s hodnotami v setupu druhého modulu VYJMA PŘÍKAZU U MODULU PŘIJÍMAČE KDY TENTO MUSÍ BÝT FUNKCÍ ELECHOUSE_CC1101_SetRx(); nastaven na příjem od vysílače. Pro nastavení aby moduly komunikovali pouze spolu se používá funkce ELECHOUSE_CC1101_SetSyncWord(hodnota, hodnota); pro program během testování byla použita jedna z mnoha knihoven ELECHOUSE_CC1101_SRC_DRV kde jsou i ukázkové příklady pokud je modul odzkoušený. Je zde i program BAND_CALIBRATION.INO který zjistí nosný kmitočet modulu. Důležitá věc v případě že máme v programu v setupu test zda je modul aktivní a na konci je příkaz while a inicializace modulu bude až po příkazu while tak se program automaticky zastaví. Doporučuji vždy mít v setupu před funkcí testování vloženo aktivování čipu což je funkce, v programech to je již psáno tak jak to má být. To znamená například v setupu jsou zadány parametry komunikace a hned po nic je pak funkce na aktivování čipu na modulu CC1101 vše je vidět v uvedených programech.

 

POSTUP OTESTOVÁNÍ

     V prvé řadě musíme mít propojeny všechny komponenty dle Obr.č.02 v tomto případě nenapájíme Arduino Nano ze zdroje ale z programovacího kabelu tak že propojíme GND (-) Arduino a GND (-) zdroje z napájení NIC JINÉHO. Po nahrání programu do jednoho Arduino Nano například přijímač spustíme sériový terminál v IDE a na monitoru se zobrazí nápisy že komunikace OK přijímač připraven. Nyní odpojíme zdroj napájející elektroniku,  Arduino s nahraným programem přijímač a připojíme druhé Arduino Nano do kterého nahrajeme program vysílač7_led_signál. Opět musíme mít propojeny všechny komponenty dle Obr.č.02 nyní propojíme GND zdroje s GND Arduino Nano ze zdroje NIC JINÉHO  a po zapnutí napájení zdroje a spuštění sériového terminálu v IDE se na monitoru bude zobrazovat pravidelně odesílaná zpráva a blikat led dioda. Pokud je vše v pořádku vypneme zdroj odpojíme programovací kabel a modul vysílače vzdálíme dále jak 2 - 3m od místa kde máme počítač se sestavou přijímače. Nyní k počítači programovacím kabelem připojíme Arduino Nano s programem přijímač7_led_signál i s elektronikou zapneme zdroj v IDE na počítači spustíme sériový terminál. Před spuštěním elektroniky vysílače provedeme přepojení napájení Arduino Nano ze zdroje, odpojíme propojení GND Arduino s GND zdroje, programovací kabel se již nepoužije poté zapneme elektroniku, Arduino Nano kde je nahraný program vysílač (sestava elektroniky vysílače pracuje již autonomě bez připojení počítače) a na monitoru pokud je vše správně nakonfigurováno se musí zobrazovat v programu přijímač7_led_signál co vysílač odesílá. Pokud chceme využívat na příjem zpráv počítač a nepoužívat programovací prostředí IDE pro arduino stačí si upravit program tak že pro komunikaci Arduino Nano s počítačem využijeme sériový terminál a v programu přijímač7_led_signál použijeme jiné piny pro komunikaci s přvodníkem CH340, osobně používám Arduino Nano, Arduino UNO s převodníkem CH340 bez problémů. Uprava programu pro tuto komunikaci je v [1] u článků kde využívám tento převodník. Pokud chceme vyzkoušet Uvedené sériové terminály co jsem přihrál do adresáře tak necháme připojený programovací kabel ukončíme programovací IDE Arduino. Nyní otevřeme podadresář pro počítač zvolíme si jeden  program TERMINÁL po otevření zadáme shodnou adresu pro komunikaci a další parametry pokud jsou potřeba změnit. Po dokončení zadávání klikneme na tlačítko otevřít com a na monitoru se pak bude postupně zobrazovat co přijímač přijímá. Pro testování je výhodnější pokud jde o stejné typy s mikroprocesory Arduino Nano/ Uno použít pro testování Arduino Nano a k němu Arduino shield tato sestava se po ukončení testování dá v konečné verzi zaměnit za Arduino Uno.

 

    Použité moduly

    8 – kanálový obousměrný převodník logických úrovní

     Hotový zdroj vyrobený na univerzální vrtané destičce

     Osazený step-down TPS62A02 4.0 – 5.0V/3.3V/2A konektory

     Vyrobené napájecí konektory pro Arduino Nano/Uno

 

     Použité prameny :

[1] www.mojeelektronika.mzf.cz komunikace s převodníkem CH340

[2] technická dokumentace k modulu CC1101

[3] www.laskakit.cz dokumentace k převodníku CH340 s kabelem

    

     Bližší informace :

vagnervlastimil@seznam.cz