cancel
Showing results for 
Search instead for 
Did you mean: 

Very strange byte write on external 16 bits SDRAM

JMD
Associate II

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.

2 REPLIES 2
TDK
Guru

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
Associate II

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.