16
BROB 2015 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ OBOR: AUTOMATIZACE A MĚŘÍCÍ TECHNIKA ROBOTIKA B5. Návrh rozšiřující desky pro modul s STM32 pro multikoptéru Autoři: Adam Ligocki, Ondřej Koždoň, Martin Koubík Vedoucí: Petr Gábrlík Akademický rok: 2014/2015 Datum: 8.5.2015

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …

BROB 2015

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCHTECHNOLOGIÍ

OBOR: AUTOMATIZACE A MĚŘÍCÍ TECHNIKA

ROBOTIKA

B5. Návrh rozšiřující desky pro modul s STM32 pro multikoptéru

Autoři: Adam Ligocki, Ondřej Koždoň, Martin Koubík

Vedoucí: Petr Gábrlík

Akademický rok: 2014/2015

Datum: 8.5.2015

Page 2: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …

BROB 2015

Zadání:

Navrhněte a realizujte rozšiřující DPS pro modul s mikrokontrolérem STM32, který bude tvořit řídicí jednotku pro multikoptéry. DPS bude obsahovat potřebné integrované obvodya konektory, předpokládá se návrh v programu Eagle a výroba funkčního vzorku pomocí frézy. Součástí projektu bude vytvoření demonstračního programu pro STM32, který ověřífunkčnost DPS a připojených periferií.

Page 3: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …

BROB 2015

Popis vlastního řešení projektu:

DPS:

Konstrukce:

Základním požadavkem bylo přesné umístění jednotlivých pinů, pomocí kterých se pozdějipřipojí procesorová deska. Pro tento účel jsme si vytvořili v eagle součástky odpovídající požadovaným rozměrům. Po dokončení rozmístění těchto pinů jsme okraje desky roztáhli dle možností free verze eagle.

Výsledné rozměry navrhnuté desky jsou 101mm X 61 mm. Deska slouží pro propojení s procesorovou deskou pomocí pinů. Desky k sobě budou přidělány napevno šrouby. Na desce jsou připraveny otvory k vrtání pro montáž desky ke konstrukci. Typ DPS byl nakonec zvolen oboustranný, protože převážná většina součástek mají pouzdra typu SMD.

Zdroje:

Pro palubní elektroniku byl vytvořen spínaný zdroj pomocí obvodu LM2594-5.0. Tento zdroj je napájen z baterie a jeho výstupní napětí je +5V. Napětí +3V je součástí procesorové desky a tedy z ní je pomocí příslušných pinů přivedeno i do desky rozšiřující.

Měření napětí baterie je přivedeno přes odporový dělič na příslušný pin. Napěťový dělič byl zvolen tak, že se předpokládá 12V baterie.

Konektory:

Pro konektory jsme si vytvořili v eagle speciální součástky odpovídající požadovaným konektorům.

Pomocí dvou-pinových konektorů se připojí následující: Baterie, výstupní napětí +3V a +5Vpro další rozvod napětí.

Micro USB konektor je připojen přímo na příslušné piny procesoru.

Pro RS-232 konektor bylo potřeba přidat převodník z UART na RS-232. Jedná se o MAX3232. Je to dvoukanálový obousměrný převodník. Použili jsme jeden kanál převodníku a RS-232 jsme vyvedli pomocí tří-pinového konektoru. Z převodníku do procesoru jsme použili vstupy USART. Synchronnost/asynchronnost se dá nastavit softwarově.

Pro modul X-Bee jsme vyvedli konektor. Aby byl tento modul umístěn na rozšiřující desce je bohužel moc velký.

Z procesoru je vyvedeno i rozhraní SPI.

Page 4: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …

BROB 2015

Z procesoru na rozšiřující desku jsme našli pouze dva páry pinů I2C. Na jeden jsme tedy připojili řízení motorů a na druhý tlakový snímač BMP085.

Co není vyvedeno je výstup pro serva.

Uživatelské rozhraní:

Je zde připraveno uživatelské tlačítko přivedené na volný pin procesoru, a dále pak uživatelská LED dioda, též připojena na volný pin procesoru.

Dalším prvkem je tlačítko RESET, pro které je připraven obvod, avšak pin z procesorové desky není vyveden, bude se tedymuset propojit drátově.

Hned za stabilizátorem je umístěna LED dioda pro signalizaci napájení.

Beeper je připojen na daný pin procesoru a je buzen pomocí tranzistoru.

Tabulka 1 - seznam jednotlivých pinů a jejich připojení

PA6 Měřič kapacity bateriePA9 USB - VBUSPA11 USB - D-PA12 USB - D+PA15 NSS SPIPB0 BEEP BeeperPB3 SCK SPIPB4 MISO SPIPB5 MOSI SPIPB6 SCL I2C - Tlakový snímačPB7 SDA I2C - Tlakový snímačPB8 SCL I2C – Řízení motoruPB9 SDA I2C – Řízení motoruPC6 USART X-Bee - DINPC7 USART X-Bee - DOUTPC14 Uživatelské tlačítkoPC15 Uživatelská LED diodaPD8 USART TX z převodníku RS-232PD9 USART RX z převodníku RS-232

