Суть проблемы. К МК STM32F4_diskovery подключил NAND память MT29F64G08. написал код для инициализации флеша по пинам.
Начал читать тестовый ID. Получается правильно.
Не могу понять как на С записать данные на страницу памяти, а потом считать их.
Как я понимаю для чтения идет такой код
Код
uint8_t buffer[5];
uint8_t * data = (uint8_t *)FSMC_Bank2_NAND_data;
uint8_t * command = (uint8_t *)FSMC_Bank2_NAND_Command;
uint8_t * address = (uint8_t *)FSMC_Bank2_NAND_Address;
turn_on_ce(NAND_CE0);
*command = 0x00;
*address = 0x00;
*address = 0x00;
*address = 0x00;
*address = 0x00;
*address = 0x00;
*command = 0x30;
buffer[0] =data[0];
buffer[1] =data[1];
buffer[2] =data[2];
buffer[3] =data[3];
buffer[4] =data[4];
uint8_t * data = (uint8_t *)FSMC_Bank2_NAND_data;
uint8_t * command = (uint8_t *)FSMC_Bank2_NAND_Command;
uint8_t * address = (uint8_t *)FSMC_Bank2_NAND_Address;
turn_on_ce(NAND_CE0);
*command = 0x00;
*address = 0x00;
*address = 0x00;
*address = 0x00;
*address = 0x00;
*address = 0x00;
*command = 0x30;
buffer[0] =data[0];
buffer[1] =data[1];
buffer[2] =data[2];
buffer[3] =data[3];
buffer[4] =data[4];
а для записи
Код
uint8_t buffer[5]={0xAA};
uint8_t * data = (uint8_t *)FSMC_Bank2_NAND_data;
uint8_t * command = (uint8_t *)FSMC_Bank2_NAND_Command;
uint8_t * address = (uint8_t *)FSMC_Bank2_NAND_Address;
turn_on_ce(NAND_CE0);
*command = 0x80;
*address = 0x00;
*address = 0x00;
*address = 0x00;
*address = 0x00;
*address = 0x00;
*command = 0x10;
data[0 ]= buffer[0];
data[1] = buffer[1];
data[2] = buffer[2];
data[3] = buffer[3];
data[4] = buffer[4];
uint8_t * data = (uint8_t *)FSMC_Bank2_NAND_data;
uint8_t * command = (uint8_t *)FSMC_Bank2_NAND_Command;
uint8_t * address = (uint8_t *)FSMC_Bank2_NAND_Address;
turn_on_ce(NAND_CE0);
*command = 0x80;
*address = 0x00;
*address = 0x00;
*address = 0x00;
*address = 0x00;
*address = 0x00;
*command = 0x10;
data[0 ]= buffer[0];
data[1] = buffer[1];
data[2] = buffer[2];
data[3] = buffer[3];
data[4] = buffer[4];
програмирую под кейлом. проблема в том что не записыватеся. и как я понимаю неправильно адресация идет.
Подскажите как в MT29F64G08 правильно организована адресация? и как правильно записывать данные и считывать их?
Если надо могу скинуть полностью проект.