Добрый день.
Имеется отладочная плата Olimex'овская LPC-E2294
Задарили со словами "она у нас перестала работать".
Так или иначе, некоторое время у меня лежала на полке, ибо в то время о/р с АРМами было мало. После, уже приобретя j-link и разобравшись, запустил. Помигал подсветкой lcd (за неимением СД), то есть МК и PLL инициализируется. Попробовал запустить lcd (4bit интерфейс, обычный hd44780), долго не мог понять в чем дело, оказалось пин RS (P0.28) все время притянут к высокому уровню, а EN - к нулю (P0.29).
Думал накосячил с выбором пинов (у Olimex'ов на разных ревизиях разная распиновка, причем в примере для конкретной ревизии пины как раз неверные..). Все прозвонил, соответствие схеме есть (на текущий момент не важно какой их них RS/RW/EN, хотя порядок следования вроде бы всегда стандартный).
Смотрю в регистрах при отладке - картина следующая (предположим все задействованные пины высталяются на выход и в 0, потом в 1):
IO0DIR показывает выход по всем портам, все ок.
IO0PIN тоже отображает верные значения (0).
После переключения на 1 всех выводов, получается следующее:
IO0PIN верно отображает состояния RW(1), EN(0) и DB4-7(все 1).
RS остается в нуле по регистру, хотя реально там ~3.7 (пины 5В толерантны).
Реально при проверке мультиметром нормально работают только пины DB4-7 и RW.
RS постоянно притянут к 1, EN - к 0.
Собственно вопрос - может быть я что-то недопонимаю в инициализации портов или же это просто исдохшие выводы? По UM никаких особых двусмысленностей нет.
p.s. Только что сам подумал - с какой радости на RS 3.7В, все остальные пины в пределах 3.3В.
Сообщение отредактировал A-10 - Jun 8 2011, 11:27