2015-03-29 05:07 PM
Hello friends,
I'm messing around with the f4 discovery trying to get Timer 1 to send a DMA transfer request to DMA2, which would transfer a whole GPIO input register (GPIOx_IDR) to somewhere in memory. I was able to enable the transfers myself by setting the EN bit in DMA_SxCR during a timer interrupt, but that's too slow for my application. I'd like to transfer the GPIO input register into memory at around 20MHz, which means no software control of the DMA. Am I trying to do the impossible? Thanks #tim1-stm32-gpio-dma #stm32f4-dma-gpio-gpio_idr-tim12015-03-29 08:21 PM
2015-03-31 10:14 AM
Hi,
I'm trying the same thing in order to acquire PDM samples from the on-board microphone (timer1 externally clocked and acquiring GPIOB->IDR). The TIM1_CH2 DMA Tx (half) complete events are triggered correctly but the samples look wrong (I can hear sound coming from the mic but there's somekind of white noise!). The TIM1 is clocked externally with a 24.576Mhz source and its PWM output is set to 1024Khz. (The whole setup works 100% ok when acquiring with I2S slave Rx). Any idea? Thanks, Riccardo2015-03-31 10:32 AM
Any idea?
Get a logic analyzer, and compare/contrast the data you see on the pins vs the data you acquire in memory?Generate some simple/reproducible test signals you can validate the data with?2015-04-02 12:23 AM
Ah! The issue was in the bit order.. got it working now :)