Prosty moduł Bluetooth

Transkrypt

Prosty moduł Bluetooth
 
Projekty AVT
Prosty
moduł
Bluetooth
Pierwsze urządzenia bezprzewodowej
transmisji danych były wykorzystywane
do celów wojskowych. Dziś są bardzo
popularne w rozwiązaniach konsumenckich. Obecnie większość mobilnych
urządzeń powszechnego użytku ma wbudowany interfejs Bluetooth. Również
w codziennym życiu konstruktora powstaje dużo projektów, z którymi trzeba się
komunikować bezprzewodowo.
Opisywane urządzenie jest prostym
w obsłudze modułem, pozwalającym
na wykorzystanie łączności Bluetooth z wykorzystaniem interfejsu UART.
Układ umożliwia szybką zmianę prędkości transmisji dla modułu BTM-222 bez
użycia dodatkowych narzędzi. Pozwala
to na uproszczenie i przyśpieszenie realizacji połączenia pomiędzy urządzeniami.
Można zapomnieć o problemach z konfiguracją i wysyłaniem komend AT. Należy
wybrać tylko żądaną prędkość transmisji
przez odpowiednie ustawienie mechanicznego obrotowego zadajnika oraz podłączyć zasilanie. Tabela 1 przedstawia
możliwe prędkości transmisji.
3101
220
+3V3
100
nF
C2
P$38_GND
P$1_GND
P$2_PVCC P$37_RF-IO-ANTENNA
P$36_PIO(10)
P$3_AIO(0)
P$35_PIO(11)
P$4_AIO(1)
P$34_SPI-MISO
P$5_PIO(0)
P$33_SPI-CLK
P$6_PIO(1)
P$32_SPI-CSB
P$7_PIO(2)
P$31_SPI-MOSI
P$8_PIO(3)
P$30_UART-CTS
P$9_PIO(4)
P$29_GND
P$10_GND
P$11PIO(5)
P$28_UART-RTS
P$27_UART-TX
P$12_PIO(6)
P$26UART-RX
P$13_PIO(7)
P$25_PCM-CLK
P$14_PIO(8)
P$24_PCM-OUT
P$15_PIO(9)
P$16_RESET
P$23_PCM-IN
P$17_VCC
P$22_PCM-SYNC
P$18_GND
P$21_USB-DN
U6 P$20_USB-DP
P$19_GND
P$38 JP2
P$37
1
P$36
P$35
P$34
P$33
P$32
P$31
P$30
P$29
P$28
P$27 RA1_RX
P$26 RA0_TX
P$25
P$24
P$23
P$22
P$21
P$20
BTM-222
JP1
1
ZLACZE_TX
MCLR
2
ZLACZE_RX
3
GND
RA0_TX 4
RA1_RX 5
D6 POWER
6
M7 (1N4007- SMD)
PIC12F1840
+3V3
1
8
VDD U4
VSS
7 RA0_TX
C1
OSC1 2 OSC1
RA0/TX
6 RA1_RX
OSC2 3
RA1/RX
100nF MCLR 4 OSC2
5 RA2
RA3/MCLR
RA2
11.059200 MHz
C3
OSC1
+3V3
OSC2
C4 2 x 22pF
+3V3
ERD710RM
RA2
1
1
2
C0
3
4
+3V3
Sierpień 2014
Q1
C9 1k
100nF 10uF
1
2
3
4
+3V3
C8
JP3
R11
U3
8
C1
2
6
5
4
5k1
D1
D5
5V1
R20 ZLACZE_RX
P$1
P$2
P$3
P$4
P$5
P$6
P$7
P$8
P$9
P$10
P$11
P$12
P$13
P$14
P$15
P$16
P$17
P$18
P$19
4
+3V3
R9
2x
BC847
U2
GND OUT
2
R2
1k1
RA0_TX
OUT
R1
1
IN
100nF
+5V
T3
3
10k
T1
T2
2k2
R19 1k
R18 2k2
R17 100k
RA1_RX R21
T4
2k2
2 x BC847
22
R13 2k2
R12 100k
5V1
D4
R16
+3V3 +3V3
C10
+3V3 +3V3
+5V
R15
ZLACZE_TX
220
C7
100nF 10uF
LM1117IMP-3.3
wanych podczas transmisji
w interfejsie RS-232. Sygnał zasilania trafia do bloku
składającego się z dwóch
głównych układów U1
oraz U2. Są to stabilizatory napięć LM1117MP-5.0
oraz
LM1117MP-3.3.
Dodatne napięcie zasilania, który może mieścić się
w granicach od 6,5 VDC
do 20 VDC, przez diodę
D6 (zabezpieczenie przed
R8 10k
C6
4
+5V
3V3
U1
GND OUT
+5V
2
D2
OUT
L-934GD R5 1k
1
100nF
IN
R14
10k
3
D3
LM1117IMP-5.0
POWER
C5
POWER
Rys. 1
Prędkość
transmisji
[bps]
9600
19200
38400
57600
115200
230400
460800
R4 2k2
Układ składa się z bloku Ustawienie
zasilania, bloku komunika- zadajnika
cyjnego (transmisyjnego),
1
części logicznej, bloku
2
translatora napięć oraz złą3
czy. Schemat układu przed4
stawiono na rysunku 1.
5
Złącze JP3 służy do pod6
łączenia zasilania DC oraz
7
sygnałów transmisyjnych
RX (ang. receive) oraz TX
Tabela 1
(ang. transmit) wykorzysty-
D7 3V3
Opis układu
+3V3
E l e k t r o n i k a d l a Ws z y s t k i c h
Projekty AVT
Rys. 2
Rys. 3
odwrotnym podłączeniem zasilania) trafia
Nóżki C0 oraz C1 są wewnętrznie
do układu U1, gdzie na wyjściu uzyskuje połączone ze sobą na stałe. Po ustasię napięcie 5V. Następnie napięcie 5V wieniu liczby 1 na zadajniku, wewnątrz
trafia na wejście układu U2 gdzie uzy- zostaje połączone wyprowadzenie 1 oraz Rys. 4
skuje się napięcie 3,3V. Kondensatory C. Gdy wybierzemy liczbę 3, wówczas
C5–C10 służą do filtracji zakłóceń linii zostają wewnętrznie połączone wypro- Program
napięć zasilających. Dioda LED D3 służy wadzenie 1, 2 oraz C, co pokazano na Cały kod programu został napisany
do informacji, czy zostało podłączone rysunku 3. Aby zminimalizować liczbę w języku C przy użyciu nowego środonapięcie zasilania do złącza JP3. Zasto- pinów, wykorzystano rozwiązanie z dziel- wiska programistycznego firmy Microsowanie złącza JP1 do programowania nikiem napięcia, co przedstawia rysunek chip o nazwie MPLABX. Do kompilacji
pamięci mikrokontrolera umożliwia wgra- 4. Rysunek 4a odpowiada konfiguracji wykorzystano kompilator HI-TECH. Kod
nie nowego programu do mikrokontrolera dzielnika napięcia po wybraniu zadaj- źródłowy (do pobrania z Elportalu) jest
po ewentualnych modyfikacjach obec- nikiem liczby 1, natomiast rysunek 4b bardzo prosty i składa się tylko z kilku
odpowiada konfiguracji dzielnika napię- funkcji, dlatego wszystko zostało zawarte
nego.
Sercem urządzenia jest układ U4 PIC- cia po wybraniu zadajnikiem liczby 3. w pliku main.c oraz pliku nagłówkowym
12LF1840 – 8-bitowy mikrokontroler Dzięki temu powstają różne konfigura- hardef.h. Tabela 2 przedstawia opis funkfirmy Microchip w 8-pinowej obudowie. cje dzielnika napięciowego. Przy odpo- cji występujących w programie.
Kondensator C1 o wartości 100nF służy do wiednim doborze rezystorów możemy
Po podłączeniu zasilania jest uruchafiltracji zakłóceń. Rezystor R1 o wartości za pomocą przetwornika ADC odczytać miany mikrokontroler, który zaczyna rea10kΩ służy do wymuszenia wysokiego ustawioną na zadajniku liczbę.
lizację zadań od ustawiania bitów konfiguUkład U6 służy do komunikacji bez- racyjnych za pomocą makra __CONFIG
stanu logicznego na linii MCLR (Reset).
Największą stabilność oraz dokładność przewodowej. Wykorzystano popularny i przejścia do funkcji main.c. W pierwpracy układu mikroprocesorowego uzysku- moduł BTM-222 firmy Rayson. Układ szej kolejności są konfigurowane wszystje się przy użyciu zewnętrznego rezonatora jest połączony z mikrokontrolerem za kie porty I/O zgodnie z ich funkcjami.
kwarcowego. W urządzeniu zastosowano pomocą linii RX oraz TX. Diody D2 oraz Następnie jest inicjalizowany przetwornik
rezonator kwarcowy 11,059200 MHz ze D7 zabezpieczają wejście modułu Blueto- analogowo-cyfrowy. Następnie jest dokowzględu na szeroki zakres prędkości trans- oth. Dioda LED D1 służy do sygnalizo- nywany pomiar napięcia (read_adc()).
misji ustawianych w module Bluetooth wania nawiązania połączenia z układem Wartość liczbowa otrzymana z pomiaru
BTM-222. Kondensatory C3 i C4 o warto- nadrzędnym. Kondensator C2 o wartości jest porównywana ze zdefiniowanymi staści 22pF dobrano zgodnie z dokumentacją 100nF filtruje zakłócenia zasilania. Złącze łymi w pliku harddef.h. Przy porównywadostarczoną przez producenta.
JP2 służy do montażu anteny.
niu zastosowano niewielką histerezę na
Do wybrania prędkości transmisji
Układ Bluetooth jest zasilany napię- wypadek drobnych odchyleń zmierzonego
służy miniaturowy przełącznik kodujący ciem 3,3V. Założenie projektowe okre- napięcia. Dzięki temu znamy aktualną
do montażu SMD. Układ zaprojektowa- ślało komunikację z układami zasilany- liczbę wybraną na zadajniku. W kolejnym
no pod zadajnik kodu typu ERD710RM mi napięciem 5V. Dlatego zbudowano kroku jest sprawdzana prędkość transmi[1]. Schemat wyprowadzeń oraz wygląd dla linii RX, TX dwa translatory napięć sji, z którą aktualnie pracuje moduł BTMzadajnika przedstawia rysunek 2.
z 3,3V na 5V. Każdy z nich składa się 222. Zaczynając od inicjalizacji interfejsu
Zadajnik działa na zasadzie konwersji z dwóch tranzystorów BC847. Gdyby RS-232 w mikrokontrolerze na najniższą
liczby z systemu dziesiętnego na binarny został użyty tylko jeden tranzystor, wów- prędkość 9600bps i następnie jest realizokod dziesiętny (ang. Binary Coded Deci- czas sygnał byłby zanegowany. Rezystory wane wywołanie funkcji odpytaj(), dzięki
mal). Kod ten stanowi połączenie zalet R15, R20 o wartości 220Ω oraz diody D4, czemu otrzymujemy informację o prędkodwójkowego kodowania z czytelnością D5 służą do zabezpieczenia urządzenia ści modułu Bluetooth. Jeżeli moduł został
liczb dziesiętnych. Zasada działania pole- przed uszkodzeniem.
wcześniej ustawiony na tę prędkość, wówga na kodowaniu
czas poprawnie nam „odpowie”. Wyśle
cyfry dziesiętnej Tabela 2
nam określoną liczbę dla tej prędkości.
za pomocą czteFunkcja
Opis realizowanych zadań
rech bitów. Nóżki
init_adc()
Funkcja odpowiedzialna za inicjalizację przetwornika analogowo-cyfrowego
układu
stanovoid init_rs232(unsigned int wart) Funkcja odpowiedzialna za inicjalizację transmisji szeregowej. Jako
wią odpowiednie
parametr przyjmuje wartość odpowiadającej prędkości transmisji
wagi. Rysunek 3
unsigned int read_adc()
Funkcja uruchamia pomiar napięcia i zwraca wartość cyfrową
przedstawia stany
void
putch(unsigned
char
data)
Funkcja wysyła znak za pomocą interfejsu RS-232 do modułu BTM-222
nóżek zadajnika
Funkcja realizuje wysyłanie komend AT do modułu bluetooth z zapytaniem
w zależności od unsigned char odpytaj()
o aktualną prędkość
wybranej cyfry.
E l e k t r o n i k a d l a Ws z y s t k i c h
Sierpień 2014
23
Projekty AVT
K
R1
C1
C3
C9
C4
Q1
C7
U1
U2
R11
D3
E
D6
Projekt B
D1
R
24
JP3
C5 C6 C10 C8
D5
R20
R15
R16
R13 R12
R17
R18
T1
D4
R19
W
innym
przypadku
otrzymana
odpowiedź
z
modułu
będzie nieinterpretowana.
Jeżeli odpowiedź modu- Rys. 5
Komenda Opis
łu nie zgadza
ATB?
Zapytanie o adres interfejsu
się z tym, co
ATP
Zmiana hasła modułu
Tabela
3
było spodziewane,
ATZ0
Przywrócenie ustawień domyślnych
wówczas interfejs
ATR0
Przejście do trybu Master
RS-232 w mikro- Rys. 7
kontrolerze jest
strona lutowania
strona elementów
T4
JP1
inicjalizowany na
R21
C2
kolejną prędkość
U4
T3
19200. Sytuacja
BTM-222
się powtarza do
U6
momentu, aż otrzyU3
mana z modułu
R5
R9 R8
R4
odpowiedź odnośD2
D7 JP2
T2
R2
R14
nie do prędkości
zgodzi się z zakładaną. Np. odpowiedź wysyłana do modułu za każdym razem,
modułu wysłana na prędkości 19200 gdy podłączymy zasilanie.
powinna wynosić 2 [2]. Jeżeli to się
zgadza, wówczas jest realizowany ostat- Zmiany, modyfikacje
ni krok: Porównanie liczby ustawionej Jeżeli wystąpi konieczność większych
na zadajniku, która odpowiada nowej zmian w konfiguracji modułu, wówczas
prędkości wybranej przez użytkownika, do złącza JP3 podłączamy konwerter
z aktualną ustawioną prędkością pracy USB/UART (np. kit AVT-1775) i używamodułu. Jeżeli prędkość żądana zgadza jąc np. terminalu Putty, ustawiamy odposię z aktualną, wówczas konfiguracja wiednie parametry komendami AT. Tabezostaje zakończona. W innym przypad- la 3 przedstawia najważniejsze komendy
ku moduł jest konfigurowany na nową AT modułu BTM-222.
prędkość przez wysłanie odpowiedniego ciągu komend AT. Rysunek 5 przed- Montaż i uruchomienie
stawia proces konfiguracji. Widzimy, że Rysunek 6 przedstawia obie strony płytki.
moduł poprzednio pracował na prędko- W Elportalu, wśród materiałów dodatkości 38400bps (na zapytanie o prędkość wych do tego numeru, została umieszczokomendą ATL? zwrócił 3) i następnie na dokumentacja płytki (EAGLE) oraz
został skonfigurowany na prędkość oprogramowanie.
Montaż nie jest trudny, ale wyma9600bps (wysłanie komendy ATL1).
W programie jest zdefiniowana stała ga dokładności i staranności. Wykonanie
symboliczna NAZWA. Pozwala ona na takiej dwustronnej płytki PCB w domu
zmianę aktualnej nazwy modułu na nową. może być kłopotem, ponieważ przelotki
Należy zmienić wartość z 0 na 1 tej stałej są także pod modułem Bluetooth. To staoraz zmienić aktualną nazwę modułu na nowi problem do połączenia obu warstw
nową. Wówczas trzeba ponownie zapro- metodą lutowania drucika z każdej strony.
gramować mikrokontroler, co spowoduje Przy montażu i lutowaniu układów trzeba
wysłanie odpowiedniego ciągu komend zastosować metodę od najmniejszego do
AT do modułu. Ostatni krok to ponowna największego. Istnieje możliwość zamonzmiana stałej symbolicznej NAZWA z 1 towania zadajnika przewlekanego. Należy
na 0 i zaprogramowanie mikrokontrolera w pierwszej kolejności zagiąć nóżki pod
jeszcze raz. Dzięki temu nazwa nie będzie spód układu, a następnie przylutować. Są
L
A
M
Wykaz elementów
R1, R8 ������������������������������������������������ 10kW
R2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1,1kW
R4, R13, R16, R18, R21 . . . . . . . . . . 2,2kW
R5, R11, R19���������������������������������������� 1kW
R7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
R9 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5,1kW
R12, R17 ��������������������������������������������� 100k
R14 . . . . . . . . . . . . . . . . . . . . . . . . . . 10kW
R15, R20 ����������������������������������������������� 220
C1, C2, C5, C6, C8, C10 ������������������ 100nF
C3, C4������������������������������������������������� 22pF
C7, C9������������������������������������������������� 10uF
D1, D3���������������������������������������������������LED
D2, D7��������������������������������������������������3,3V
D4, D5���������������������������������������������������5V1
D6 . . . . . . . M7=1N4007SMD lub podobna
T1, T2, T3, T4�������������������������������������BC847
Q1 . . . . . . . . . . . . . . . . . . . . 11.059200MHz
JP1, JP2, JP3����������������������������������� Pinhead
U1 . . . . . . . . . . . . . . . . . . . LM1117IMP-5.0
U2 . . . . . . . . . . . . . . . . . . . LM1117IMP-3.3
U3 . . . . . . . . . . . . . . . . . . . . . . ERD710RM
U4 . . . . . . . . . . . . . . . . . . . . . . PIC12F1840
U6 . . . . . . . . . . . . . . . . . . . . . . . . BTM-222
Komplet podzespołów z płytką jest do­stęp­ny
w sie­ci han­dlo­wej AVT ja­ko kit szkol­ny AVT-3101.
różne wersje wyprowadzeń zadajników.
Należy zwrócić uwagę, aby były takie
same. Po zmontowaniu całego układu
należy zaprogramować mikrokontroler,
pamiętając o możliwości zaprogramowania nowej nazwy. Po tej operacji układ
jest gotowy do pracy. Należy pamiętać,
że do pinu 1 w złączu JP3 podłączamy
sygnał TX, a do pinu 2 sygnał RX. Jeżeli urządzenie, do którego podłączymy
układ, wysyła dane zaraz po włączeniu
zasilania, wówczas może to spowodować
błąd przy zmianie prędkości transmisji
modułu. Wówczas należy odłączyć linie
RX, TX przed włączeniem zasilania. Po
chwili można linie ponownie podłączyć.
Pamiętać trzeba, że domyśle hasło modułu
to 1234.
Tomasz Gilewski
[email protected]
Literatura:
[1] http://download.maritex.com.pl/pdfs/
re/ERD710RMZ.pdf
[2] dokumentacja BTM-222
A
Sierpień 2014
E l e k t r o n i k a d l a Ws z y s t k i c h