Цитата(AlexandrY @ Aug 31 2012, 14:19)

NAND у вас SLC. Но с ней можно работать и через MLC контроллер, так делает встроенный bootloader.
В моем проекте используется SLC контроллер.
MLC контроллер имеет более сложный алгоритм исправления ошибок памяти и требует больше памяти на контрольные коды , так как MLC NAND более глючная.
Добрый день!
Начал работать с MLC контроллером и наткунался на такую проблему
код имеет вид:
CODE
int NAND_read_page(unsigned int blocknum, unsigned int pagenum, unsigned char *databuff );
unsigned char buffer1[518];
int main (void) {
P3_OUTP_CLR=(0x01<<20);//низкий уровень на GPO20 выключаем пищалку
P3_OUTP_SET=(0x01<<19);//Выской уровень на ноге для снатия Read Only
FLASHCLK_CTRL=0x02;//включаем MLC контроллер и подаем тактовую частоту
MLC_CMD=Reset;
MLC_LOCK_PR=0xA25E; //Разблокируем регистры настройки
MLC_ICR=0x04;// Выбор LP устройства
MLC_LOCK_PR=0xA25E; //Разблокируем регистры настройки еще раз
byte=FLASHCLK_CTRL;
MLC_TIME_REG=(0x01<<24)+(0x0B<<19)+(0x03<<16)+(0x09<<12)+(0x02<<2)+(0x02<<4)+(0x01<<1);
NAND_read_page(10,1,buffer1);
while(1){};
}
вроде все дожно быть просто, делаю инит контроллера, но когда смотрю значения регистров MLC_CMD и всех других относящихся к MLC котроллеру там всегда значение 0х07. Со всеми остальными все ок что пишу то и вижу. Может кто скажет в чем проблема? Может я чего забыл?
на всякий случай проект
Нажмите для просмотра прикрепленного файла