Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Глюки после прошивки LPC1786, как исправить?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Porty
Добрый день
Имеется отладочная плата для OM13000 на базе мк LPC1786. (описание Рисунок).

Наблюдается следующий глюк:
Если её прошить из под среду LCP expresso то не запускается АЦП (прерывания от АЦП идут, регистры работают точно по даташиту и тд), но значение АЦП возвращает всегда равное 0xFFF0 (все еденицы в 12 значащих битах). Сигнал на входе физически присутствует. Ножка канала АЦП настроена на функцию АЦП а не GPIO, резисторы подтяжки отключены, питание и тактовые на ацп правильно настроены, тактовая ацп 11Мгц что ниже порога в 13Мгц.
А так же какие то проблемы с частотами периферии IO. Т.к. если сделать простой генератор прямоугольников циклом while (1) LPC_GPIO0->FIOPIN^=0x0001<<22; то частота ниже в 4 раза нежели если выключить и потом включить.
При этом остальные части кристалла работают как следует (езернет, таймеры и тд).

Все эти странности наблюдаются только если перепрошить устройство тем программатором что на плате.
После выключения включения все работает нормально.

Всё настраивал согласно даташиту user.manual.lpc17xx. Первичная инициализация посредством SystemInit.

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

Спасибо за ответы.
al_sv
Цитата(Porty @ Feb 1 2011, 11:56) *
Добрый день
Имеется отладочная плата для OM13000 на базе мк LPC1786. (описание Рисунок).

Наблюдается следующий глюк:
Если её прошить из под среду LCP expresso то не запускается АЦП (прерывания от АЦП идут, регистры работают точно по даташиту и тд), но значение АЦП возвращает всегда равное 0xFFF0 (все еденицы в 12 значащих битах). Сигнал на входе физически присутствует. Ножка канала АЦП настроена на функцию АЦП а не GPIO, резисторы подтяжки отключены, питание и тактовые на ацп правильно настроены, тактовая ацп 11Мгц что ниже порога в 13Мгц.
А так же какие то проблемы с частотами периферии IO. Т.к. если сделать простой генератор прямоугольников циклом while (1) LPC_GPIO0->FIOPIN^=0x0001<<22; то частота ниже в 4 раза нежели если выключить и потом включить.
При этом остальные части кристалла работают как следует (езернет, таймеры и тд).

Все эти странности наблюдаются только если перепрошить устройство тем программатором что на плате.
После выключения включения все работает нормально.

Всё настраивал согласно даташиту user.manual.lpc17xx. Первичная инициализация посредством SystemInit.

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

Спасибо за ответы.



Извините, а удалось решить проблему с АЦП? Наблюдаю похожую ситуацию на своем устройстве. Настроил ацп на последовательное (не burst) считывание значений по 6 каналам (0-5), по прерываниям. Наблюдаю следующее: если на аналоговое питание и референс подано напряжение питания (такое же как на ядро и периферию, через фильтры, в моем случае 3.35 в) имею 0XFFF для каналов, не подключенных ни к чему, а также для подтянутых к питанию через 10 kOhm. Если меняю подтяжку на 1 kOhm, наблюдаю "плавающее" измеренное значение - от 0 до 0XFFF. Значение, составляющее половину напряжения питания (использовал 2 резистора по 10 kOhm чтобы поделить), также показывается как 0XFFF. Если уменьшаю reference до 3 вольт - получаю 0 на всех каналах - независимо от их входных цепей. Видимо, все таки дело не в программаторе - я использую JTAG и использую ОЗУ для отладки программы
sysel
Проблема АЦП обсуждалась тут:
http://electronix.ru/forum/index.php?showtopic=79432
al_sv
Цитата(sysel @ Feb 18 2011, 10:24) *
Проблема АЦП обсуждалась тут:
http://electronix.ru/forum/index.php?showtopic=79432


Спасибо!
Porty
Да, дело в ADCTRIM после прошивки он равен 0, и приходится перетыкать питание у отладки. Пробовал почти все виды настройки, пытался вручную перезаписать этот ADCTRIM программой на контроллере - зависал или игнорировал запись. В общем пока использую тот программатор что указал и глюк повторяется только после программирования или отладки, вызвать глюк на штатных изделиях без программатора не удалось, даже если их подвергать разным факторам (плавное включение питания 1В в минуту, температура выше 80 градусов, статика и тд).
В режиме отладки видно что исполнение не входит в область загрузчика, как и было в статье по ссылке.
Как побороть в режиме программирования или отладки не знаю.
sysel
Цитата(Porty @ Feb 18 2011, 17:20) *
Пробовал почти все виды настройки, пытался вручную перезаписать этот ADCTRIM программой на контроллере - зависал или игнорировал запись.


Я тоже этот глючок не смог побороть.
Если уж сильно надо - попробуйте посмотреть код загрузчика. Может быть запись в ADCTRIM сопровождается записью в какие-либо недокументированные регистры.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.