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

 
 
> АЦП 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
Ответов
ViKo
сообщение Jun 28 2016, 05:28
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Может быть, вы не выдерживаете какие-то времена, прежде чем обращаться к АЦП? Тстартап, или что там есть у NXP... В спецификации нужно посмотреть.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jun 28 2016, 05:53
Сообщение #3


Гуру
******

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



Цитата(ViKo @ Jun 28 2016, 11:28) *
Может быть, вы не выдерживаете какие-то времена, прежде чем обращаться к АЦП? Тстартап, или что там есть у NXP... В спецификации нужно посмотреть.

Про этот регистр не указаны никакие времена. Всё, что про него написано в даташите:
This register will be set by the bootcode on start-up. It contains the trim values for the DAC
and the ADC. The offset trim values for the ADC can be overwritten by the user. All 12 bits
are visible when this register is read.

Как я понимаю - это просто конфигурационный регистр, к которому можно получить доступ как только включено тактирование периферии ADC.
К тому же я написал уже:
Вставил один и тот же код инициализации АЦП в одно и то же место исходников (в самом начале асм-стартапа, через две команды от вектора сброса) старого и нового. В старом ПО - считывает правильные значения (и содержимое ADTRIM == 0xF00), в новом ПО - считывает всё время 0xFFF (и содержимое ADTRIM = 0). Повторил опыт много раз, перезапуская, пересбрасывая питание, перешил несколько раз ПО туда и обратно....
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- jcxz   АЦП LPC1758 (недопустимое значение регистра ADTRIM)   Jun 28 2016, 03:31
- - 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   По \TRST периферия НЕ СБРАСЫВАЕТСЯ. А вот дал...   Jun 29 2016, 10:26
|- - jcxz   Цитата(Alechek @ Jun 29 2016, 16:26) По ...   Jun 29 2016, 10:37
|- - KRS   Цитата(jcxz @ Jun 29 2016, 13:37) Наверно...   Jun 30 2016, 08:34
|- - jcxz   Цитата(KRS @ Jun 30 2016, 14:34) IMHO луч...   Jun 30 2016, 08:54
|- - jcxz   Цитата(KRS @ Jun 30 2016, 14:34) IMHO луч...   Jul 10 2016, 06:01
- - 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 Текстовая версия Сейчас: 23rd July 2025 - 07:31
Рейтинг@Mail.ru


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