cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F407 and DCMI

romaine
Associate II
Posted on January 09, 2013 at 21:12

Dear All,

I am using an stm32F407 to capture images coming from an imager. My imager is connected to the DCMI interface and then a DMA is responsible to move the data into the memory. So, I have just discovered that a chip bug with the revision A of the silicon does not allow to transfer the image to an external RAM controlled via the FSCM interface (see the Errata sheet for the stm32F40x ... device limitation). See the DMA2 limitation ''

DMA2 data corruption when managing AHB and APB peripherals in aconcurrent way''.

I experimented the corrupted data behaviour.

Now, I have a 640x480 pixel of 12bit/pixel image; that means I need more than 600kbyte memory. When I connect the DMA2 with the internal memory everything is fine except that I can transfer only a small image.

Question: How can I operate to acquire 

640x480 pixel of 12bit/pixel image inside the external FSMC memory? Has someone experience with the DCMI/DMA2 and large images stored in the external memory? Any suggestions or advice to help me in this respect?

Best regards

   Rom

#dcmi-dma-camera
5 REPLIES 5
harshad
Associate II
Posted on January 10, 2013 at 04:54

Are you using STM32F4DISCOVERY kit ?

romaine
Associate II
Posted on January 10, 2013 at 07:34

Hi HallMark,

No, I do not use the Discovery kit. I have build my own board (stm32F407 + 64M PSRam + 1 x 4232 FTDI (3 uarts + JTAG) and an extension bus (containing the DCMI interface)

Regards

Rom

harshad
Associate II
Posted on January 10, 2013 at 08:06

Hi Romaine,

http://www.st.com/internet/evalboard/product/252216.jsp

is using STM32F407IGH6 and it also have interface for Camera. And there are also example code for DCIM in STM32 library So I think it should work you can take reference from this board. This might help you to get the rid of problem.

romaine
Associate II
Posted on January 10, 2013 at 13:29

Hi HallMark,

Thank you for this information. I rapidly checked the package and I have the impression that the example uses a non concurrent access to the external memory (only the DMA uses the memory during the transfer). My problem is a bit different because my external RAM is shared between the DMA (for the image acquisition), the tasks and the data ...

So, the easiest solution could be to stop the multitasking and giving to the DMA all the bandwidth of the memory during the image transfer ... but this is difficult to be accepted for real-time systems.

Anyway, I will carefully check the package you have suggested to me!

Thank you again,

Rom

amin23
Associate II
Posted on January 10, 2013 at 14:40

Hi,

See the previous thread:

- [DEAD LINK /public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/DCMI%20Issues%2c%20looking%20for%20insight&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B&TopicsView=https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/AllItems.aspx?Paged%3DTRUE%26p_StickyPost%3D%26p_DiscussionLastUpdated%3D20111212%252010%253a46%253a14%26p_ID%3D19852%26View%3D%257bF47A9ED8%252dE726%252d42BE%252dACED%252d732F13B66581%257d%26FolderCTID%3D0x012001%26PageFirstRow%3D121&currentviews=590]DCMI Issues, looking for insight

- [DEAD LINK /public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Some%20more%20DCMI%20problems%20F207IG&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B&currentviews=111]Some more DCMI problems F207IG