Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
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. | ||
+ | |||
+ |