1
\$\begingroup\$

I am currently working on an application involving streaming 480p/720p video from an OV5640 camera to an SD card (using SDIO) but I am afraid that the 128Kb of available SRAM are not enough.

Given the situation, in order to increase the available RAM I am trying to interface​ an IS42S16800F-7BLI SDRAM chip with an STM32F446ZCH6 microcontroller on a dedicated PCB but I stumbled across the following problem:

​-Due to the amount of pins used, the STM32 can only communicate with the SDRAM using 8 bits of data

​-I am confused regarding where to connect the DQM pin of the SDRAM when working with 8-bit data width. From what I have read online, it has to be either tied to GND or to the FMC_NBL0 pin but according to STM32CubeIDE, the latter pin is currently used as DCMI_D2 for the DVP camera.

Can someone clarify the process of properly interfacing the DQM pin in the 8 bits mode, or if the external SDRAM is even needed for this task in the first place?

\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

Can someone clarify the process of properly interfacing the DQM pin in the 8 bits mode

From https://www.jedec.org/standards-documents/dictionary/terms/inputoutput-data-mask-dqm :

"DQM : A control signal, used primarily on SDRAMs, that acts as a mask for reading and writing functions. In some instances, the DQM term includes a prefix "U" or "L" indicating upper or lower byte control. In devices where more than two data bit groupings have a data mask applied, an "x" is applied, where "x" takes the values of a, b, c, etc."

So in your use case, I think you don't even need it and could just be tied to ground.

if the external SDRAM is even needed for this task in the first place?

It depends on how do you want to send the data to the sd card. Are you going to send the data at each completed HSYNC pulse ? Or at a specified chunk of pixels (by monitoring the pixel clock) ?

Or are you going to send the data frame by frame ?

The latter is impossible since a single frame of 480p at 8-bit color depth is gonna be 307200 Bytes long.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.