Jump to content

    
Sign in to follow this  
porty

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

Recommended Posts

Добрый день

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

 

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

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

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

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

 

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

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

 

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

 

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

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

 

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

Share this post


Link to post
Share on other sites
Добрый день

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


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

 

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this