OT Cela rodina STM32 a USART+DMA+IRQ

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Čtvrtek Únor 26 19:45:15 CET 2015


DMA i u Rx je pomerne uzitecne, delam to tak, ze plnim cyklicky buffer 
dle aplikace 64-512B a mam nastaveno generovani preruseni v pulce a na 
konci. Cili pri rychlych prenosech mi to generuje preruseni v pripade 
potreby.
Mimo to buffer obsluhuju v tasku s nizkou prioritou periodicky, takze 
zachytim i kratsi prijate sekvence. Vyhodou je, ze to minimalne zatezuje 
procesor, pokud dela neco duleziteho a pokud nedela, obsluhuje to zase 
rychle prijem.
U vysilani je to jasne, tam zadny problem neni, pripravim buffer a 
nastavim DMA. Pokud potrebuju neco odeslat pred ukoncenim vysilani, 
pozastavim DMA, upravim buffer a nastaveni a jede se dal. Ja uz bez DMA 
v podstate ani ranu.

Dne 26. 2. 2015 v 18:41 Miroslav Mraz napsal(a):
> Nějak v tom nevidím příliš smysl. To původní vlákno se týkalo spíš 
> srovnání vlastností DMA a FIFO při příjmu. Ale nic nenutí to DMA 
> používat i když to jde. Ve většině případů to není příliš vhodné.
> 1. Obvykle musím nějak reagovat na každý jediný znak.
> 2. ARM má výkonu dost, mezi znaky mám např. při 57600 desetiny ms, 
> takže v přerušení můžu udělat pár set instrukcí. Což stačí na průchod 
> nějakým konečným automatem a zapsáním bytu do buferu.
> 3. Pokud potřebuji víc času, stejně musím řešit frontu a odloženou 
> proceduru. Ale většinou ani to není třeba, protože to "více času" 
> platí obvykle na až na konci rámce a zde lze zůstat v tom přerušení i 
> déle (pokud je protokol navržen pro tt. způsob činnosti např. - 
> dotaz->odpověď) aniž by nějaké znaky utekly.
>
> Samosebou mohou existovat aplikace, kde je to DMA výhodou, ale 
> nenapadá mě kde. Jedině pokud rámce mají pevnou délku, ale u UARTu je 
> to dost iluzorní už kvůli tomu že je to asynchronní. Možná nějaký 
> stream 8-bit dat, kde zase tak moc nezáleží na doručení (audio A-law, 
> u-law apod.).
>
> Mrazík
>
> Dne 26.2.2015 v 09:25 Jan Waclawek napsal(a):
>> http://list.hw.cz/pipermail/hw-list/2014-November/465770.html
>>
>> "No to právě ne. Protože když použijete DMA, tak už se nedá
>> použít IRQ od příjmu znaku. Jinak by to totiž bylo moc jednoduché."
>>
>> Presiel som tucet RM od vsetkych pod-rodin STM32, a poznamku
>>
>> "If DMA is used for reception, do not enable the RXNEIE bit."
>>
>> som nasiel len u 'F4xx a 'F2xx. Podla mna to bude suvisiet s tym, ze tam
>> maju DMA jednotky na ich "perifernom porte" "skratku" cez AHB/APB 
>> bridge,
>> v inych pod-rodinach to myslim ze nie je (nepozeral som vsade).
>>
>> Aj u 'F4xx/'F2xx by ta skratka mohla ist obist prinajmensom na DMA2 
>> (t.j.
>> USART1 a USART6) neortodoxnym "opacnym" nastavenim, t.j. pristupovat do
>> USART cez "memory port" DMA jednotky a do pamate cez "periferny 
>> port"; ale
>> diabol moze byt v detailoch, ktore su pre mna pochopitelne skryte.
>>
>> Nemam teraz moznost to vyskusat; ak o to ma niekto zaujem, mohol by to
>> prosim vyskusat ako na 'F4, tak aj ci sucasne DMA a IRQ idu bez 
>> problemov
>> na inych pod-rodinach okrem 'F4/'F2.
>>
>> A, pochopitelne, privitam komentar od insiderov z ST.
>>
>> wek
>>
>>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com



Další informace o konferenci Hw-list