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

 
 
> помощь с ADS1248, непонятное поведение при измерениях
Zeal0t
сообщение Jan 21 2014, 10:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 28-06-13
Пользователь №: 77 311



Добрый день.

АЦП ADS1248. Подключена к STM32 по SPI. Схема подключения полная из DS. Читается, пишется, DRDY при измерении/чтении изменяет.
К АЦП будут подключены тензомост и термистор.
В данный момент выполняю измерение внутренних значений АЦП на основании режима задаваемого через регистр MUX1.

Накопились вопросы, которые сам так и не смог решить.
1. В режиме MUX1 "проверка нуля ацп (AVDD + AVSS)/2" имеем шум на входе, который пока списываю на плату/питание/etc. Но иногда "ловлю" броски до максимума разрешения АЦП. Можно ли как то определить причину этого?
2. Режим MUX1 "контроль температуры". При прогреве АЦП, в разумных пределах, видим рост показаний от АЦП. Примерно на температуре +52..+53 градуса C имеем "бросок" показаний на 50-60 тысяч едениц. Затем показания опять плавно растут. При охлаждении платы и АЦП видим падение показаний и опять скачок уже вниз на 50-60 тыс. едениц.

Что было опробовано.

Проверено питание.
Замена АЦП.
Плата промыта.

Все равно имеем броски.
Подскажите - куда и что копать? Мыслей нет (
Могу приложить screenshot`s графиков снимаемых с АЦП
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Ruslan1
сообщение Jan 21 2014, 13:01
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(Zeal0t @ Jan 21 2014, 12:49) *
Но иногда "ловлю" броски до максимума разрешения АЦП. Можно ли как то определить причину этого?

Скорее всего, несинхронная работа шины: АЦП принял дополнительный клок (или, наоборот, не принял). Либо то же самое с DRDY: мастер увидел фронт, которого не было, и пошел считывать.
У меня было подобное (но с другим АЦП): пару раз сутки проскакивали такие битые измерения. Проблема была в программе, сбивалась синхронизация по DRDY(точнее, возникало "паразитное" вычитывание по ошибочно взведенному прерыванию по DRDY сигналу).

Цитата(Zeal0t @ Jan 21 2014, 12:49) *
Могу приложить screenshot`s графиков снимаемых с АЦП

Вы логическим анализатором посмотрите лучше. Настройте его на запуск по фронту какого-то пина, которым дергайте в случае детектирования невалидных данных. Очень удобно и понятно (анализатор и немного предысторию пишет).
Учитывая, что у китайцев 8-канальный анализатор по 15 баксов продают, это самый эффективный способ отладки подобных железячно-софтовых связок.
Go to the top of the page
 
+Quote Post
Zeal0t
сообщение Jan 21 2014, 13:02
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 28-06-13
Пользователь №: 77 311



Цитата(Ruslan1 @ Jan 21 2014, 16:56) *
Скорее всего, несинхронная работа шины: АЦП принял дополнительный клок (или, наоборот, не принял). Либо то же самое с DRDY: мастер увидел фронт, которого не было, и пошел считывать.

По моему маловероятно т.к. при нагреве происходит плавное повышение значения читаемого с АЦП, затем резкий скачок и затем опять плавное повышение. Если не нагревать плату и АЦП - значения идут стабильные (ну в пределах шумов стабильные).

Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 21 2014, 13:53
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Zeal0t @ Jan 21 2014, 17:02) *
затем резкий скачок и затем опять плавное повышение.

В каком смысле? Одиночный выброс, или "как бы" сдвиг нуля - длинная ступенька?
А температура внутренняя?
Go to the top of the page
 
+Quote Post
Zeal0t
сообщение Jan 21 2014, 14:04
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 28-06-13
Пользователь №: 77 311



Цитата(Tanya @ Jan 21 2014, 17:53) *
В каком смысле? Одиночный выброс, или "как бы" сдвиг нуля - длинная ступенька?

Сдвиг нуля

Цитата(Tanya @ Jan 21 2014, 17:53) *
В каком смысле? Одиночный выброс, или "как бы" сдвиг нуля - длинная ступенька?
А температура внутренняя?


Это и есть значения с внутреннего датчика температуры АЦП.

Вот как это выглядит

