BBMagic UART brama do świata modułów BBMagic


BBMagic UART brama
BBMagic UART to brama przez którą możliwa jest komunikacja ze światem modułów BBMagic poprzez interfejs komunikacji szeregowej UART.
Oznacza to, że wszystkie urządzenia, sprzęty, mikrokontrolery, komputery itd. posiadające port UART (lub RS z konwerterem napięć) mogą od teraz komunikować się z wszystkimi ultraenergooszczędnymi modułami ze świata BBMagic.

BBMagic UART jako brama
BBMagic UART to brama pomiędzy radiowym interfejsem modułów BBMagic, a przewodowym interfejsem szeregowym UART.

Cechy BBMagic UART

  • umożliwia sterowanie modułami BBMagic DIMMER i BBMagic RELAY
  • umożliwia odbieranie informacji od modułów BBMagic METEO, FLOOD, BUTTON, MAGNETO i BBMagic MOTION
  • idealnie nadaje się do współpracy z rodziną Arduino i innymi systemami posiadającymi mikrokontroler wyposażony w UART
  • piny interfejsu UART tolerują napięcie 5V
  • konwertuje komunikaty radiowe BBMagic na ramki przesyłane asynchronicznym portem szeregowym – UART (38400,8N1)
  • struktura ramek przesyłanych przez BBMagic UART jest identyczna jak zawartość bufora zwracana przez biblioteczną funkcję bbm_bt_read(unsigned char *bbm_data)
  • może być zasilany napięciem od 1,8 do 3,6V, a po wlutowaniu stabilizatora (np. 78L33) napięciem od 5 do 30V
  • ramki przesyłane są w formie znaków ASCII co umożliwia bezpośrednie odczytywanie i sterowanie modułem z terminala

Jak działa BBMagic UART

Port szeregowy modułu BBMagic UART pracuje z prędkością 38400bps przesyłając 8 bitów danych bez bitu parzystości z jednym bitem stopu (38400,8N1).
Po włączeniu zasilania BBMagic UART wyśle komunikat informujący:

BBMagic UART start

$ flaga początku komunikatu
BBM_UART nazwa modułu
. znak podziału
0000 numer wersji firmwareu modułu BBMagic UART
, znak podziału
EF0B53EA2BB8 adres modułu BBMagic UART
\n\r znaki końca komunikatu – niewidoczne powyżej. Kody ASCII: LF-Line Feed (kod ASCII 10 (0x0A)) i CR-Carriage Return (kod ASCII 13 (0x0D)).
Jeśli moduł BBMagic UART odbierze dane radiowe bbmagic, to po konwersji prześle je portem szeregowym jako 49 bajtów w następującej postaci (nazwijmy tą strukturę ramka49):
Poniżej widzimy dwie przesłane UARTem ramki49.

BBMagic UART odbiera dane
* flaga początku ramki49
1B03050014EB1E001802025502550002D146339043D9AC 46 znaków ascii reprezentujących 23 bajty.
\n\r znaki ASCII: LF-Line Feed (kod ASCII 10 (0x0A)) i CR-Carriage Return (kod ASCII 13 (0x0D)). Oznacają koniec ramki danych – niewidoczne powyżej

Aby nadać komunikat radiowy bbmagic wysyłamy do modułu BBMagic UART 24 bajtową ramkę o następującej strukturze (nazwijmy ją ramka24):

>E7BA0893C9D2,83,F0,55
> flaga początku ramki24 dla modułu BBMagic UART
E7BA0893C9D2 12 znaków ascii reprezentujących 6 bajtów adresu modułu BBMagic, do którego adresowana jest wiadomość
, znak rozdzielający
83 dwa znaki ASCII reprezentujące pierwszy bajt danych dla adresata – tutaj 0x83
, znak rozdzielający
F0 dwa znaki ASCII reprezentujące drugi bajt danych dla adresata – tutaj 0xF0
, znak rozdzielający
55 dwa znaki ASCII reprezentujące trzeci bajt danych dla adresata – tutaj 0x55
\n\r znaki ASCII: LF-Line Feed (kod ASCII 10 (0x0A)) i CR-Carriage Return (kod ASCII 13 (0x0D)). Oznacają koniec ramki danych – niewidoczne powyżej
  • Jeśli adresatemn powyższych danych byłby moduł BBMagic DIMMER (pracujący w trybie PWM lub PWM_INVERT) to ustawiłby kanały PWM na następujące wartośći: CHANNEL_0=131 (0x83), CHANNEL_1=240 (0xF0), CHANNEL_2=85 (0x55).
  • Jeśli adresatemn powyższych danych byłby moduł BBMagic DIMMER pracujący w trybie AC_DIMMER to ustawiłby wyjście regulacji fazy na wartość 131 (0x83).
  • Jeśli natomiast wiadomość odebrałby moduł BBMagic RELAY to włączyłby (najstarszy bit ustawiony – 0x83) wyjścia RELAY_0 i RELAY_1 (dwa najmłodsze bity ustawione – 0x83).

