реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
mifodij
сообщение May 27 2016, 11:38
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 26-05-16
Пользователь №: 91 913



Доброе время суток.
Суть проблемы. К МК 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 правильно организована адресация? и как правильно записывать данные и считывать их?
Если надо могу скинуть полностью проект.
Go to the top of the page
 
+Quote Post
mantech
сообщение May 27 2016, 17:18
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(mifodij @ May 27 2016, 14:38) *
Суть проблемы. К МК STM32F4_diskovery подключил NAND память MT29F64G08.


Сорри за офтоп, но почему решили пройти по пути истинного геморроя гораздо более сложному, чем поставить сд-карту?
Go to the top of the page
 
+Quote Post
desh
сообщение May 28 2016, 08:53
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 113
Регистрация: 25-10-07
Из: Краснодар
Пользователь №: 31 725



Цитата(mifodij @ May 27 2016, 14:38) *
Не могу понять как на С записать данные на страницу памяти, а потом считать их.


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

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


Вторую команду записи нужно отправлять после записи всех байт данных!
Прикрепленные файлы
Прикрепленный файл  nand.zip ( 24.47 килобайт ) Кол-во скачиваний: 29
 
Go to the top of the page
 
+Quote Post
mifodij
сообщение May 31 2016, 15:15
Сообщение #4





Группа: Участник
Сообщений: 11
Регистрация: 26-05-16
Пользователь №: 91 913



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

Прикрепленные файлы
Прикрепленный файл  nand_project.zip ( 1.51 мегабайт ) Кол-во скачиваний: 21
 
Go to the top of the page
 
+Quote Post
mifodij
сообщение Jun 29 2016, 13:51
Сообщение #5





Группа: Участник
Сообщений: 11
Регистрация: 26-05-16
Пользователь №: 91 913



Спасибо совет со стиранием очень помог. Насчет второй команды перепутал.



Сообщение отредактировал mifodij - Jun 29 2016, 13:53
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 23:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016