Перейти к содержанию

ATmega + ads1232 + PT100 кто пробовал такую связку?


artos5

Рекомендуемые сообщения

Доброй ночи уважаемые! Кто пробовал собирать схему на данном АЦП по даташиту ? У меня возникла проблема указывающая на недостаточное усиление внутренних ОУ данного АЦП ....

К примеру откалибровал на 24.0 град. нагреваю феном , поднимается темп максимум до +50град. 

Формула калибровки такая:

Теmp = ADC * RealTEMP / callADC;

Или у меня формула неправильная? Вроде раньше ее использовал и она хорошо работала ..

Код чтения АЦП:

void init_adc(void)
{
char timeout=20, i=0;
SCK_SET;
CH_SET;
PD_CLR;
DRDY_INIT;
SCK_INIT;
CH_INIT;
PD_INIT;
delay_ms(500);
PD_SET;	
delay_ms(500);

while(DRDY && timeout)
{
 if(timeout)timeout--;
 delay_ms(100);	
}
for(i=0;i<26;i++)
  {
     SCK_SET; //ADC_CLK=1
     delay_us(500);             
     SCK_CLR; //ADC_CLK=0
     delay_us(500);            
  }
}

unsigned long int Read_ADC_ADS(unsigned char channel)
{
  static unsigned char i, timeout=20;
  static unsigned long int AdcResult=0; 
  SCK_CLR;
  delay_us(500);
if(channel)CH_SET;
else       
CH_CLR;
 delay_us(500);
 AdcResult=0;
 timeout=20;
while(DRDY && timeout)
{
 if(timeout)timeout--;
 delay_ms(100);	
}
 if(timeout==0)return 0x800000;// 
 
  delay_us(500);  

  for(i=0;i<24;i++)
  {  
       AdcResult<<=1;
     SCK_SET; //ADC_CLK=1
     delay_us(500);             
     if (DRDY) AdcResult++;
     SCK_CLR; //ADC_CLK=0
     delay_us(500);            
  }
  
   SCK_SET; //ADC_CLK=1
     delay_us(500);
   SCK_CLR;    
     delay_us(500);
  return(AdcResult);
}

 

Вот так я вывожу уже откалиброванную температуру:

          temp_ = Read_ADC_ADS(0);
           LCD_Goto(3,1); 
           sprintf(lcd_buff ,"TEMP_NOT_F1=%08d", temp_);
           LCD_Printf(lcd_buff,0);  //  вывод на дисплей
           LCD_Goto(3,2); 
           sprintf(lcd_buff ,"TEMP_NOT_F2=%08d ", Read_ADC_ADS(1));
           LCD_Printf(lcd_buff,0);  //  вывод на дисплей
           
           LCD_Goto(3,3); 
           
            
           sprintf(lcd_buff ,"DATA_TEMP=%.1f°C ", (float)(temp_* eep_temp_set / eep_calibr)/10); // вывод откалиброванной температуры
           LCD_Printf(lcd_buff,0);  //  вывод на дисплей 

 

Так калибрую:

if(PWR_BTN)
           {
              BUZ=1;
              LCD_Clear();
              LCD_Goto(3,7); 
              LCD_Printf("TEMP_CALL!",0);  //  вывод на дисплей 
              eep_calibr = Read_ADC_ADS(0);//(Read_ADC_ADS(0)-2*Read_ADC_ADS(1));
              eep_temp_set = temp_real;
              delay_ms(3000);
              BUZ=0;
              if(PWR_BTN)
              {
               x=0;
               LCD_Goto(3,7); 
               LCD_Printf("EXIT_CALL!",0);  //  вывод на дисплей 
               delay_ms(3000);
              }
           }

 

 

Ссылка на даташит: https://www.ti.com/lit/ds/symlink/ads1232.pdf страница 27 , схема включения RTD.

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Привет) меня больше интересует связка ads1232 + pt100 (аппаратная реализация). Проблема не программная ..

Но за ссылки большое спасибо! Есть полезная инфа , сижу читаю.

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

странно как-то на оф.сайте все апноты для тензометрии.

КМК схема в ДШ категорически противопоказана к применению.  ПТ будет показывать погоду на Марсе.

при изменении температуры R1 и/или R2 или длинны/температуры проводов будет меняться ток через ПТ , возможно это лечится переносом REFN на AINP2 , но как отреагирует АЦП на это не понятно.

Ссылка на комментарий
Поделиться на другие сайты

Вот сейчас как раз погоду на Марсе показывает .. калибрую к примеру при 24град. Нагревают датчик до +100 , а показывает +50 грубо говоря.

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

я так и не понял что делает эта команда

(float)(temp_* eep_temp_set / eep_calibr)/10

и откуда здесь

eep_calibr = Read_ADC_ADS(0);//(Read_ADC_ADS(0)-2*Read_ADC_ADS(1));

eep_temp_set = temp_real;

берется temp_real  ???

Ссылка на комментарий
Поделиться на другие сайты

14 минуты назад, IMXO сказал:

берется temp_real  ???

Смотри , идея такая:

Есть некая температура "реальная" , мы ее измерили поверенным термометром и получили к примеру 24.0 градуса . Два датчика соединены вместе , чтобы максимально одинаково была заменена температура . Так вот , берём вводим это значение в настройках "24.0" (вводя значение как раз и изменяется эта переменная)  и нажимаем кнопку калибровки . Как только мы это сделали , это значение 24.0 это temp_real

