STM32F407+NAND_MX30LF1G08
Всем доброго дня.
Возник вопрос по поводу настроек NAND памяти.
Использую STM32F407+MX30LF1G08 и библиотеки HAL (CubeMX).
Функцией HAL_NAND_Read_ID читаю идентификатор всё нормально.
С записью и чтением какие то проблемы то нормально читается то пустой массив, хотя функция возвращает OK_HAL.
Я думаю может я в настройках что намудрил.
Судя по документации на NAND я установил такие настройки структуры.
hnand1.Info.BlockNbr = 400; //
hnand1.Info.BlockSize = 40; //
hnand1.Info.ZoneSize = 800; //
hnand1.Info.PageSize = 400; //
hnand1.Info.SpareAreaSize = 20; //
Настройки Тайминга:
/* ComSpaceTiming */
ComSpaceTiming.SetupTime = 0;
ComSpaceTiming.WaitSetupTime = 2;
ComSpaceTiming.HoldSetupTime = 1;
ComSpaceTiming.HiZSetupTime = 0;
/* AttSpaceTiming */
AttSpaceTiming.SetupTime = 0;
AttSpaceTiming.WaitSetupTime = 2;
AttSpaceTiming.HoldSetupTime = 1;
AttSpaceTiming.HiZSetupTime = 1;
Знающие подскажите, я всё правильно указал?
Всё, разобрался.
hnand1.Info.BlockSize = 0x40; // количество страниц в блоке 64
hnand1.Info.ZoneSize = 0x400; // количество блоков 1024
hnand1.Info.PageSize = 0x800; // размер страницы 2048 байт
hnand1.Info.SpareAreaSize = 0x40; // размер блока служебной информации 64 байт
Новая инфа по этой теме. Дело в том что драйвера HAL от CubeMX поддерживают только память с короткой страницей по 512В. В отличие от старой библиотек для работы с NAND памятью. Либо они не заморачивались либо пока не написали. То есть со старой библиотекой от STM можно было выбрать работу либо SMALL BLOCK NAND или LARGE BLOCK NAND , это как раз с длинной страницей. А в библиотеках от Cube этого нету и придётся это делать всё ручками или брать старую библиотеку. Так что я опять разочарован новым продуктом от ST. То в одном месте не доделали то в другом.
Последний раз редактировалось Alex_Kondr; 24.04.2015 в 13:03.
|