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