Оно сразу же копируется в еепром . Только для удобства , я ее представляю ввиду не флоат а лонг и как число 240. 

Надеюсь что понятно рассказал ..

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

понятно... КМК с РТ это не работает....

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

Ссылка на комментарий
Поделиться на другие сайты

35 минут назад, IMXO сказал:

ты с АЦП получил значение напряжения (хотя надо значение сопротивления)

Подскажи пожалуйста формулу , как получить значение сопротивления?

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

в референсной схеме никак. это было здесь https://www.rlocman.ru/forum/showthread.php?t=13522&page=2

чтобы получить сопротивление Rpt  нужно чтобы через Rref и Rpt протекал один и тот же ток, тогда I=Vref/Rref = Vpt/Rpt

 

Ссылка на комментарий
Поделиться на другие сайты

Нашел по твоим ссылкам формулу вычисления температуры из сопротивления , приведу ее здесь:

Тpt100 = (3383.8098-8658.0088*sqrt(0.1758481-0.000231*Rpt100));

Подскажи , как получить сопротивление из цифрового кода АЦП? Значение уже пропорциональное ? Или тоже индивидуальная формула? я то сейчас буду испытывать (возьму подстроечник и подключу вместо термодатчика.

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

И еще , подскажи пожалуйста . Для такой схемы:

beginner42-7_0.gif

Уже выше упомянутая формула не актуальная?
Здесь уже напряжение будет линейное (ну практически линейное) ?

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, artos5 сказал:

Подскажи , как получить сопротивление из цифрового кода АЦП?

исходя из референсной схемы

Rpt100= (2R1*Vadc)/(Vref-Vadc)

где Vadc=(0.5Vref*Nadc)/(Gain*(2^23 - 1))

ну а дальше найденная формула

ЗЫ Gain я бы брал 64

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, IMXO сказал:

Rpt100= (2R1*Vadc)/(Vref-Vadc)

где Vadc=(0.5Vref*Nadc)/(Gain*(2^23 - 1))

Чё так сложно?)

Я сегодня психанул , сдул феном на#рен адс1232 , и на соплях припаял мцп3551 . При одинаковых условиях мцп3551 оказалась очень стабильной и показания колебались в небольших пределах , и это при том что на плате есть дцдц повышайка с 3.3-4в до 5.0в

Сделал сначала калибровку по сопротивления , по верхней методике 

R=ADC*Rr/ADCc

Где R сопротивление датчика

ADC - цифровые данные с АЦП.

Rr - сопротивление при калибровке

ADCc - показания АЦП при калибровке.

И потом полученное значение вставил в формулу уже по сложнее :)

Завтра буду с другим термометром сравнивать )

Подозреваю что мне прислали фуфловые чипы адс1232

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

46 минут назад, artos5 сказал:

Чё так сложно?)

ты ток через Рт знаешь ? я нет, не зная ток по референсной топологии на прямую найти RDT  не получится , надо извращаться через делитель R1 & RDT & R2 . зная Vref  и падение напряжения на RDT измеряемое АЦП.

52 минуты назад, artos5 сказал:

R=ADC*Rr/ADCc

эту формулу можно применять только если и Rref и RDT запитаны от одного источника тока.

Ссылка на комментарий
Поделиться на другие сайты

Так как у меня в наличии были MCP3551 я вчера быстро спаял навесом схему , вот такую:

pt.png

 

то вроде правильно вычисляет сопротивление по такой формуле:

9 часов назад, artos5 сказал:

R=ADC*Rr/ADCc

 

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

6 часов назад, artos5 сказал:

по такой формуле:

апнот AN1154 от микротельных с вами в этом вопросе не согласен.... http://ww1.microchip.com/downloads/en/AppNotes/00001154B.pdf

Ссылка на комментарий
Поделиться на другие сайты

В 3/25/2019 в 20:56, artos5 сказал:

на недостаточное усиление внутренних ОУ данного АЦП

При использовании внутреннего ОУ с коэффициентом 64 или 128 входное напряжение АЦП должно быть приподнято над землей на 1.5В, то есть в таком случае этот РТ100 нельзя просто посадить на землю. В примере этот датчик сдвинут на середину питания с помощью двух резисторов по бокам.

А как у Вас этот датчик был подключён к ADS1232? И какой коэффициент усиления был использован?

У МСР3551 такого внутреннего ОУ нет, там можно просто измерять милливольты РТ100 прямо от земли.

И ADS1232 можно так же использовать, если выключить внутренний ОУ.

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, Yurkin2015 сказал:

А как у Вас этот датчик был подключён к ADS1232? И какой коэффициент усиления был использован?

Коэффициент усиления максимальный был использован.

Схема из даташита , один к одному:

 

Безымянный.png

Дело в том что ADS1232 была собрана правильно. Были применены все меры по помехоподавлению . А при считывании данные сильно прыгали. К примеру так:

10023377

-1234534

10041234

10043244

Когда собрал на проверенных MCP3551 , данные прыгали максимум на +-10-15 отсчетов. Есть подозрение что ADS1232 попалась просто подделка.

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...