Skip to main content
JMD
Associate II
August 19, 2021
Question

Very strange byte write on external 16 bits SDRAM

  • August 19, 2021
  • 2 replies
  • 675 views

Hello,

I need help with my external SDRAM I try lot of thing like use discovery board (STM32F769i) with a SDRAM on 32 bits and when I try 16 bits or 8 bits all is ok work like a charm.

My custom board have a STM32F779 with 16 bits ram.

My issue is that write is very strange when I write a byte with memory on 16 bits or 8 bits you can see the strange pattern.

for (uint32_t i = 0; i < GUI_HEIGHT*GUI_HEIGHT; i++) {
 *(__IO uint8_t*) (LAYER0_ADDRESS + i) = (uint8_t)i;
}

In 16 bits mode

I=0

00000000 00000000 00000000

I=1

00000100 00000000 00000000              

  

I=2

00020100 00020002 00000000        

                   

I=3

03020100 03020302 00000000                        

     

I=4

03040100 03040304 00000000                       

        

I=5

05040100 05040504 00000000                         

I=6

05060100 05060506 00000000                  

I=7

07060100 07060706 00000000                  

In 8 bits mode

I=0

00000000 00000000 00000000

I=1

01010100 00000000 00000000

I=2

02020200 00000000 00000000        

                   

I=3

03030300 00000000 00000000                        

I=4

03030300 00000004 00000000                       

        

I=5

03030300 05050504 00000000                         

I=6

03030300 06060604 00000000                  

I=7

03030300 07070704 00000000

I=8

03030300 07070704 00000008

Result expected = 03020100 07060504 0B0A0908

Like you see 1 byte / 4 is right

Somebody have any idea where I need to looking for ?

I try MPU swap bank check all settings of ram etc.

Bad soldering of my BGA SDRAM ?

Thank you so much.

Best regards,

Julien.

This topic has been closed for replies.

2 replies

TDK
August 23, 2021

Seems like a wiring or layout issue. Are the trace lengths matched well enough? Soldering is hard to verify on a BGA without x-ray technology.

"If you feel a post has answered your question, please click ""Accept as Solution""."
JMD
JMDAuthor
Associate II
August 24, 2021

Trace lengths doesn't matched very well but I resolved my issue It is a bad soldering of my MCU pin on NBL0 and NBL1 (byte enable).

Thank you for your support.