Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Особенности EMC в LPC2214
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
MobyDick
К процессору LPC2214 в 16-битном режиме подключен Infineоn'овский QuаdFАLC (PЕB 22554):
DBW = 1
A[0] = ~BLS[0]
~BHE = ~BLS[1]
Банк памяти (CS1) сконфигурирован как 16-битный:
MW = 01
RBLE = 1

В документации на LPC2214 поведение сигналов ~BLS[3..0] описано недостаточно хорошо (либо я плохо смотрел). В результате в готовой плате обнаружил неприятный эффект: LPC2214 при чтении выставляет и ~BLS0, и ~BLS1 независимо от разрядности команды, при этом 8-битное чтение QuаdFАLC воспринимает как 16-битное. Чтение некоторых его регистров сопровождается каким-либо побочным эффектом (сброс регистра прерываний, работа с FIFO и т.п.); в результате, например, при 8-битном чтении FIFO каждый второй байт теряется.
QuаdFАLC поддерживает смешанные (8/16 бит) обращения, но использование только 16-битных обращений по ряду причин нежелательно.

Можно ли заставить LPC2214 при чтении в зависимости от обращения по чётному/нечётному адресу активировать только один из ~BLS[] ?
У всех ли процессоров семейства LPC2ххх с 16/32-битным EMC имеется такая особенность?
Alex03
Насколько я понял они BLS-ы при чтении либо все выставляют вместе с OE (при RBLE = 1) либо не активируют их вообще (RBLE = 0), опять же при чтении понятное дело.
Если так, то понять к какому байту обращение похоже, что невозможно.

Тогда можно пойти как минимум 3-мя путями:
1. Только 16-ти битное обращение. (уже есть но не желательно)
2. Только 8-ми битное обращение (небольшая переделка)
3. Оба режима, тут вариантов хватает:
3.1 Использование 2-х банков, один для 16-ти разрядного обращения, второй для 8-ми. Но видимо ещё и мелкая логика потребуется.
3.2 перепрограммирование налету BCFGx, но всё равно надо рулить DBW и т.д.


Или как вариант попробовать подать на A[0] и ~BHE адресные же линии с АРМ-а например A10, А11.
Ну и обращаясь по нужным адресам добиваться желаемого! smile.gif
Например так, задействовав A13, А12
0x81000000..0х810003FE - 16-ти разрядные данные
0x81001000..0х810013FE (каждый второй) - 8-ми, младший байт
0x81002001..0х810023FF (каждый второй) - 8-ми, старший байт
Ну или около того, мог понапутать smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.