Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2014:motor-ncv70514

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2014:motor-ncv70514 [2015/01/18 22:22]
Jan Hořák
2014:motor-ncv70514 [2015/01/18 23:02] (aktuální)
Jan Hořák [ZAVĚR]
Řádek 22: Řádek 22:
  
 ===== CODE ===== ===== CODE =====
-Ke způsobu komunikace s mikrokontrolérem ​jsem využil virtuální COM port vytvořený v programu STMCubeMX. K jeho rozchození je nutné si nainstalovat ovladače od výrobce a v souboru startup_stm34f429xx.s upravit údaj Heap_Size na     ​400.+Kod tohoto projektu jsem rozdělil na část v počítači a část v mikrokontroléru STM32F429. K propojení mezi těmito zařízeními ​jsem použil virtuální COM port vytvořený v programu STMCubeMX. K jeho rozchození je nutné si nainstalovat ovladače od výrobce a v souboru startup_stm34f429xx.s upravit údaj Heap_Size na 400.
 ==== MATLAB ==== ==== MATLAB ====
 V počítači jsem si vytvořil program na pro, kde je možné řídit komunikaci a zobrazit údaje v jednotlivých registrech. Jeho fotku a část výpisu kódu vidíme níže. V počítači jsem si vytvořil program na pro, kde je možné řídit komunikaci a zobrazit údaje v jednotlivých registrech. Jeho fotku a část výpisu kódu vidíme níže.
Řádek 72: Řádek 72:
 </​code>​ </​code>​
 ==== ARM ==== ==== ARM ====
 +Hlavní části programu nahraného do ARM jsou obsluha přerušení v případě přijetí dat po seriové lince a samotná hlavní smyčka programu. Všechny proměnné v hlavní smyčce jsou označené jako globální, proto je možné je použít i v dalších knihovnách.
 +
 +První část kódu je obsluha přerušení,​která se nachází v obsluze přerušení pro přijeti dat po seriové lince. Prvně dojde k načtení do registru buff_RX. Kdy se podle délky obsažené zprávy rozhoduje jestli se jedná o příkazy pro řídící piny, nebo data přímo do NCV70514.
 +
 <code c> <code c>
 int i = 0; int i = 0;
  
  USBD_CDC_SetRxBuffer(&​hUsbDeviceHS,​ &​buff_RX[0]);​  USBD_CDC_SetRxBuffer(&​hUsbDeviceHS,​ &​buff_RX[0]);​
-    ​USBD_CDC_ReceivePacket(&​hUsbDeviceHS);​+                ​USBD_CDC_ReceivePacket(&​hUsbDeviceHS);​
   
  if (buff_RX[5]==0) //rozdeleni mezi COMMAND a daty do NCV70514  if (buff_RX[5]==0) //rozdeleni mezi COMMAND a daty do NCV70514
Řádek 92: Řádek 96:
  }  }
 </​code>​ </​code>​
 +
 +V samotném hlavním programu dochází k inicializaci všech použitých periferií a čekání na následný stisk tlačítka.
 +Po stisku přejde program do nekonečné smyčky, kdy jsou kontrolovány registry pro příjem a na základě uložených dat do nich jsou buď odeslány po SPI sběrnici dál, případně dojde k nastavení požadovaného pinu.
 <code c> <code c>
  uint8_t TX[4];  uint8_t TX[4];
Řádek 190: Řádek 197:
 } }
 </​code>​ </​code>​
- 
 ===== ZAVĚR ===== ===== ZAVĚR =====
 +Cílem tohoto projektu bylo čtenáře seznámit se způsoby komunikace s obvodem NCV70514 a jeho propojení s počítačem. V tomto projektu najdete okrajové seznámení se samotným obvodem, způsobem jeho komunikace s okolím a seznámení s jeho vnitřními funkcemi. Vzhledem k specializovanosti samotného obvodu je datasheet nedostupný online. Ke komunikaci jsem vytvořil program v Matlabu pro obsluhu a převodník v ARM. Programem v matlabu je možné řídit jak odesílání dat pro SPI tak i samotné nastavování řídících pinů. V tabulce jdou vidět aktuální hodnoty obsažené v registru NCV70514. Pro vytvořená programu pro STM32F429 jsem použil STM32CubeMX a kód napsal v prostředí Keil 5.
 +
 +
2014/motor-ncv70514.1421616141.txt.gz · Poslední úprava: 2015/01/18 22:22 autor: Jan Hořák