neděle 29. července 2012

ARM STM32F

Další činnost byla zaměřena na 32b ARM mikroprocesory, kterými je letoun osazen. Prioritou je nanoQUAD co nejrychleji dostat do stavu schopného letu, proto další kroky vedou k navázání na již hotové a zprovoznění nezbytných částí pro let.

Nejprve bylo třeba seznámit se prostřednictvím dokumentací se základními informacemi, jako je princip práce s registry a jejich rozvržení, s periferiemi, zdrojem hodin (RCC) atd. Následně došlo k samotnému programování (v jazyce C). Z praktických důvodů se pro toto seznámení s STM32 zvolil vývojový kit DISCAVERY.

Součástí systému stabilizace je kamera TCM8230MD, která slouží k detekci pohybu v horizontální rovině. Kamera je připojena k STM32F103, který komunikuje s řídícím STM32 prostřednictvím sběrnice I2C. Jelikož konfigurace kamery je řešená přes stejnou sběrnici, kterou použitý STM32F103 disponuje pouze jednou, I2C kamery bylo připojeno na volné I/O piny mikroprocesoru. Z tohoto důvodu bylo třeba vytvořit I2C softwarově a k tomuto účelu byla napsána knihovna (využívající časovač) nakonfigurovatelná na libovolné I/O piny.

Dále je třeba provést konfiguraci kamery, zprovoznit paralelní komunikaci s kamerou a implementaci potřebného algoritmu ke zpracování obrazu.

4 komentáře:

  1. Jsi neřekl, že ty procesory jsou STM, hned bych tě varoval. Já s nima zrovna dělám a můžu ti říct, že to je hrůza. Hlavně si nejdřív něco zjisti o Standart Peripheral Library a popřemejšlej jestli se ti vyplatí s ní dělat. Já to mam povinně a jedinou dokumentací co jsem k tomu našel je http://brawikov.narod.ru/StdPerLibSTM32F10x/fwlib_drivers.html
    Další problém je neexistující vývojový prostředí zdarma. Hlavně ne Atollic, v nový verzi je omezen na 32k programu. Kdybych nedělal pro firmu, tak bych se snažil sehnat Keil nebo IAR, ale koupit je pro mě není reálné.

    Určitě bloguj dál. Už jsem našel pár děr, který STM maj a vyplatí se vyměnit informace.

    OdpovědětVymazat
  2. Je ohromě zajímavé, proč všichni pořád řeší ta 'vývojová prostředí' a podle jejich dostupnosti si dokonce vybírají procesor... GCC přece bylo, je a bude zdarma, a navíc stejné pro všechny procesory a platformy na světě. Tak proč si mám zbytečně dokola kupovat nějaké drahé Keily a Atollicy?

    OdpovědětVymazat
    Odpovědi
    1. Jako člověk z linuxu taky radši GCC, ale jelikož nejde jen tak sladit GCC + GDB + OpenOCD + Eclipse, tak tu pořád budou firmy, které se na tom napakují. Existuje třeba http://www.stf12.org/developers/ODeV.html, ale mě se to ještě nepovedlo rozchodit pro STM32F100. F4 se mi debugovat povedlo, ale tu jsem zrovna nepotřeboval.

      Vymazat
  3. Ahoj, neco malo dokumentace mame tady: http://rtime.felk.cvut.cz/hw/index.php/STM32_VLDISCOVERY

    Pripadne kontaktuj Pavla Pisu, poradi ti s gcc, gdb, atd.

    OdpovědětVymazat