реклама на сайте
подробности

 
 
> АЦП LPC1758 (недопустимое значение регистра ADTRIM)
jcxz
сообщение Jun 28 2016, 03:31
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Столкнулся с проблемой с АЦП в давно выпускаемом устройстве на LPC1758.
Модифицировали прошивку и перестало работать АЦП - выдаёт всё время 0xFFF (АЦП 12-битный).
Заливаешь старую прошивку - АЦП работает, значения меняются, новую - не работает.
Код инициализирующий периферию (ноги, PLL, другие порты и т.п.) - в новой прошивке абсолютно без изменений, код работающий с АЦП - тоже старый (файлы исходников байт-в-байт одинаковы).
После разборок выяснилось, что при старте ПО содержимое регистра ADTRIM разное: при старте старой прошивки там как и указано в даташите ==0xF00, при старте новой прошивки там почему то ==0.
Т.е.: ставлю процедуру инициализации АЦП в ассемблерный стартап-файл, третьей командой (первые две - запреты прерываний), в этой процедуре включаю тактирование АЦП и сразу считываю регистр ADTRIM - и вижу что в старой прошивке там опять как должно быть ==0xF00, а в новой =0. wacko.gif
Про этот регистр в даташите говорится, что он записывается boot-кодом и после записи калибровочных значений в младшие 8 бит, boot-код должен в биты 8-11 записать единицы, заблокировав тем самым модификацию этого регистра.
Получается, что boot-код каким-то образом определяет какая прошивка (старая версия или новая) и записывает или не записывает туда эти единицы в биты 8-11. wacko.gif
Много раз перешивал то старую прошивку, то новую (и размер их сделал одинаковыми на всякий случай) - после каждой перепрошивки в ADTRIM было 0xF00 для старой и 0 - для новой.
Бред какой-то!!!
Если при старте устройства, обнаружив что в битах 8-11 нули, записать туда единички (что должен делать boot-код), то АЦП начинает работать нормально.
Даташиты и ерраты все перерыл - на этот счёт там тишина.
Пока сделал костыль: если в битах 8-11 нули - пишу туда сам при старте ПО единицы. Но не понятно что писать в биты 0-7 (там калибровочные значения). И непонятно что будет дальше в других экземплярах МК?

Кто-нибудь сталкивался с этой проблемой?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alechek
сообщение Jun 29 2016, 10:26
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



По \TRST периферия НЕ СБРАСЫВАЕТСЯ.
А вот далее по JTAG у Вас сбрасывались, согласно вышеприведенным настройкам, "Core and peripheral". Каким образом - остается за кадром. Возможно, через Application Interrupt and Reset Control Register.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 29 2016, 10:37
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Alechek @ Jun 29 2016, 16:26) *
По \TRST периферия НЕ СБРАСЫВАЕТСЯ.
А вот далее по JTAG у Вас сбрасывались, согласно вышеприведенным настройкам, "Core and peripheral". Каким образом - остается за кадром. Возможно, через Application Interrupt and Reset Control Register.

Возможно что при "Core and peripheral" IAR при подключении отладчика посылает сброс через этот "Application Interrupt and Reset Control Register" не проходя bootcode.
В разъёме от JTAG нашёл ещё один сигнал сброса, который у нас заведён на RESET МК. Наверное при выборе "Reset PIN"-варианта сигнал сброса JTAG подаёт на него с проходом bootcode и инитом ADTRIM....
Go to the top of the page
 
+Quote Post
KRS
сообщение Jun 30 2016, 08:34
Сообщение #4


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(jcxz @ Jun 29 2016, 13:37) *
Наверное при выборе "Reset PIN"-варианта сигнал сброса JTAG подаёт на него с проходом bootcode и инитом ADTRIM....

IMHO лучше ставить HALT after bootloader, тогда и reset используется и бутлоадер гарантировано запускается!


Цитата(jcxz @ Jun 30 2016, 06:07) *
Использую эту установку на нескольких разных МК: LPC1758, LPC1778, LPC1788, Tiva TM4C129 - нигде до сих пор проблем не возникало. Правда нигде в них кроме этого проекта АЦП не используется.
Везде используется куча разной периферии как через DMA так и прерывания.

Вот я тоже использовал, обычно правда, SWD connect under reset чтобы вообще чип чисты был!
но вот на LPC40xx функции из boot rom стали глючить пришлось ставить halt after bootloader

