4

I am working on a thing that uses a STM32MP157C. Its datasheet says:

The STM32MP157C/F devices embed a controller for external SDRAM which support the following devices

• LPDDR2 or LPDDR3, 16- or 32-bit data, up to 1 Gbyte, up to 533 MHz clock.

• DDR3 or DDR3L, 16- or 32-bit data, up to 1 Gbyte, up to 533 MHz clock.

If I connect a 2GB LPDDR3 to this, obviously it wouldn't magically gain the ability to address the upper half. Would it still work and be able to address the lower half, similar to what happens if you tie some of the address lines of SRAM to ground?

Does the answer apply to all the other types of DDR listed here?

Emily
  • 141
  • 3
  • Generally speaking, using a larger memory than addressable by the processors SDRAM peripheral controller is only going to increase the cost of your overall system. Is this something you would want ? – citizen May 23 '22 at 07:25
  • Yes you can use it, at some expense. You can even add address translation (paging) hardware to access all the memory, a common hack in the 8-bit CPU (64K limit) and early x86 (1 MB limit) days. The trick is to make sure you don't swap out the program you're currently running... –  May 23 '22 at 11:37
  • Your SDRAM is going to have more rows, columns or banks than the STM32 knows how to use. So you'd need to make sure that the address bits for the 'unused' ones are not left in an indeterminate state when the STM32's SDRAM controller performs the address phase in the memory access. – brhans May 23 '22 at 14:17
  • @citizen I would not want to do this, no :) This question was inspired by supply chain issues; there are currently 1GB units in stock, but larger ones seem more common and I can imagine a situation where they're the only ones available for a while. – Emily May 23 '22 at 14:19

0 Answers0