Energia - "Arduino" dla Launchpada. Sensor Booster Pack

Energia - "Arduino" dla Launchpada. Sensor Booster Pack
Pobierz PDF Download icon

W Elektronice Praktycznej nr 12/2012 opisaliśmy koncepcję środowiska projektowego Energia. Po tym nieco teoretycznym wstępie najwyższy czas przejść do opisu rozwiązań praktycznych, które umożliwią zastosowanie płytki i środowiska projektowego. Dodajmy przy tym, że oprócz płytki z mikrokontrolerem MSP430 firma TI wprowadziła do sprzedaży również launchpad z LM4F120, do którego również będą pasowały opisywane moduły. Rekomendacje: uniwersalne moduły, które są tworzone na wzór znanych użytkownikom Arduino - przydadzą się do współpracy z launchpadami produkowanymi przez Texas Instruments.

Rysunek 1. Schemat ideowy boosterpacka

Aktualnie oferta modułów - nakładek dla płytek oferowanych przez TI nie jest zbyt obszerna, ale stale rośnie. Pomimo tego nakładki umożliwiają tworzenie różnorodnych aplikacji wykorzystujących procesory MSP. W artykule opisuję własne projekty nakładek, których funkcjonalność jest ukierunkowana do zastosowania w małej robotyce, ponieważ po połączeniu z launch padem umożliwiają utworzenie taniej, wydajnej platformy dla niewielkiego robota mobilnego, wspieranej przez moc 16-bitowego mikrokontrolera o niewielkim zapotrzebowaniu na moc zasilania. Jest to nie bez znaczenia przy zasilaniu robota z baterii.

Dla ułatwienia w tabeli 1 umieszczono opis rozmieszczenia pinów launchpada V1.5 wraz z nazwą pełnionej funkcji.

Schemat proponowanego rozwiązania booster packa pokazano na rysunku 1. Jak wspomniano, wszystkie piny wyprowadzone są wraz z sygnałem masy i VCC na złącza P10...P27. Ułatwia to dołączenie czujników wymagających zasilania. Należy pamiętać, że mikrokontrolery stosowane na płytkach launchpad wymagają sygnałów o napięciu 3,3 V. W wypadku współpracy z układami zasilanymi z 5 V jest konieczne zastosowanie odpowiednich układów interfejsowych.

Na zwarte nóżki 3 i 4 złącza RST jest doprowadzony sygnał RESET. Ułatwia to jego dystrybucję w gotowej aplikacji. Do złącza E1 doprowadzono napięcie zasilające. Do złącz I²C, UART doprowadzone są sygnały interfejsów komunikacji szeregowej. Rozmieszczenie sygnałów jest zgodne z Arduino, co umożliwia łatwe podłączenie np. opisywanych w EP ekspanderów I²C, modułów Xbee, Bluetooth zgodnych ze standardem poziomów logicznych CMOS 3,3 V.

Tabela 1. Opis rozmieszczenia pinów Launchpada V1.5

W razie potrzeby użycia wszystkich 8 bitów portu wyprowadzenie ich na złącza P1_0...P2_7 nie jest zbyt wygodne, więc cały port i zasilanie wyprowadzono na złącza EP1 i EP2 typu IDC10 w standardzie STK500. Ze względu na alternatywne wyprowadzenie obwodu oscylatora na P2_7/6 istnieje możliwość odłączenia ich od EP1, EP2 poprzez wyciągnięcie odpowiedniej zwory X26/X27/P2_6/7.

Do złącza IRC doprowadzono sygnały z odbiornika podczerwieni IR. Kondensator CI i dławik FBI zapewniają filtrowanie zasilania. Połączenia z wybranym portem LP dokonujemy za pomocą typowej taśmy przewodów. Zastosowano to rozwiązanie ze względu na możliwość wyłączenia zasilania nieużywanego odbiornika IR oraz na elastyczność sposobu realizacji obioru podczerwieni. Do złącza RVC jest dołączony potencjometr nastawny RV służący do zadawaniu wartości analogowej. Sposób jego dołączenia jest identyczny jak odbiornika podczerwieni.

Rysunek 2. Schemat blokowy układu sterownika silników DRV8833 (zgodnie z TI SLVSAR1B)

Niestety, mikrokontrolerów G2 nie wyposażono w pamięć nielotną. Szkoda, ponieważ praktycznie zawsze jest potrzebna możliwość zapamiętania konfiguracji, danych itp. w pamięci nielotnej. Aby "dotrzymać kroku" architekturze G2 pod względem poboru energii, warto zastosować pamięć FRAM pobierającą praktycznie ułamek mocy typowej pamięci EEPROM. Dodatkowo, "gratis" dostajemy najlepsza cechę tego typu pamięci, czyli jednakowy czas cyklu zapisu i odczytu oraz praktycznie nieograniczoną ich liczbę. FRAM ma tylko jeden poważny minus - cenę przechowanego bajta, lecz w naszym zastosowaniu nie jest to specjalnie dotkliwe. Ze względu na zgodność wyprowadzeń FRAM z EEPROM, można stosować je zamiennie. Obwód uzupełniają rezystory podciągające R3 i R4 oraz zwory ZF, SDA, SCL umożliwiające odłączenie nieużywanej pamięci od układu.

Do złącz SRV1/SRV2 doprowadzono sygnały z buforów QS1 i Q2 typu otwarty dren. Tranzystory są zabezpieczone przed przepięciami za pomocą diod DS1 i DS2, co umożliwia sterowanie obciążeń indukcyjnych. Rezystory RS1 i RS2 polaryzują wejścia bramek. Wejściowe sygnały sterujące doprowadzono do złącz SR1 i SR2. Wyjścia buforów są doprowadzone do złącz EH zgodnych z Arduino. Mają one doprowadzony sygnał zasilania zewnętrznego VIN, co umożliwia bezpośrednie sterowanie diodami LED, elektromagnesami, serwomechanizmami itp., bez konieczności stosowania dodatkowych przewodów.

