2021-08-19 06:19 AM
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.
2021-08-23 03:53 PM
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.
2021-08-24 12:23 AM
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.