Датчики температ. охлажд. жидкости (ДТОЖ) (Coolant sensors)

Русскоязычный форум SECU-3 по общим вопросам. General discussion in Russian language. English sub-forum.

Moderator: STC

Post Reply
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Датчики температ. охлажд. жидкости (ДТОЖ) (Coolant senso

Post by Stranger21 »

блин да почемуже так тяжко мне даеться разгадываение значений переменных ... хоть сиди и заноси каждую в дебаг окно .....
датчик выдает 2.73 в 0 градусах , через делитель 0.6 получаем 1,638 делим на дискретность аца 0.0025 получаем 655.2
значит в функцию
int16_t temp_adc_to_c(int16_t adcvalue)
{
if (adcvalue < 0)
adcvalue = 0;
return (adcvalue - ((int16_t)((TSENS_ZERO_POINT / ADC_DISCRETE)+0.5)) );
}
поступило число 655 итог работы функции return (adcvalue - ((int16_t)((TSENS_ZERO_POINT / ADC_DISCRETE)+0.5)) ) =655 -(2.73/0.0025) = 655-1092 = 436 ..... поделим на 4 получим 109 .... какойто бред ((((
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Датчики температ. охлажд. жидкости (ДТОЖ) (Coolant senso

Post by STC »

На вход в функцию temp_adc_to_c() при температуре 0 град. Цельсия приходит значение 1092.
(adcvalue - ((int16_t)((TSENS_ZERO_POINT / ADC_DISCRETE)+0.5)) ) =1092 -(2.73/0.0025) = 1092-1092 = 0
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Датчики температ. охлажд. жидкости (ДТОЖ) (Coolant senso

Post by STC »

Функция для выборки значения температуры из таблицы с интерполяцией и сама таблица.
В таблицу заносить значения температуры в градусах Цельсия используя такую запись (пример): TEMPERATURE_MAGNITUDE(-35.5)

Code: Select all

#ifdef THERMISTOR_CS
#define THERMISTOR_LOOKUP_TABLE_SIZE 16

PGM_DECLARE(int16_t therm_cs_temperature[THERMISTOR_LOOKUP_TABLE_SIZE]) = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

int16_t thermistor_lookup(uint16_t start, uint16_t step, uint16_t adcvalue)
{
 int16_t i, i1;

 if (adcvalue < start) 
  adcvalue = start;

 i = (adcvalue - start) / step;

 if (i >= THERMISTOR_LOOKUP_TABLE_SIZE-1) i = i1 = THERMISTOR_LOOKUP_TABLE_SIZE-1;
  else i1 = i + 1;

 return simple_interpolation(adcvalue, PGM_GET_WORD(&therm_cs_temperature[i]), PGM_GET_WORD(&therm_cs_temperature[i1]), 
        start + (i * step), step)>>4;
}
#endif
В функции thermistor_lookup() первый параметр - напряжение при минимальной температуре, второй параметр - шаг по напряжению. Каждая выборка из таблицы соответствует определенному напряжению на входе АЦП.

Вызывать так:

Code: Select all

 d->sens.temperat_raw = adc_compensate((5*(sum/TMP_AVERAGING))/3,d->param.temp_adc_factor,d->param.temp_adc_correction);
d->sens.temperat = thermistor_lookup(ROUND(0.35/ADC_DISCRETE), ROUND(0.14/ADC_DISCRETE), d->sens.temperat_raw)
Функция thermistor_lookup заменяет функцию temp_adc_to_c
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Датчики температ. охлажд. жидкости (ДТОЖ) (Coolant senso

Post by Stranger21 »

STC wrote:На вход в функцию temp_adc_to_c() при температуре 0 град. Цельсия приходит значение 1092.
(adcvalue - ((int16_t)((TSENS_ZERO_POINT / ADC_DISCRETE)+0.5)) ) =1092 -(2.73/0.0025) = 1092-1092 = 0
вот тут то мы с тобой и запутались на несколько постов .... я имеел ввиду имено эту переменную adcvalue и именно ее приводил в выше описаных расчетах напряжений . а не сам АЦП который не может быть больше 1024 при 2.56 вольтах на входе .
получаеться что в программе гдето идет персчет значения АЦП маштабированием его до 5 вольт? тоесть просто умножено на 2 гдето так? и я это умножение пропустил .

ладно с этим разобрались (сегодня вывел дебаг переменную и увидел что 0 =1092 :) )

теперь вопрос --- почему выбрано 9.1 вольт питания датчика ? . изза делителя составленного цепью 10+15 ком ? . судя по всему я наступил на пройденый тобой грабли ? почему спрашиваю --- я сегодня утром поставил новый датчик 235 , сам датчик , корпус от волгодатчика высверленый . нанес термопасты и вставил его внутрь . ну конечно термо контакт скорее всего не идеальный . но должен нагреться как не крути мне кажеться даже через небольшой воздух.
плата перепаяна на 5 вольт питания датчика 5вольт -- резистор 2.7к - датчик .... и в итоге я не увидел Т больше 75 градусов!!!!! .... тоесть или все таки настолько плох контакт , хотя до этот 335 датчик доходил до 90 при таком же методе установки , или все таки 5 вольт мало ?
почему мало не совсем понятно . так ка с делителем будет 4.5 вольт макс напряжение ... больше 3.73 от датчика не нужно ...

теперь второй вопрос , уже про резистивный датчик . точнее мысли . так как например ВАЗ датчик имеет в отрицательном диапазаоне высокие сопротивления порядка 40-50кОм ... то делитель 10+15 ком паралельно ему - не годен так как зашунтирует датчик .
выхода два , или питать датчик от стабилизатора на 2.6 вольт , что наиболее правильно , но не универсально , и второй выход , менее точный но более правильный не изменяя схемы СЕКУ3 , меняеться номинал резисторов в делителе на вход меги нужно поставить не 10 и 15 ком , а 100 на 100 тем самым мы получим делитель на 2 , запитать датчик все таки от 5 вольт темже резистором 2.7к . получим не превышение нужных нам 2.56 вольт . и 200ком шунт дачтику ... что уже почти не скажетсья на характеристике
пока такие мысли ...
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Датчики температ. охлажд. жидкости (ДТОЖ) (Coolant senso

Post by Stranger21 »

блин .. вот что значит програмист от бога ))) ну а вот я почемуто не додумался сразу сделать ШАГ по напряжению и сделать таблицу температур по этому шагу )))) я то мыслил наоборот ) делал шаг температур и по ним строил таблицу напряжений ..... во я дурак а )))) ппц так тупануть .... )

