Na FreeHostingu Endora běžà desĂtky tisĂc webĹŻ. PĹ™idejte se ještÄ› dnes!
VytvoĹ™it web zdarmaNa FreeHostingu Endora běžà desĂtky tisĂc webĹŻ. PĹ™idejte se ještÄ› dnes!
Vytvořit web zdarmaMODUL
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