Имеем:
LPC4357-EVB dev board и
Крифо-косой фреймворк версии 1.03Рабочаяя частота - 204МГц
EMC - делитель на 2 и частота 102МГц
Проблема в том, что никак не удаётся запустить EMC контроллер в паре со встроенной SDRAM (MT48L16M16A2 -75).
Писалось по образу и подобию образцов версии 1.01 (в той версии не удалось запустить USB HS). Значения всех регистров после инициализации совпадают. Единственное в чём различие - запись
MODE в саму SDRAM. Но записывая значения из работающего кода, проблема не решается.
Симптомы:
начинаем записывать - всё хорошо
начинаем читать - какая то фигня
Вот теперь вопросы:
1) (запись регистра MODE) Почему отличается, зачем там нужен сдвиг влево?
Код
//SDRAM_ADDR_BASE = DynAddr = 0x28 000 000
//v1.01 тут не совпадает комментарий и значения регистров
temp = *((volatile uint32_t *)(SDRAM_ADDR_BASE | (3<<4| 3)<<11)); /* 4 burst, 3 CAS latency */
//v1.03 тут ModeRegister=51 Col_len=8 or 9
temp = *((volatile uint32_t *) (DynAddr | (ModeRegister << Col_len)));
2)В каком месте ещё может быть проблема и что означает этот симптом?
3)Где ещё можно спросить?