úterý 10. března 2015

Bluetooth Low Energy (BLE) s HM-10 (Texas Instruments CC2541)

Dlouhou dobu používám levné Bluetooth moduly HM-05 s verzí BT 2.1. Nedávno jsem si chtěl vyzkoušet BT Low Energy, kterou nabízí od verze 4.0. Proto jsem si opatřil modul HM-10 od firmy Jnhuamao z Ebay za cenu cca 170 kč.

Modul obsahuje chip od Texaských Nástrojáren CC2540/1, napájecí napětí je 2 až 3.7 V, rozměry 27x13 mm.


Po připojení k UARTu modulu dle schématu:



lze tento ovládat AT příkazy. Z nejzajímavějších uvádím:


Postup ke zprovoznění jako Peripheral:
"AT" - kontrola, zda je modul OK
"AT+RENEW" - reset do defaultního nastavení (ROLE0, MODE0)
"AT+NAMEjmeno" - změní jméno BLE
"AT+ROLE0" - nastavení jako slave (piripheral)
"AT+MODE1" - přeposílá data po připojení, jinak reaguje na UART
"AT+TYPE2" - nutnost vždy zadat PIN při připojení
"AT+PWRM0" - auto SLEEP režim
"AT+RESET" - reset pro uložení parametrů




Další příkazy:

"AT+PASS?" - zjištení PINu
"AT+PASS123456 - natavení PINu na 123456
"AT+MODE0" - 
bez připojení: HM-10 reaguje na AT příkazy z UARTu
           - po připojení: přeposílá data
"AT+MODE1" - jako MODE0, navíc nastavuje výstupy, čte vstupy
"AT+MODE2" - jako MODE1, ale nečte vstupy

"AT+TYPE0" - připojení bez zadání PINu
"AT+TYPE1" - připojení zadáním PINu

Sleep režim: - slibuje spotřebu 60 uA ~ 1.5 mA
                     - ze SLEEP režimu se lze dostat dvěma způsoby (odesláním řetězce delšího než 80 znaků přes UART; stiskem tlačítka na déle než 1 sekundu)

"AT+SLEEP" - přejde do SLEEP režimu

Spotřeba:

Standardní režim - 9 mA
SLEEP režim      - 0.2 mA, LED dioda je OFF

Ve SLEEP režimu je HM-10 viditelné a po připojení se samo probudí. Po odpojení se do SLEEP režimu NEUVEDE, je třeba ho uspat! Proto existuje auto-sleep funkce.

"AT+PWRM0" - auto SLEEP režim
"AT+PWRM1" - bez SLEEP režimu

Po odpojení se sám uspí, což výrazně šetří baterii. 

Power režimy:

Test: Zařízení 1 m od BLE má sílu signálu při různých Power režimech v závorce.

"AT+POWE0" - nastavení výkonu antény na -23 Db (RSSI = -93 dBm)
"AT+POWE1" - nastavení výkonu antény na -6 Db  (RSSI = -76 dBm)
"AT+POWE2" - nastavení výkonu antény na 0 Db   (RSSI = -74 dBm)
"AT+POWE3" - nastavení výkonu antény na 6 Db   (RSSI = -68 dBm)

Je tedy vidět, jak se síla signálu zvyšuje se zvyšujícím se parametrem POWEx (čím vyšší, číslo x, tím větší výkon a nižší záporný parametr RSSI).
Parametr v datasheetu tedy odpovídá měření (srovnání POWE3 je o 6 dB větší než POWE2, což měřením bylo prokázáno (74 - 68 = 6)).
Zajímavé bylo, že spotřeba energie byla při všech režimech stejná... a to jak s auto-sleep režimem, tak i bez něho.

Upgrade FirmWare:

Upgrade FW je snadná záležitost, postačí nahrát nový bootloader přes UART.
1) Stáhnout si nový FW včetně instalačního nástroje ze stránek Huamao Technology
2) Připojit přes UART a zadat AT příkaz "AT+SBLUP", čímž se modul přepne do režimu nahrávání nového FW



3) Odpojíte UART! Jako Admin spustíte staženou aplikaci, vyberete port a stažený BIN soubor.
4) Tlačítkem "Load Image" zahájíte nahrání nového bootloaderu. Po ukončení se objeví hláška o úspěchu.
5) Ověření úspěšnosti provedete příkazem "AT+VERS?" přes UART.



Žádné komentáře:

Okomentovat