лучше я тогда введу и константы - минимальное напряжение на датчике , и шаг датчика чтобы было понятно что такое 0.35 и что такое 0.14
вот только у меня вопрос возник а как быть с TEMP_PHYSICAL_MAGNITUDE_MULTIPLAYER ? она же на шаг 0.01 настроена , ее не нужно менять ? или это у нас остаеться как бы для простого округления и перевода в целочисленное исчисление ? и пусть себе дальше будет также .... да пока писал понял что пусть она так и будет дальше ) просто перевод веть в целочисленное )

чтобы точки над i раставить до конца , обьясни как получилось 1092 ... не догоняю чтото ... мне важно это понять чтобы правильно построить таблицу ... веть 10 бит АЦП это 1024 , опора для него 2.56 вольт , 2.56 вольт = 1024
2.73 - 0 град = 1092 , но при этом в текущей схеме на вход пришло 1.638 что при дискрете 0.0025 составляет 655.2 дискрет а у нас 1092!!! как так? блин ... разгадать загадку нужно мне!!! иначе не смогу правильно вход сделать
если бы дискрета была 0.0015 тогда бы получилось 1092 .... блин .. где же из нее вичли 0.001 ?
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Датчики температ. охлажд. жидкости (ДТОЖ) (Coolant senso

Post by Stranger21 »

Итак , схема включения датчика ВАЗ такова
обозначние согласно схеме Secu-3t
1 питание 9.1 вольт
2 резистор R67 =250ком
3 R68 заменить на стабилитрон 5.1 вольт анодом на землю (аналогично газовому переключателю)

тем самым мы получаем , что при минус 50 град сопротивления Датчика =100ком , 9.1 вольт делиться делителем 250к и 100к =2.6 вольт - цель достигнута!!!!
единственное НО , при т-100град сопротивление датчика 180ом , что составит напряжение 0.0065 вольт это уже почти предел измерения ацп ... ((( что плохо конечно ...

блин так не пойдет .. проще тогда 2.6 стабизатор поставить а точнее 3.3 и будет все замечательно

ДА ....
1 R68 убрать
2 стабилитрон VD14 заменить на 3.3 вольта
3 R67 = 20 к

тогда при 100 град будет 0.0294 что уже терпимо! ....
при - 50 будет 2.75 ,
нам нужно всего -30 а это 2.39

может есть стабитрон на 2.7 вольт ? тогда будет еще красивее все так как R67 можно будет уменьшить существенно

ДА
ставим стабилитрон 2.7 вольт!!!!
R67 = 4.7к
тогда
100 град = 0.0995 !!!! грубо говоря 0.1 !!! )))
-30 = 2.479
-50 = 2.578

ЗАмечательно!!!!

вопрос как подключиться к имеющемуся датчику не нарушив его работу , пока не знаю ... но например делать делитель 1мОм на 1мОм , 5 вольт поделит на 2 и 2мОм сильно не скажеться на раоте датчика но такой делитель крайне не стабилен получается (((
Last edited by Stranger21 on Wed Nov 09, 2011 6:18 am, edited 2 times in total.
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
zazuba
LQFP112 - Up with the play
Posts: 104
Joined: Wed Jul 20, 2011 10:25 am
Location: Rostov-on-Don
Contact:

Re: Датчики температ. охлажд. жидкости (ДТОЖ) (Coolant senso

Post by zazuba »

Резистивный датчик.
Проблема состоит в том, чтобы сделать вольтметр с высоким входным сопротивлением. Я правильно понимаю?
А если использовать ОУ включенный по схеме повторителя с делителем на 2, на выходе?

Image

Но. Так как у ОУ вход высокоомный, то экранировать придется всё равно, иначе на неэкранированные провода наведутся все разговоры инопланетян с базой. :)
При питании ОУ от 5В необходим rail-to-rail ОУ, например OPA705, X705.
Attachments
DSC03403.jpg
Буфер обмена02.jpg
Last edited by zazuba on Wed Nov 09, 2011 7:04 am, edited 8 times in total.
GAZ 2410
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Датчики температ. охлажд. жидкости (ДТОЖ) (Coolant senso

Post by Stranger21 »

делитель ставить на выходе Нельзя!!!! это не источник тока!!!! делителем мы нарушим характеристику самого датчика!!!!! ... схема должна быть именно сам делитель и есть одно из плеч датчик!!!!

стабилитрон защитный наверное лучше поставить всеж ... хотя в январе нет защиты . тогда не нужен он значит

неплохая версия с ОУ , а веть наш компаратор сгодиться для такой цели? у нас висит один не юзаный компаратор , если его также соединить и использовать? да тогда экран придеться делать на датчик конечно
и так два варианта схемы --- универсальная с ОУ и частный случай с резистором 4.7к и стабилитроном 2.7
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
zazuba
LQFP112 - Up with the play
Posts: 104
Joined: Wed Jul 20, 2011 10:25 am
Location: Rostov-on-Don
Contact:

Re: Датчики температ. охлажд. жидкости (ДТОЖ) (Coolant senso

Post by zazuba »

Нет, компаратор я думаю, не подойдет.
GAZ 2410
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Датчики температ. охлажд. жидкости (ДТОЖ) (Coolant senso

Post by Stranger21 »

да версия с ОУ мне нравиться больше чем с резистором ... так как получаем "красивую" таблицу напряжений , удобную для АЦП .
какой ОУ порекомендуеш? чтобы опять " не мерз" и проблемм не было ... просто например при постройки преварительного усилителя у меня 772 УО заработал ОК , а вот вроде более качественный NE5532 начал свистеть самовозбуждением .
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
Post Reply