|
помощь с ADS1248, непонятное поведение при измерениях |
|
|
|
Jan 21 2014, 10:49
|
Участник

Группа: Участник
Сообщений: 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 графиков снимаемых с АЦП
|
|
|
|
|
 |
Ответов
|
Jan 21 2014, 13:01
|
Гуру
     
Группа: Свой
Сообщений: 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 баксов продают, это самый эффективный способ отладки подобных железячно-софтовых связок.
|
|
|
|
|
Jan 21 2014, 13:02
|
Участник

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

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

Группа: Участник
Сообщений: 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
|
|
|
|
|
Jan 22 2014, 04:53
|
Участник

Группа: Участник
Сообщений: 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. Дельное предложение. Спасибо. Сейчас займусь...
|
|
|
|
|
Jan 22 2014, 06:16
|
Гуру
     
Группа: Модераторы
Сообщений: 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) Начать с этого.
|
|
|
|
|
Jan 22 2014, 06:52
|
Участник

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

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

Группа: Участник
Сообщений: 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-х внешних датчиков. Данные с платы поступают на верхний уровень что бы посмотреть графики и данные. Затем постепенно начинаем плату прогревать феном. Надеюсь все описал )
|
|
|
|
|
Jan 22 2014, 09:41
|
Участник

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

|
Цитата(Tanya @ Jan 22 2014, 13:19)  Так это температура внутри STM32? Да. На основании его датчика температуры. Она пока только для справки. Точность +-1 градус по сравнению с физическим термометром расположенным рядом.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|