|
LPC4088+NOR Flash, Проблемы со статической памятью на CS1 |
|
|
|
Aug 11 2013, 20:58
|
Местный
  
Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964

|
Доброго всем времени суток! Поднимаю постепенно проект на LPC4088, теперь столкнулся с проблемой реализации работы с NOR-Flash в связке с LPC4088. NOR - MX29GL512, это полный аналог S29GL512. На EMC висит кроме того еще SDRAM, она работает без вопросов, на данный момент я ее отключил, чтобы добиться хоть какой-то работоспособности флэшки. Со стороны железа все в полном порядке. После безуспешных попыток поднять статическую память на EMC написал функции чтения-записи тупо ногодрыганьем - ID памяти читается без ошибок. Вод код инициализации: Код config.CSn = 1; config.AddressMirror = 0; config.ByteLane = 0; config.DataWidth = 16;
config.ExtendedWait = 0; config.PageMode = 0;
config.WaitWEn = 0x1f;//0x3; config.WaitOEn = 0x1f;//0x3; config.WaitWr = 0x1f;//0xA; config.WaitPage = 0x1f;//0x8; config.WaitRd = 0x1f;//0x5; config.WaitTurn = 0x1f;//0x7; StaticMem_Init(&config);
// pause TIM_ConfigStruct.PrescaleOption = TIM_PRESCALE_USVAL; TIM_ConfigStruct.PrescaleValue = 1; TIM_Init(LPC_TIM0, TIM_TIMER_MODE,&TIM_ConfigStruct); TIM_Waitms(1000); Задержки выставил максимальные, чтобы никаких вопросов не было. В соответствии со своим соединением изменил lpc_emc.c: Код for(i = 0; i < 32; i++) { if (i<=15) PINSEL_ConfigPin(3,i,1); if ((i<=25)||(i==31)) PINSEL_ConfigPin(4,i,1); } PINSEL_ConfigPin(5,0,1); Отдадчик показывает по адресам с 0x90000000 всякий бред, чаще всего 0xff. ID чипа памяти тоже, естественно, не читается, только 0xff: Код #define M16(adr) (*((volatile unsigned short *) (adr)))
M16(MX29_BASE_ADDRESS + 0x555) = 0xAA; M16(MX29_BASE_ADDRESS + 0x2AA) = 0x55; M16(MX29_BASE_ADDRESS + 0x555) = 0x90; SST_id1 = M16(MX29_BASE_ADDRESS + 0x00); Поиск подобных проблем в инете дал следующий результат: http://www.lpcware.com/content/forum/lpc17...flash-s29gl128pПроблема совершенно аналогична, только на lpc1788. Может быть, кто-то сталкивался именно с проблемой использования EMC и CS1? Я уже во что угодно готов поверить после того, как пару дней назад обнаружил, что на LPC4088 второй порт USB ничего не пишет и не читает, если буфер обмена не расположен в памяти USB, про которую в даташите вообще ничего толком не сказано. Причем вроде бы подобная проблема была на LPC2478 и только на чтение, но, видимо, ошибки у них при использовании режимов работы чуть отличающихся от стандартных не проверяет никто. Если я не прав в этом - ткните меня, пожалуйста, в документацию, где про это написано. Очень рассчитываю на чей-то опыт в данном вопросе, не хотелось бы работать с внешней памятью ручками. Не очень, правда, понимаю, зачем разработчик платы выбрал именно CS1, но сейчас ничего не могу изменить. Заранее спасибо!
|
|
|
|
|
 |
Ответов
|
Aug 12 2013, 12:45
|
Местный
  
Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964

|
Цитата(toweroff @ Aug 12 2013, 14:02)  В 16-битном варианте не используется A-1 (=DQ15) и A0 подключается к A1 EMC Проверьте схемотехнику, возможно просто банально ошиблись с разводкой Это вроде бы как раз в байтовом режиме, а у нас вордовый, DQ15 - вывод шины данных. Плюс шифт в SCS я отключил. Схемотехника верна, если бы она не была верна - думаю, что не читался бы идентификатор чипа в режиме ручного управления выводами. Или я что-то не понимаю?
|
|
|
|
|
Aug 12 2013, 14:40
|
Местный
  
Группа: Свой
Сообщений: 266
Регистрация: 8-12-05
Пользователь №: 11 964

|
Цитата(toweroff @ Aug 12 2013, 15:10)  так о том и речь  руками делаете все правильно, а EMC не может. A0 NOR точно приходит на A1 EMC? посмотрите осциллографом все управляющие сигналы, что там вообще происходит... Хотя нет, знаете, я поспешил. Смещение для 16 бит можно скомпенсировать в SCS, там все настроено верно, так что вопрос остается открытым!
|
|
|
|
|
Aug 12 2013, 15:26
|

Гуру
     
Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514

|
Цитата(Polaris @ Aug 12 2013, 18:40)  Хотя нет, знаете, я поспешил. Смещение для 16 бит можно скомпенсировать в SCS, там все настроено верно, так что вопрос остается открытым! Возможно, я что-то упустил... Но! Когда этот бит EMCSC в 0, адрес сдвигается на 1 бит. Таким образом, в A0 будет A1 И теперь посмотрите, что получается: A0 в EMC не используется, но вы-то его активно пользуете! Таким образом, дополнительная часть адреса также должна быть сдвинута! Код M16(MX29_BASE_ADDRESS + (0x555<<1)) = 0xAA; M16(MX29_BASE_ADDRESS + (0x2AA<<1)) = 0x55; M16(MX29_BASE_ADDRESS + (0x555<<1)) = 0x90;
|
|
|
|
Сообщений в этой теме
Polaris LPC4088+NOR Flash Aug 11 2013, 20:58 toweroff Покажите на схеме, как подключена NOR
Очень вероя... Aug 12 2013, 09:04 Polaris Цитата(toweroff @ Aug 12 2013, 11:04) Пок... Aug 12 2013, 10:02   Polaris Цитата(toweroff @ Aug 12 2013, 15:10) так... Aug 12 2013, 13:35     Polaris Цитата(toweroff @ Aug 12 2013, 17:26) Воз... Aug 12 2013, 16:55      toweroff Цитата(Polaris @ Aug 12 2013, 20:55) Нет,... Aug 12 2013, 17:39       Polaris Цитата(toweroff @ Aug 12 2013, 19:39) он,... Aug 12 2013, 17:48        toweroff Цитата(Polaris @ Aug 12 2013, 21:48) Да н... Aug 12 2013, 18:39         Polaris Цитата(toweroff @ Aug 12 2013, 20:39) ога... Aug 12 2013, 19:28          toweroff Цитата(Polaris @ Aug 12 2013, 23:28) Но в... Aug 12 2013, 19:39           Polaris Цитата(toweroff @ Aug 12 2013, 21:39) 1. ... Aug 12 2013, 20:29            toweroff Цитата(Polaris @ Aug 13 2013, 00:29) Так ... Aug 12 2013, 20:43             Polaris Цитата(toweroff @ Aug 12 2013, 22:43) да ... Aug 12 2013, 21:32 Polaris Нет, не помогло.
EMCSC = 1, адрес сдвигаю, эффект... Aug 13 2013, 06:29 toweroff Цитата(Polaris @ Aug 13 2013, 10:29) Нет,... Aug 13 2013, 09:16  Polaris Цитата(toweroff @ Aug 13 2013, 11:16) да ... Aug 13 2013, 09:25   toweroff Цитата(Polaris @ Aug 13 2013, 13:25) Како... Aug 13 2013, 09:31    Polaris Цитата(toweroff @ Aug 13 2013, 11:31) а в... Aug 13 2013, 09:36 toweroff Кстати, а куда подключен по схеме /WR NOR? Aug 13 2013, 10:13 Polaris Цитата(toweroff @ Aug 13 2013, 12:13) Кст... Aug 13 2013, 10:43 toweroff Проверьте настройки ByteLane на всякий случай. Жал... Aug 13 2013, 11:03 Polaris Цитата(toweroff @ Aug 13 2013, 13:03) Про... Aug 13 2013, 11:24 toweroff /WR относительно /CS, их длительности
Запустить в ... Aug 13 2013, 11:37 Polaris Цитата(toweroff @ Aug 13 2013, 13:37) /WR... Aug 13 2013, 12:39 toweroff Есть возможность выложить схему в части подключени... Aug 13 2013, 12:53 Polaris Цитата(toweroff @ Aug 13 2013, 14:53) Ест... Aug 13 2013, 13:26 toweroff Откуда ж 30 МГц?
60 МГц/32 = 500нс ~~ 2MHz
посмот... Aug 13 2013, 13:46 Polaris Цитата(toweroff @ Aug 13 2013, 15:46) Отк... Aug 13 2013, 14:33  toweroff Цитата(Polaris @ Aug 13 2013, 18:33) а во... Aug 13 2013, 14:41 Polaris Цитата(toweroff @ Aug 13 2013, 15:46) Отк... Aug 13 2013, 14:54  toweroff Цитата(Polaris @ Aug 13 2013, 18:54) Я да... Aug 13 2013, 15:26   Polaris Цитата(toweroff @ Aug 13 2013, 17:26) я т... Aug 13 2013, 15:33
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|