External Memory Byte Access
I have a board with the STM32F407ZGTx, which has space for an SRAM/PSRAM expansion, using IS62WV51216BLL-55TLI. I installed it, everything was fine.
I worked with the old 68000 processor, which had 2 signals, UBS and LBS if I'm not mistaken. Upper Byte and Lower Byte. It was 16 bits too... and I could create a char* variable (C++) in memory, and it would write normally to even and odd addresses (even addresses were d8-d15 and odd addresses were d0-d7). Well, here, on the STM32, it seems that the NBL[0-1] signals are useless. I set byte access (as in the images), configured everything, and it only writes 16 bits.
I made a small test program below, and it doesn't work. It seems that it always writes 16 bits. Could someone help me?
I want to do the basics. A char* variable, write sequentially, and read later in the same way. I thought the FSMC did the same thing as the 68000, since it works with memory.
I even looked and searched on the NET, even in an Article, like the one attached, and the explanation is minimal of how byte mode NBL[0-1] works, that's why I'm asking for help:
Using the high-density STM32F10xxx FSMC peripheral to drive external memories
char* xaddress = (char*)0x68000000;
*(xaddress) = 'H';
*(xaddress + 1) = 'E';
*(xaddress + 2) = 'L';
*(xaddress + 3) = 'O';
*(xaddress + 4) = '\0';
printf("%s",xaddress);
What he is writing on the LCD so you can understand my doubt:
EO
In other words, it seems that the 'H' and 'L' are from d8-d15, he is only bringing what is in d0-d7
