Страница 1 из 2
TMP03F эмулятор на 1wire
Добавлено: Вт сен 17, 2019 05:25:01
vlasovzloy
Есть такой термодатчик с хитрым последовательным интерфейсом. Но, он очень дорогой и трудно доставаемый. Есть желание заменить его на ds18b20, мб ктото уже заморачивался и есть наработки на эмулятор? Беглый гуглопоиск ничего не дал
Всем спасибо, всем досвидания
Re: TMP03F эмулятор на 1wire
Добавлено: Вт сен 17, 2019 06:14:33
korob
Там не 1wire. Нужен не эмулятор, а конвертер с DS18B20 в меандр 35Гц. с переменной скважностью в зависимости от температуры.
Алгоритм конвертации простой:
1) Опрашиваем DS18B20
2) Переводим полученную температуру в нужное значение заполнения ШИМ по выше приведённой формуле.
3) ШИМ-им сигнал 35Гц. с вычисленным заполнением.
4) На выходе ставим каскад открытый коллектор.
АТiny13A + MMBT3904 думаю справятся.
P.S Сам тоже заинтересован в подобном конвертере.

Re: TMP03F эмулятор на 1wire
Добавлено: Вт сен 17, 2019 09:03:52
akl
ATtiny13 не очень подходит, т.к. у него нет приличного таймера. На таймере T1 можно было бы такое реализовать. Зафиксировать длительность Т1, допустим 12'000мкс и вычислять Т2= (T1 × 400)/(235 – tºC), где tºC - значение температуры из DS18B20. Прикидки показывают, что можно уложиться в емкость таймера. Можно такое реализовать на 2313.
Re: TMP03F эмулятор на 1wire
Добавлено: Вт сен 17, 2019 09:42:33
BOB51
Там вроде ШИМ не на фиксированной частоте...
Из мелколапых АВР... тиньки 25/45/85 - скорость там вроде весьма солидная...

Re: TMP03F эмулятор на 1wire
Добавлено: Вт сен 17, 2019 10:08:22
akl
Скорость особо не нужна. Для правильной выдержки временных интервалов при обмене с DS18B20 хватит и 1МГц тактовой.
Re: TMP03F эмулятор на 1wire
Добавлено: Вт сен 17, 2019 10:10:22
korob
BOB51 писал(а):Там вроде ШИМ не на фиксированной частоте
По даташиту 35Гц.±20% .

Re: TMP03F эмулятор на 1wire
Добавлено: Вт сен 17, 2019 10:24:17
akl
Частота 35Гц указана в тесте, наверно, как ориентировочная. Далее следует, что параметр Т2 может быть 44ms при 125ºC+ длительность Т1, т.е. явно меньше 35Гц
Re: TMP03F эмулятор на 1wire
Добавлено: Вт сен 17, 2019 10:56:18
korob
Ну да, при 25°C. А так да, частота с изменением температуры меняется, так как длительность Т1 всегда равна 10...12мс., меняется только длительность Т2.
Спойлер

BOB51 правильно подметил про непостоянство частоты ШИМ.

Re: TMP03F эмулятор на 1wire
Добавлено: Вт сен 17, 2019 11:12:40
ARV
ну, тогда и тинька13 справится - на тупых задержках

пока формируется Т1, идет общение с DS18x20, а потом при помощи _delay_us формируется Т2
если на ассемблере писать, то и attiny9 хватит, пожалуй

Re: TMP03F эмулятор на 1wire
Добавлено: Вт сен 17, 2019 19:45:06
GoldenAndy
ARV, надо только какую то машину состояний замутить для обмена с DS18B20, а то она только цикл измерений гонит 750 мс. А потом можно быренько вычитать, особенно, если SKIPROM включить и читать без подсчета КС.
Re: TMP03F эмулятор на 1wire
Добавлено: Вт сен 17, 2019 20:28:05
ARV
да какая там машина... старт преобразования уложится внутрь Т1, потом гоним циклически Т1-Т2 в расчете на "предыдущую температуру", а спустя 750 мс в течение Т1 вычитываем новую температуру и снова стартуем замер... сложнее словами описать, чем сделать

Re: TMP03F эмулятор на 1wire
Добавлено: Вт сен 17, 2019 21:15:29
GoldenAndy
ARV, ну так это и есть машина - выставить старт и потом отсчитывать 750 мс.
По идее еще надо при пропадании DSки предусмотреть опрос наличия 1Wire устройства, чтения сигнатуры и проверки, DSка ли это...
480+480 мкс Reset+Present...
64мкс*16 - отправка SkipRom + ReadRam
9 байт чтение RAM: 64 мкс *8*9
Итого 480+480+64*16+64*72 = 6592 мкс.
В принципе, в Т1 укладываемся.
Re: TMP03F эмулятор на 1wire
Добавлено: Ср сен 18, 2019 06:50:06
akl
Вариант такого конвертора на ATtiny2313 с использованием Т1. Выход PB4/OC1B прямой.
Re: TMP03F эмулятор на 1wire
Добавлено: Чт сен 19, 2019 11:44:02
akl
Посмотрел предыдущий вариант. Получается, что DS18B20 имеет младший разряд весом 0,0625ºC, а конвертер выдает в целых градусах. Поэтому ещё вариант, но уже с полным разрешением по шкале DS18B20 и инверсным выходом для подключения транзистора с ОК.
Re: TMP03F эмулятор на 1wire
Добавлено: Пт сен 20, 2019 08:56:45
vlasovzloy
Akl, у меня авр не установлен. Нарисуй схему, попробую сразу в железе. И да, и фьюзы какие
Re: TMP03F эмулятор на 1wire
Добавлено: Пт сен 20, 2019 10:35:54
korob
akl спасибо!
Жалко только что ATtiny13 не подошёл.

Re: TMP03F эмулятор на 1wire
Добавлено: Пт сен 20, 2019 15:29:35
Starichok51
а ТС куда-то пропал...
к тому же, он в первом посте сразу сказал всем до свидания. может, уже и не появится?..
лично я понял, что ТС нужно просто заменить дорогой и дефицитный датчик на ds18b20, а не выдавать на выход эмулируемый ШИМ взамен того датчика.
Re: TMP03F эмулятор на 1wire
Добавлено: Пт сен 20, 2019 15:49:12
vlasovzloy
Да, заменить этот дорогой датчик на ds18b20 или s20 и чтобы то что выдавал тмп03, такой же сигнал шел, само собой темпераиуру чтобы правильно показывал. Железнодорожное оборудование, денег как известно не дают, крутимся сами. По грозе летят термодатчики. Рацпредложение по замене попозже напишу, на пиво подкину
Re: TMP03F эмулятор на 1wire
Добавлено: Пт сен 20, 2019 18:31:15
Starichok51
надо заменить - так меняй. а от нас-то что надо, я это так и не понял...
Re: TMP03F эмулятор на 1wire
Добавлено: Вс сен 22, 2019 14:30:34
vlasovzloy
Старичок спасибо за совет, закажу пожалуй оригинальные