Перейти к содержанию
    

Глюки после прошивки LPC1786, как исправить?

Добрый день

Имеется отладочная плата для OM13000 на базе мк LPC1786. (описание Рисунок).

 

Наблюдается следующий глюк:

Если её прошить из под среду LCP expresso то не запускается АЦП (прерывания от АЦП идут, регистры работают точно по даташиту и тд), но значение АЦП возвращает всегда равное 0xFFF0 (все еденицы в 12 значащих битах). Сигнал на входе физически присутствует. Ножка канала АЦП настроена на функцию АЦП а не GPIO, резисторы подтяжки отключены, питание и тактовые на ацп правильно настроены, тактовая ацп 11Мгц что ниже порога в 13Мгц.

А так же какие то проблемы с частотами периферии IO. Т.к. если сделать простой генератор прямоугольников циклом while (1) LPC_GPIO0->FIOPIN^=0x0001<<22; то частота ниже в 4 раза нежели если выключить и потом включить.

При этом остальные части кристалла работают как следует (езернет, таймеры и тд).

 

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

После выключения включения все работает нормально.

 

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

 

Как исправить этот глюк?

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день

Имеется отладочная плата для 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 и использую ОЗУ для отладки программы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, дело в ADCTRIM после прошивки он равен 0, и приходится перетыкать питание у отладки. Пробовал почти все виды настройки, пытался вручную перезаписать этот ADCTRIM программой на контроллере - зависал или игнорировал запись. В общем пока использую тот программатор что указал и глюк повторяется только после программирования или отладки, вызвать глюк на штатных изделиях без программатора не удалось, даже если их подвергать разным факторам (плавное включение питания 1В в минуту, температура выше 80 градусов, статика и тд).

В режиме отладки видно что исполнение не входит в область загрузчика, как и было в статье по ссылке.

Как побороть в режиме программирования или отладки не знаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Я тоже этот глючок не смог побороть.

Если уж сильно надо - попробуйте посмотреть код загрузчика. Может быть запись в ADCTRIM сопровождается записью в какие-либо недокументированные регистры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...