DATE, TIME, TEMPERATUREMCU, TEMPERATUREADC
21.1.2014, 14:23:46.796, 32, 425450
21.1.2014, 14:23:46.937, 32, 425410
...
21.1.2014, 14:25:36.921, 45, 458223
21.1.2014, 14:25:36.984, 45, 458223
вот тут начало это ступеньки
и далее продолжает набирать по чуть-чуть
21.1.2014, 14:25:37.046, 45, 524400
21.1.2014, 14:25:37.125, 45, 524400
21.1.2014, 14:25:37.921, 45, 524400
21.1.2014, 14:25:38.000, 45, 524400
21.1.2014, 14:25:38.062, 45, 524959
21.1.2014, 14:25:38.109, 45, 524959
21.1.2014, 14:25:38.921, 46, 524959
21.1.2014, 14:25:39.218, 46, 525437
21.1.2014, 14:25:39.281, 46, 525437
21.1.2014, 14:25:39.343, 46, 525437

Сообщение отредактировал Zeal0t - Jan 21 2014, 14:08
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 21 2014, 15:06
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Zeal0t @ Jan 21 2014, 18:04) *
Сдвиг нуля



Это и есть значения с внутреннего датчика температуры АЦП.

Вот как это выглядит

А зачем вообще Вам эта температура? Да еще с такой точностью?
Вот одновременно сдвиг нуля и какое-нибудь измерение стабильного напряжения будет информативнее. Я так думаю.
Или... Что в последней колонке?
Go to the top of the page
 
+Quote Post
Zeal0t
сообщение Jan 22 2014, 04:53
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 28-06-13
Пользователь №: 77 311



Цитата(Tanya @ Jan 21 2014, 19:06) *
А зачем вообще Вам эта температура? Да еще с такой точностью?
Вот одновременно сдвиг нуля и какое-нибудь измерение стабильного напряжения будет информативнее. Я так думаю.
Или... Что в последней колонке?


В последней колонке значение АЦП при измерении внутреннего параметра температура.
Эту температуру предполагалось использовать для контроля нагрева электроники.
По большому счету от нее можно и отказаться если бы не одно НО.
Точно так же прыгает значение с внешнего датчика температуры подключенного к каналам АЦП. И соответственно я делаю только 2 вывода - или я как то неправильно работаю с АЦП, или у него уплывает опора/ноль/etc и как то надо это решить.

Одновременное измерение стабильного напряжения?
Могу сделать замеры/выборку внутренних параметров АЦП и предоставить данные.
Что бы не раздувать тему - какой параметр может помочь:

- Inputs shorted to midsupply (AVDD + AVSS)/2
- V REFP – V REFN (full-scale)
- Temperature measurement diode
- (V REFP1 – V REFN1 )/4
- (V REFP0 – V REFN0 )/4
- (AVDD – AVSS)/4
- (DVDD – DVSS)/4


Цитата(HardEgor @ Jan 21 2014, 21:32) *
Если ступенька всегда в одном месте шкалы, то стоит попробовать два варианта:
- после включения, подать на вход АЦП напряжение чуть ниже этого места и наблюдать(или нет) ступеньку
- когда температура устоялась и показания не плывут, на вход АЦП подать образцовое напряжение и плавно его повышать - будет ступенька в этом месте или нет.

Это данные не на входе АЦП. Это его внутренний датчик температуры.
Хотя данные на входе тоже скачут.

Цитата(HardEgor @ Jan 21 2014, 21:32) *
И по хорошему бы понаблюдать за поведением выхода REF.

Дельное предложение. Спасибо. Сейчас займусь...
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 22 2014, 06:16
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Zeal0t @ Jan 22 2014, 08:53) *
В последней колонке значение АЦП при измерении внутреннего параметра температура.

Расшифруйте, пожалуйста.

Цитата(Zeal0t @ Jan 22 2014, 08:53) *
- Inputs shorted to midsupply (AVDD + AVSS)/2
- V REFP – V REFN (full-scale)

Начать с этого.
Go to the top of the page
 
+Quote Post
Zeal0t
сообщение Jan 22 2014, 06:52
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 28-06-13
Пользователь №: 77 311



Цитата(Tanya @ Jan 22 2014, 10:16) *
Расшифруйте, пожалуйста.

У ADS1248 в регистре MUX1 есть мультиплексор особых режимов.
Один из режимов это контроль температуры когда АЦП подключает свои датчики для внутреннего измерения температуры.
Вот в этой колонке как раз и есть значения, которые читаются с АЦП в этом режиме.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 22 2014, 07:34
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Zeal0t @ Jan 22 2014, 10:52) *
У ADS1248 в регистре MUX1 есть мультиплексор особых режимов.
Один из режимов это контроль температуры когда АЦП подключает свои датчики для внутреннего измерения температуры.
Вот в этой колонке как раз и есть значения, которые читаются с АЦП в этом режиме.