В общем чем дальше - тем печальнее! документации все меньше - непонятного и закрытого кода от производителя - больше!


Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 30 2016, 08:54
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(KRS @ Jun 30 2016, 14:34) *
IMHO лучше ставить HALT after bootloader, тогда и reset используется и бутлоадер гарантировано запускается!

А при этом точно reset подаётся? И какой именно: импульс на какую-то ногу разъёма JTAG или сброс при помощи регистров CPU?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 10 2016, 06:01
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(KRS @ Jun 30 2016, 14:34) *
IMHO лучше ставить HALT after bootloader, тогда и reset используется и бутлоадер гарантировано запускается!

Сейчас попробовал поставить "HALT after bootloader" в проекте на LPC4370.
Результат: даже не может запуститься сессия отладки - при каждой попытке запуска, во время загрузки кода выдаёт:
Цитата
Can not read register 15 (R15) while CPU is running
Abort debug session?

В то время как "Core and peripheral" работает нормально.
Правда в качестве эмулятора использую не J-Link, а плату OM13054 с прошивкой J-Link с сайта segger.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- jcxz   АЦП LPC1758 (недопустимое значение регистра ADTRIM)   Jun 28 2016, 03:31
- - ViKo   Может быть, вы не выдерживаете какие-то времена, п...   Jun 28 2016, 05:28
|- - jcxz   Цитата(ViKo @ Jun 28 2016, 11:28) Может б...   Jun 28 2016, 05:53
- - Alechek   Значит, запукать дебагер с брякой на запись даных ...   Jun 28 2016, 06:11
|- - jcxz   Цитата(Alechek @ Jun 28 2016, 12:11) Знач...   Jun 28 2016, 06:45
- - ViKo   У STM есть datasheet, в нем все времена описаны. Г...   Jun 28 2016, 08:02
|- - jcxz   Цитата(ViKo @ Jun 28 2016, 14:02) У STM е...   Jun 28 2016, 08:18
|- - ViKo   Цитата(jcxz @ Jun 28 2016, 11:18) Я же уж...   Jun 28 2016, 08:56
|- - jcxz   Цитата(ViKo @ Jun 28 2016, 14:56) Понятно...   Jun 28 2016, 09:38
- - ViKo   А если InitADC выполнить позже, поменять с чем-ниб...   Jun 28 2016, 10:08
|- - jcxz   Цитата(ViKo @ Jun 28 2016, 16:08) А если ...   Jun 28 2016, 10:55
|- - Alechek   Цитата(jcxz @ Jun 28 2016, 15:55) В даташ...   Jun 28 2016, 13:27
|- - jcxz   Цитата(Alechek @ Jun 28 2016, 19:27) Слаб...   Jun 28 2016, 13:40
|- - Alechek   Цитата(jcxz @ Jun 28 2016, 18:40) Происхо...   Jun 29 2016, 04:40
|- - jcxz   Цитата(Alechek @ Jun 29 2016, 10:40) Втор...   Jun 29 2016, 07:02
- - zltigo   Абстрагируйтесь от этого несчастного ADTRIM - ADC,...   Jun 28 2016, 14:49
|- - jcxz   Цитата(zltigo @ Jun 28 2016, 20:49) Абстр...   Jun 29 2016, 04:04
|- - zltigo   QUOTE (jcxz @ Jun 29 2016, 07:04) Возможн...   Jun 29 2016, 04:27
|- - KRS   Цитата(jcxz @ Jun 29 2016, 07:04) И по ка...   Jun 29 2016, 06:07
- - Obam   " А зачем тогда среди сигналов JTAG есть сигн...   Jun 29 2016, 08:13
|- - jcxz   Цитата(Obam @ Jun 29 2016, 14:13) " ...   Jun 29 2016, 08:17
|- - Obam   Цитата(jcxz @ Jun 29 2016, 12:17) И...? ...   Jun 29 2016, 08:55
- - Alechek   И Цитата("UM10360")The flash boot loader...   Jun 29 2016, 09:06
|- - jcxz   Цитата(Alechek @ Jun 29 2016, 15:06) ...   Jun 29 2016, 09:36
- - Alechek   Сейчас занимаюсь с LPC1754. В настройках JLINK сто...   Jun 29 2016, 18:34
- - jcxz   Цитата(Alechek @ Jun 30 2016, 00:34) Сейч...   Jun 30 2016, 03:07


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 05:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01443 секунд с 7
ELECTRONIX ©2004-2016