2014-01-22 08:05 AM
Hello, everyone!
I'm trying to use the FSMC synchronous burst mode on a STM32F407 and I'm not sure how to activate the burst. Whenever I write a 16 bit word in the Bank, the chip generates 4 clocks for the address and one clock for the data. I want to transmit 360 words in a single burst (only 4 clocks for the address and another 360 clocks for the data).So far, the only way I found to transmit more than 1 word in a burst is using the DMA burst, but it's limited to 128 bits (because of the FIFO). Therefore, I can only transmit 8 words in a burst, using 12 clocks. So each 8 words uses 12 clocks, resulting in 540 clocks. If I could use one burst for the 360 words, it would only take 364 clocks.Does anyone know how to generate a FSMC burst transfer with more than 8 words?Thanks in advance. #stm32-fsmc-burst-synchronous-dma2014-01-25 02:37 PM
Hi,
I am a bit confused about your problem.uint16_t byte = 0xAA;*((volatile uint16_t *)(base address)) = byte;As far as I know the code above will result in 2 write cycles on FSMC bus, not one. If you write again it will generate 2 more write cycles. If you are using the address lines for FSMC these will reflect the address that you write to on stm32. I am unsure what you mean by the chip generates 4 clocks for address? To my knowledge it will not do this. Do you have any code to show, perhaps I misunderstand something here.Regards,rygelxvi