К процессору 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 имеется такая особенность?