STM32Cube a pooled/IRQ/DMA operace

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Neděle Květen 20 19:34:48 CEST 2018


Nevim, jestli uplne chapu vas dotaz, ale myslim, ze to obecne lze, pokud 
mate na mysli jednou treba pouzivat verzi s poolingem, jednou IT a pak 
treba DMA. Ono se to vzdycky kompletne nakonfiguruje, jen je potreba to 
prislusne nastavit v CubeMX na maximalni variantu, tedy DMA.
Taky HAL nemam rad ale asi neni jina cesta pro F7 a vyse, na takove ty 
nekriticke aplikace to funguje a snadno se to pouzije.
Co se tyce kombinace preruseni od periferie a od DMA, tak to asi bude 
trosku HW zavisle ale IMHO to netreba resit, proste pouzit API tak jak 
je to v prikladech a bude to nejak fungovat. V tom HAL jsou ruzne FSM 
pro periferie a co jsem zatim potreboval zkoumat, tak to vzdycky po 
dokonceni operace skonci v nejakem vychozim stavu. Jen implementovat 
prislusne callback funkce pro indikaci dokonceni prenosu.
Ted jsem zprovoznoval QSPI a tam me stve jina vec, strasna rezije pro 
jednotlive operace, kdyz kouknu osciloskopem na signaly tak je to jako 
noty na buben. Zase ale operace E/W trvaji z principu dlouho, tak to 
tolik nevadi ale narocnejsi cteni by uz bylo dost zdrzovane. Vim, ze to 
lze namapovat do pametoveho prostoru a bude po problemu, ale u ostatnich 
periferii to asi nebude lepsi.

Dne 20.05.2018 v 18:00 Marek Sembol napsal(a):
> Zdravim,
> zacal jsem si hrat s STM32, pouzivam (minimalne zatim) projekt 
> vygenerovany STM32CubeMX, HAL drivery.
>
> Otazku smeruji na I2C, ale predpokladam, ze to plati pro vsechny 
> periferie.
> Hraji si s STM32F407, ale predpokladam, ze to plati pro vsechny STM32Fxxx)
>
> Zajimalo by mne, zda mohu kombinovat pooled/IRQ/DMA operace pro jednu 
> periferii (napr I2C1) V dokumentaci jsem nic rozumneho nenasel (ale 
> nerikam, ze to tam neni, mozna jen neumim hledat) Rekneme, ze 
> "naklikam" I2C kanal pro DMA transfer. Pak mohu pouzit funkci 
> HAL_I2C_Master_Transmit_DMA. Mohu pouzit i "pouze IRQ" verzi 
> HAL_I2C_Master_Transmit_IT pripadne poolovanou HAL_I2C_Master_Transmit?
>
> A druha vec: vcera jsem hodne casu stravil nez se mi podarilo I2C DMA 
> prenosy rozjet. Problem byl v tom, ze pri nastaveni DMA STM32CubeMX 
> vynuti irq pro DMA (a ten nejde ani vypnout), ne vsak pro samotny I2C. 
> Delam neco spatne a ty I2C preruseni nemusim zapinat, nebo je to 
> nedopatreni v STM32CubeMX, ze je taky nevynuti?
>
> predem diky,
> Marek
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20180520/2ed19698/attachment.html>


Další informace o konferenci Hw-list