Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F4-Discovery + NAND Flash MT29F64G08
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
mifodij
Доброе время суток.
Суть проблемы. К МК 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 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];

програмирую под кейлом. проблема в том что не записыватеся. и как я понимаю неправильно адресация идет.
Подскажите как в MT29F64G08 правильно организована адресация? и как правильно записывать данные и считывать их?
Если надо могу скинуть полностью проект.
mantech
Цитата(mifodij @ May 27 2016, 14:38) *
Суть проблемы. К МК STM32F4_diskovery подключил NAND память MT29F64G08.


Сорри за офтоп, но почему решили пройти по пути истинного геморроя гораздо более сложному, чем поставить сд-карту?
desh
Цитата(mifodij @ May 27 2016, 14:38) *
Не могу понять как на С записать данные на страницу памяти, а потом считать их.


Ну для начала неплохо бы стереть блок, в котором находится страница в которую Вы пишете.
В приложении немного исходника. Драйвер не окончен. Еще нет EСC. Но чтение, запись и стирание работают.
Память MT29F2G08 процессор STM32F207

Цитата(mifodij @ May 27 2016, 14:38) *
*command = 0x10;


Вторую команду записи нужно отправлять после записи всех байт данных!
mifodij
Микропроцессор STM32F407VG. Спасибо за код. Не могу полностью разобратся с адресацией самой флешпамяти. Прикрепляю исходный код проекта. Сама инициализация ножек и шины FSMC проходит успешно. Чтение ID памяти тоже проходит удачно. Если чесно просто не понятно как сама адресация происходит. как мне достучатся к конкретной странице памяти. что бы туда записать тестовые данные.
mifodij
Спасибо совет со стиранием очень помог. Насчет второй команды перепутал.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.