Oczywiście tylko jeden z powyższych może być adresatem danych – to ten o adresie: 0xE7BA0893C9D2.
Zawsze po wysłaniu do portu szeregowego modułu BBMagic UART ramki rozpoczynającej się od ‚>’ i zakończonej ‚\n\r’ otrzymamy informację potwierdzającą przyjęcie poprawnych danych:

BBMagic UART OK
<OK

lub wskazanie błędu w nadesłanych bajtach:

<ERR,'numer błędu'
NUMER BŁĘDU OPIS PRZYKŁAD
01 błąd w pierwszym nadesłanym bajcie BBMagic UART ERR,01
02 błąd w drugim nadesłanym bajcie BBMagic UART ERR,02
14 błąd w 14 nadesłanym bajcie BBMagic UART ERR,14
FF ramka zbyt krótka BBMagic UART ERR,FF

Wyprowadzenia

BBMagic UART pinout

Numer pinu Opis
1,8,20,22,23,24 Masa
2 Konfiguracja sygnalizacji transmisji radiowej:

  • podłączenie do masy: Czerwona dioda LED będąca na pokładzie BBMagic DIMMER sygnalizuje transmisję radiową
  • niepodłączony: Czerwona LED wyłączona. Impulsy sygnalizujące pojawiają się na pinie numer 15. Możliwe podłączenie alternatywnej diody LED wraz z szeregowym rezystorem do pinów 15 i 16. Proponowana wartość rezystora: 1k – 4k7
7,21 Napięcie zasilania 1,8V – 3,6V
7,8,9 Pady dla wlutowania stabilizatora w przypadku chęci zasilania z wyższego napięcia. Ten sposób zasilania jest identyczny jak dla BBMagic METEO opisany tutaj: Jak zasilić BBMagic METEO moduł z Bluetooth Low Energy
10 Wejście napięcia zasilania dla stabilizatora z zabezpieczeniem przed odwrotną polaryzacją. Ten sposób zasilania jest identyczny jak dla BBMagic METEO opisany tutaj: Jak zasilić BBMagic METEO moduł z Bluetooth Low Energy
15,16 Pady do podłączenia alternatywnej diody LED wraz z szeregowym rezystorem. Pad 15 – anoda LED z rezystorem. Pad 16 – katoda LED
18,19 Linie UARTa odpowiednio nadawanie i odbiór. Zakres dopuszczalnych napięć od 0V do 5V

Komunikacja

  • Port szeregowy UART: 38400,8N1. Komunikacja za pomocą zdefiniowanych ramek znaków ASCII
  • Bluetooth Smart – Bluetooth Low Energy
  • Komunikacja radiowa szyfrowana i podpisywana cyfrowo AES-128

Zasilanie

Moduł BBMagic UART pobiera prąd o natężeniu ok. 12mA. Możliwe sposoby zasilania:

  • Z jakiegokolwiek źródła o napięciu z przedziału: 1,8V do 3,6V – pady do wlutowania przewodów: 7 (+) i 8 (-)
  • Poprzez stabilizator – Podłącz ‘+’ do 10, a ‘-‘ do 22, 23 lub 24. Pady do wlutowania stabilizatora w obudowie TO-92 – 7,8,9 (np.:L78L33, TS2950CT-3.3, LP2950CZ-3.3RAG, MCP1702-3302E, LM2936Z-3.3, LT1121CZ-3.3). Jak dobrać stabilizator: Jak zasilić BBMagic METEO moduł z Bluetooth Low Energy
Tagi , , .Dodaj do zakładek Link.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *