Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LPC2468
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
toweroff
Интересует время фронтов.
Пользую внешнюю flash через EMC, читается гуд, а записывается с ошибками, при этом флешка 100% рабочая
Осциллом посмотреть не могу, но есть подозрение, что "звенит" WR
Резюк на 30 Ом впаял, не помогает...

Есть ли в LPC возможность увеличить время фронта (а-ля как в Альтерах Slow Slew Rate)?
ar__systems
Цитата(toweroff @ Jan 27 2010, 06:11) *
Интересует время фронтов.
Пользую внешнюю flash через EMC, читается гуд, а записывается с ошибками, при этом флешка 100% рабочая
Осциллом посмотреть не могу, но есть подозрение, что "звенит" WR
Резюк на 30 Ом впаял, не помогает...

Время записи требуемое не выжерживаете?
toweroff
Цитата(ar__systems @ Jan 27 2010, 15:02) *
Время записи требуемое не выжерживаете?

там все в порядке, в первую очередь проверил
сейчас все что можно по 16 тактов увеличено, Extended Wait тоже активно
Доступ к флеше 70нс, все тайминги с огромным запасом
aaarrr
Ну а в поллинге ошибок нет?
toweroff
Цитата(aaarrr @ Jan 27 2010, 15:51) *
Ну а в поллинге ошибок нет?


хмм.. сейчас хотел вставить сюда кусок кода проверки записи... и что-то сомнение взяло про очередность проверки DQ7, DQ6 и DQ5...
проверю-ка еще разок
toweroff
Проверил еще раз.
На всякий случай попробовал в разных вариантах - с toggle DQ6 и /DQ7
То же самое

Спотыкается где-то в районе 0x6000 -- 0x7000 адреса
Флешку, записанную на другом девайсе, читает байт-в-байт 100% нормально, т.е. данные и адрес в порядке

Мозг рушится smile.gif
aaarrr
Как зовут флеш, и какой характер носят ошибки?
toweroff
Флеш может быть M29W128GL, M29W128GH, S29GL128M, S29GL128N
Все спотыкаются примерно до первых 32Кбайт. Иногда стабильно на каком-то адресе, иногда нет. Характер ошибки - просто выскакивает в DQ5=1

Используется буферная запись, для ST (M29W128G) буфер 256 слов, для остальных - 32 слова
aaarrr
Цитата(toweroff @ Jan 27 2010, 21:58) *
Характер ошибки - просто выскакивает в DQ5=1

А с данными что?
toweroff
Цитата(aaarrr @ Jan 27 2010, 22:04) *
А с данными что?

с данными все ОК до точки ошибки...

Увеличил WaitWriteEnable до 5 тактов... заработало. Странно, по даташиту разница между /CS и /W составляет 0 нс
Значит все-таки не 0 smile.gif
aaarrr
Цитата(toweroff @ Jan 27 2010, 22:38) *
с данными все ОК до точки ошибки...

Ну, в этом я как-то и не сомневался. Естественно, интересно только то, что на месте ошибки.
Ну да ладно.
toweroff
Цитата(aaarrr @ Jan 27 2010, 23:29) *
Ну, в этом я как-то и не сомневался. Естественно, интересно только то, что на месте ошибки.
Ну да ладно.

там на самом деле две флеши, т.е. объединены до 32-бит шины. Так вот одна флеш отрабатывает нормально, а во второй FFFF на длину буфера
zltigo
Цитата(toweroff @ Jan 28 2010, 00:19) *
там на самом деле две флеши, т.е. объединены до 32-бит шины. Так вот одна флеш отрабатывает нормально, а во второй FFFF на длину буфера

Ну так сразу и сказали. Читайте внимательнее описание контроллера. boost у Вас ломается. Обычно их на разные банки вешают и соответственно описывают дополнительные задержки для смены CS.
toweroff
Цитата(zltigo @ Jan 28 2010, 00:33) *
Читайте внимательнее описание контроллера. boost у Вас ломается.

не нашел... ткните носом, пожалуйста...

Цитата(zltigo @ Jan 28 2010, 00:33) *
Обычно их на разные банки вешают и соответственно описывают дополнительные задержки для смены CS.

не получится вешать на разные банки, т.к. память сделана в виде внешних модулей, их организация неизменна, нужно подстраиваться под нее
задержки описываются программно? на какое время?

поясню еще один момент
модули эти (16Мх32) организованы в виде двух банков, у каждого банка свой /E0 и /E1, /WR и /OE общие
соответственно, с LPC я их сделал в виде /E0 = /CS0 & /CS1, /E1 = /CS2 & /CS3
также старший адрес организовал как Ahi = /CS0 & /CS2

чтение модуля отрабатывается четко, дамп совпадает с оригиналом, т.е. все адреса и сигналы управления в порядке

а радоваться рано, погорячился я, что все заработало. Ровно наполовину smile.gif
т.е. в диапазоне первых банков LPC (/CS0 и /CS1) работает, как только входим в зону /CS2, то же самое - старшая часть (32:16) пишется, флешка в младшей части (15:0) отплевывает FFFF
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.