Page 5: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …

BROB 2015

Výstupy z Eagle:

Pro zachování poměru 1:1 jsou výstupy každý na další stránce.

- Schéma

- Bottom DPS

- Osazovací plán bottom

- Top DPS

- Osazovací plán top

Page 6: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …
Page 7: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …
Page 8: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …
Page 9: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …
Page 10: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …
Page 11: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …

Programování desky s procesorem STM32F4

Úvod

Cílem této části projekty bylo vytvořil několik testovacích programů, které v další fázi otestují funkčnost nového desky plošných spojů, která bude použita pro připravovaného fakultního drona. Zejména pak důležité bylo připravit software, který otestuje správnou funkcionalitu zápisu na SD kartu, a práci s USB sběrnicí. Dále pak je přípraven program pro otestování I2C sběrnice, pomocí které jsou připojeny například barometr, nebo ultrazvukový snímač vzdálenosti.

Pro vývoj softwaru na platrofmě procesorů ARM od firmy STM jsme zvolili vývojové prostředí KEIL.

GPIO

General Purpose Input Output je základní režim ve kterém pracují piny dnešních mikroprocesorů. Pomoci zápisu do vnitřního registru je možné řídit napěťové úrovně na výstupu portu a zároveň využít jednotlivé piny k čtení logických úrovní na vstupu procesoru.

SDIO

Rozhraní SDIO (Secure Digital Input Output) je rozhraní, díky kterému může mikroprocesor komunikovat s nevolatilní paměti, například paměťovou SD kartou. Na kartu je v průběhu letu zapisovaná telemetrie letu kradrotoru. Po přistání je nutno naměřená data přenést do pozemní stanice, například do PC. k tomu se výborně hodí USB sběrnice, kterou je možné data uložená na kartě velmi rychle přenést a zpracovat v počítači.

SDIO sběrnice v základu komunikuje na 25 MHz po 1 vodiči. Pro dosažení maximální rychlosti je však vhodné použít všechny 4 dostupné datové vodiče, a zvýšit tak přenosovou rychlost teoreticky na 100 Mb/s. Pro řízení provozu na sběrnici slouží vodič CMD, kterým Master (procesor) řídí Slave (SD karta).

I2C

Jedná se o sběrnici vyvinutou firmou Philips původně používaná v televizních přijímačích. V dnešní době se však jedná o jednu z nejpoužívanějších sběrnic pro komunikaci s přístroji, které nevyžadují přenos velkého datového toku (například snímač tlaku - měření jednou za desítky ms). Na sběrnici může být připojeno až 128 zařízení a každé má 2 adresy. Jednu pro čtení a jednu pro

�1

Obr. 1 - Pinout SD karty

Page 12: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …

zápis. Při komunikaci pak zařízení připojeno k I2C sběrnici se chová jako EEPROM paměť. Master (mikroprocesor) nejprve se zahájí komunikace Start bitem, následné je na sběrnici zapsána adresa, tou je rozlišeno mezi zápisem a čtením a následuje adresa registru, který se bude číst, respektivě zapisovat. Poté je přenechán prostor Slave (snímači), který na sběrnici pošle obsah požadovaného registru, případně Master pošle obsah určený k zápisu. Sběrnici je možné nakonfigurovat na kmitočet 100 a 400 kHz.

USB

USB (universal serial bus) je moderní sériová sběrnice nahrazujicí pro domácí použití řadu dříve používaných rozhraní. Její výhodou je vysoký datový tok a konektor v každým moderním PC. V dnešní době je již zaveden standard USB 3.1, většina embedded zařízení pracuje na high-speed (480 Mbps) kde tato rychlost je dostačující. Na jeden USB řadič je možno pomocí rozbočovačů připojit až 127 zařízení. Další výhodou USB rozhraní je integrace základních ovladačů (Human Interface Device, Mass Storage Device atd.) do všech moderních operačních systémů. Z programatorského hlediska se můžeme na USB dívat jako na kanál, kde si předem definujeme endpointy, tedy místa kde chceme obsah doručit a na druhé straně je vyzvedneme. USB stack se postará o zabalení zprávy a managmentu transakce včetně přeposlání v případě nedoručení. Každé zařízení má svoje deskriptory, tzn struktury popisující jeho fyzické vlastnosti (zda-li je klávesnice, myš, gamepad, jaký proud si vyžádá) a softwarové vlastnosti. (kolik endpointů,format dat).

Jelikož rozhraní USB nebylo vytvořeno konsorciem firem (jako například HDMI), každý si může na stránkách usb.org najít specifikaci sběrnice a podle ní vyvinout bezplatně svůj produkt.