Tabela 2. Tabela prawdy układu DRV8833

Nakładka ma zamontowany specjalizowany układ DRV8833 (UM) służący do sterowania silnikami prądu stałego. Układ ma wbudowane dwa mostki H z zabezpieczeniami oraz umożliwia dwukierunkowe sterowanie, także za pomocą PWM, dwóch silników o średnim prądzie 1.5 A. Schemat blokowy układu pokazano na rysunku 2. Próg zabezpieczenia nadprądowego jest ustalony poprzez rezystory RM1 i RM2 na 1 A. Wartość rezystorów wyznacza się z wzoru Is=0,2 V/RMx. Wejście nSLEEP=0 doprowadzone do złącza SLP wprowadza układ w stan ograniczenia poboru prądu, wyłączając mostki i wewnętrzną logikę. Wyjście nFAULT typu otwarty dren informuje o stanie awaryjnym układu. Wejścia sterujące AIN1 oraz AIN2, doprowadzone do złącz M11 i M12, sterują pracą mostka zgodnie z tabelą 2.

Rysunek 3. Schemat montażowy boosterpacka

Układ umożliwia sterowanie za pomocą PWM poprzez doprowadzenie sygnału modulowanego do jednego z wejść INx. W zależności od stanu drugiego wyjścia jest możliwy wybór trybu hamowania: dla poziomu 0 wybieg, dla 1 hamowanie. Szczegółowe informacje dostępne są w dokumentacji układu DRV8833.

Zewnętrzne zasilanie nakładki poprzez złącze BAT (4,5...10 VDC) zapewnia układ U1 stabilizatora LDO 3,3 V. Dioda świecąca LD sygnalizuje obecność napięcia 3,3 V. Część "mocy" wymaga zasilania zewnętrznego (potencjał VIN) ze względu na ograniczoną wydajność stabilizatora U1 lub LaunchPada. W zależności od położenia zwór VCC/VE/V33 jest możliwy wybór źródła zasilania nakładki:

  • zwora VCC+V33: zasilanie sensorów z LP (należy pamiętać o niewielkim prądzie obciążenia, rzędu kilkudziesięciu mA; niedostępne są zasilania dla UM, QS1 i QS2, nie jest wymagane źródło zewnętrzne),
  • źródło zewnętrzne, zwora VCC+VE zasilanie sensorów ze źródła zewnętrznego, dostępne wszystkie peryferia, launchpad zasilany z USB, normalny stan podczas programowania z Energii,
  • źródło zewnętrzne zwory VCC+V33 oraz VCC+VE, praca autonomiczna, Launchpad zasilany ze źródła zewnętrznego (nie podłączać USB, wyjąć zworę VCC launchpada, aby programator nie pobierał niepotrzebnie prądu).

Złącze MSPJ6 dubluje pin VCC/GND Launchpada, jego montaż nie jest konieczny dla poprawnej pracy.

Wykaz elementów

Rezystory:
R1: 2,2 kΩ (SMD 0805)
RM1, RM2: 0,22 Ω (DMS 1206)
RM3, RS1...RS4: 22 kΩ (SMD 0805)
RV: 20 kΩ (RV0.2H, pot. montażowy, pionowy)

Kondensatory:
C1...C4, CM1: 0,1 µF (SMD 0805)
CE1: 220 µF/10 V (tantalowy)
CE2: 10 µF/6,3 V (tantalowy)
CI, CM2: 2,2 µF (SMD 0805)
CM3: 10 µF (SMD 0805)

Półprzewodniki:
DS1...DS3: S1J (dioda, obud. SMB)
FRAM: FM24CL16B (SO8)
IR: TSOP34836 (TSOP4836H, odbiornik podcz. 3,3V)
LD: dioda LED SMD
U1: LM1117-3.3 (SOT-223)
UM: DRV8833PWPR (HTSSOP16)

Inne:
BAT: SIP2 (złącze EH kątowe, 2-pin)
E1, RST: SIP4 (złącze SIP proste)
EP1, EP2: IDC10 (złącze IDP proste)
FBI: dławik 1 mH (SMD 0805)
I²C, UART, MTR: EH4_254H (złącze EH kątowe 4-pin)
M11, M12, M21, M22, V33, VCC, X26, X27, SLP, SR1, SR2, FLT: SIP1 (złącze SIP proste)
MSPJ1, MSPJ2: SIP10 (gniazdo SIP proste)
MSPJ6: SIP3 (gniazdo SIP proste)
P10...P17, P20...P27, IRC, RVC: CONN: SIP3 (złącze SIP proste)
QS1, QS2: IRLML0030PBF (SOT-23)
SCL, SDA, ZF: zworka
SRV1, SRV2: złącze EH, kątowe 3-pin
VE, CONN: SIP2 (złącze SIP proste)

Montaż

Moduł zmontowano na dwustronnej płytce drukowanej. Jej schemat montażowy pokazano na rysunku 3. Montaż jest typowy, nie wymaga dokładnego opisu. Należy jedynie pamiętać o przylutowaniu pada termicznego układu sterownika silników DRV8833.

Adam Tatuś, EP

Dodatkowe materiały znajdziesz na FTP
user: 32858, pass: 4285avne

Artykuł ukazał się w
Elektronika Praktyczna
luty 2013
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje marzec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów