STM32F3 rychlost DMA

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Pondělí Únor 4 17:18:54 CET 2019


Stala se mi zvlastni vec, nevim, jak to fungovalo predtim ale po 
prekopani programu na novy HW mi zacal blbnout prenos dat z ADC.

Je to udelano zatim neoptimalne, 4 nezavisle prevodniky spoustene 
zaroven casovacem, kazdy ma vlastni 16b DMA a na jednu rundu provadi 4 
prevody. S/H byl nastaven na 7,5 cyklu, hodiny ADC asynchronni /1 (64MHz)

Po dlouhem badanim jsem usoudil, ze asi nestiha DMA u ADC3 a 4 (zrejme 
nizsi priorita), dochazelo k preteceni ale to nezpusobilo zastaveni 
prevodu tak se mi vzorky v bufferu nahodne posouvaly. Kdyz si vezmu, ze 
ten prevod trva asi 19 cyklu, je mozne, ze se za tuto dobu nestihnou 4 
DMA prenosy do RAM? Asi teda jo ale zas mi neni jasne, proc to predtim 
fungovalo. HCLK je docasne snizeno na 64MHz ze 72 kvuli chybne volbe 
rezonatoru ale to by nemelo mit logicky vliv. Pomuze zvyseni S/H cyklu 
na 17.5 nebo deleni CLK pro ADC dvema.

Neprehlidnul jsem nejake nastaveni, ktere by takto dramaticky zhorsilo 
propustnost DMA?  Pouzila se o dost novejsi verze HAL knihoven. Pomuze 
prepnuti na synchronni hodiny? Nerad bych, aby bylo reseni nejak 
nespolehlive, pokud do toho vleze jeste nejake jine DMA nebo neco jineho 
s vyssi prioritou na sbernici, ridi to BLDC motor a selhani pro nej muze 
byt fatalni...

Zlepseni asi prinese sdruzeni prevodniku a spolecne DMA pro ADC1-2, 3-4 
az na to bude cas.



Další informace o konferenci Hw-list