Tvorba testovacích programů

Všechny programy jsme nejprve vytvořili a vyzkoušeli na oficiální desce STM32F407 Discovery Kit oficiálně dodávanou výrobcem procesoru. Tento vývojový kit je dále osazen do rozšiřující desky, který byla vyvinutá na SPŠE Havířov bývalým studentem Zbigniewem Opiołem. Dále jsme si k této desce připojili plošný spoj osazený 4 snímači. Jendá se o barometr BMP085, gyroskop a akcelerometr v obvodu MPU-6050 a magnetometr HMC5883L. Tyto obvody jsou připojeny právě po I2C sběrnici. Dále je na obrázku patrný ultrazvuk US-20. Ten využívá ke komunikaci GPIO a je tak možné vyzkoušet i tuto funkcionalitu

�2

Obr. 2- STM32F407 Discovery Kit s rozšiřující deskou

Page 13: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …

Poté, co se povedlo zprovoznit program na výše zmíněné konfiguraci, přesunuli jsme algoritmus na modul s procesorem, který bude osazen do kvadrotoru.

Programování modulu s STM32F407VG

Oproti Discovery Kitu bylo nutné provést v programech jednu úpravu. Na modulu je vnější oscilátor 25 MHz. Discovery Kit však je osazen 8 MHz oscilátorem. Takto nahraný program proto při inicializaci vnitřních PLL kmitočtových násobiček.

STM na svých stránkách poskytuje skript vytvořený v MS Office Excel, kde pomocí průvodce je možné vytvořit konfigurační soubor nesoucí informace o nastavení rozvodu kmitočtů do jednotlivých periférií procesoru.

Ořivení barometru BMP085

Firma STM poskytuje na svém webu sadu knihoven pro low-levelové ovládání sběrnic. Díky tomu při práci s libovolnou periférii není nutné se zabývat elementárními řídícími signály a programátor se věnuje pouze obsahu komunikace. Z datasheetu lze vyčíst, že snímač má výrobcem dané 11 korekčních konstant, které je nejprve potřeba vyčíst z paměti a dále je uvažovat při výpočtu tlaku. Následně se periodicky zapisuje do snímače konstanta, která spustí měření. Po uplynutí pevně dané časové prodlevy se z barometru vyčte naměřená hodnota tlaku a teploty a provede se pomocí uvedených vztahů výpočet tlaku.

Pro kopunikace po I2C sběrnici jsou použity piny procesoru PB6 pro hodinový signál a PB7 pro přenos dat.

Ořivení SD karty

Pro tento účel jsem využil projekt zveřejněný na [3]. Projekt byl vytvořen v prostředí CooCox. Provedli jsme port do Keilu a upravili konfiguraci některých parametrů komunikace s SD kartou.Součástí projektu je i implementace podpory souborového systému. Díky tomu procesor dokáže na paměťové médium zapisovat bezprostředně data například do textového souboru. Díky tomu je následná práce s telemetrii velmi snadná.

�3

Obr. 3 - Interface pro nastavení vnitřního kmitočtu procesoru

Page 14: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …

Nejprve byl program oživen na Discovery Kitu a následně byl přenesen na na fakultě vytvořený modul. Na obou platformách se podařilo zapsat i přečíst data uložená na paměťovém médiu.

�4

Obr. 5 - Slot s SD kartou na DPS s procesorem

Obr. 4 - Připojení SD karty k STM32F407 Discovery Kitu

Page 15: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …

Oživení USB

Pro prvotní otestování můžeme použít mírně poupravený příklad programu vytvořený výrobcem, kde procesor komunikuje skrze USB v režimu HID (Human Interface Device) a předává operačnímu systému data odpovídající komunikaci ovládací myše. Tímto jednotuchým programem můžeme otestovat funkčnost USB rozhraní.

V další fázi poté využijeme přiloženého programu k vytvoření USB v režimu MSC, tedy kdy procesor komunikuje s PC způsobem, jako by se jednalo o velkokapacitní úložiště a umožňuje tak uživateli snadno číst soubory uložené v textové podobě na SD kartě.

�5

Obr. 6 - Zapojení pro testování procesoru

Page 16: VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA …

Literatura

[1] BOSCH. BMP085 Digital pressure sensor: Data sheet. [online]. Revize 1.2. 2009, 27 s. Dostupné z URL: <https://www.sparkfun.com/datasheets/ Components/General/BST-BMP085-DS000-05.pdf>.

[2] ST. STM32F4xx: Data sheet. [online]. Revize 1. 5. 2015, 199 s. Dostupné z URL: <http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00037051.pdf>.

[3] Microcontroller 4u [online]. [cit. 2015-05-07]. Dostupné z: http://mikrocontroller.bplaced.net/wordpress/?page_id=621

�6