Сама фраза сломала мне мозг - "параметра температура". А что эти цифры означают? А предыдущая колонка - это что за температура?
И еще - это оно само греется, или Вы помогаете?
Go to the top of the page
 
+Quote Post
Zeal0t
сообщение Jan 22 2014, 08:10
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 28-06-13
Пользователь №: 77 311



Цитата(Tanya @ Jan 22 2014, 11:34) *
Сама фраза сломала мне мозг - "параметра температура". А что эти цифры означают? А предыдущая колонка - это что за температура?
И еще - это оно само греется, или Вы помогаете?


Извиняюсь - возможно сумбурно сам написал )

У ADS1248, помимо чтения с входов, есть измерение внутренних режимов самой АЦП.
Режим задается записью битов 2:0 в регистр MUX1.

Вот эти режимы:

000 Normal operation
001 Inputs shorted to midsupply (AVDD + AVSS)/2
010 V REFP – V REFN (full-scale)
011 Temperature measurement diode
100 (V REFP1 – V REFN1 )/4
101 (V REFP0 – V REFN0 )/4
110 (AVDD – AVSS)/4
111 (DVDD – DVSS)/4

Т.е. при выборе режима отличного от "Normal operation" АЦП выполняет измерение на основании заданного режима.
Таким образом "параметр температура" - это значение на входе АЦП в режиме "011 Temperature measurement diode".
Результат с АЦП читаем и записываем себе в буфер. Т.е. эти цифры - это значение которым ответило АЦП в текущем режиме измерения.

Предыдущая колонка - это температура (приблизительная с точностью +-1 градус)
измереная с помощью STM32, которая и управляет/читает АЦП.

Измеряем следующим образом.
Плата запускается, и с переодичностью 100ms выполняет измерение всех внутренних параметров (пока только для справки) и 2-х внешних датчиков. Данные с платы поступают на верхний уровень что бы посмотреть графики и данные. Затем постепенно начинаем плату прогревать феном.

Надеюсь все описал )
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 22 2014, 09:19
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Zeal0t @ Jan 22 2014, 12:10) *
Извиняюсь - возможно сумбурно сам написал )

Предыдущая колонка - это температура (приблизительная с точностью +-1 градус)
измереная с помощью STM32, которая и управляет/читает АЦП.

Так это температура внутри STM32?
Go to the top of the page
 
+Quote Post
Zeal0t
сообщение Jan 22 2014, 09:41
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 28-06-13
Пользователь №: 77 311



Цитата(Tanya @ Jan 22 2014, 13:19) *
Так это температура внутри STM32?

Да. На основании его датчика температуры.
Она пока только для справки.
Точность +-1 градус по сравнению с физическим термометром расположенным рядом.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 22 2014, 09:54
Сообщение #14


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Zeal0t @ Jan 22 2014, 13:41) *
Да. На основании его датчика температуры.
Она пока только для справки.
Точность +-1 градус по сравнению с физическим термометром расположенным рядом.

А можете погреть (паяльником) только контроллер? Возникает ощущение...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Zeal0t   помощь с ADS1248   Jan 21 2014, 10:49
|- - Ruslan1   Цитата(Zeal0t @ Jan 21 2014, 15:02) По мо...   Jan 21 2014, 13:22
||- - Zeal0t   Цитата(Ruslan1 @ Jan 21 2014, 17:22) Вам ...   Jan 21 2014, 13:31
|- - HardEgor   Если ступенька всегда в одном месте шкалы, то стои...   Jan 21 2014, 17:32
|- - Zeal0t   Цитата(Tanya @ Jan 22 2014, 13:54) А може...   Jan 22 2014, 10:04
|- - Tanya   Цитата(Zeal0t @ Jan 22 2014, 14:04) Про н...   Jan 22 2014, 10:20
|- - Zeal0t   Цитата(Tanya @ Jan 22 2014, 14:20) Вот и ...   Jan 22 2014, 10:29
|- - Tanya   Цитата(Zeal0t @ Jan 22 2014, 14:29) Вы хо...   Jan 22 2014, 10:38
|- - Zeal0t   Цитата(Tanya @ Jan 22 2014, 14:38) Пример...   Jan 22 2014, 10:43
|- - Tanya   Цитата(Zeal0t @ Jan 22 2014, 14:43) Эм......   Jan 22 2014, 10:47
- - novchok   Хотелось бы посмотреть на фото платы, осциллограм...   Jan 22 2014, 11:23
- - Zeal0t   Цитата(Zeal0t @ Jan 21 2014, 14:49) Добры...   Feb 25 2014, 05:18


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

 


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


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