Датчик температуры DS18B20 на STM32

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Прорезались зубы
Аватара пользователя
Сообщения: 215
Зарегистрирован: Вс апр 30, 2017 17:54:36
Откуда: Юрмала

Сообщение dima1967 »

Всем доброго дня!
Делаю устройство на STM32. В устройстве задействованы датчики температуры DS18B20. Прошивку пишу на Atollic. Не получается завести датчик. Помогите разобраться. Может у кого есть код для DS18B20 на Atollic?
Спасибо :))
Реклама
Электрический кот
Аватара пользователя
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Сообщение 240265 »

Не знаю есть ли там на Atollic
https://www.google.ru/search?newwindow= ... IWUewRvd1o
IVL ex UA6PJ
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

[uquote="dima1967",url="/forum/viewtopic.php?p=3683285#p3683285"]Всем доброго дня!
Может у кого есть код для DS18B20 на Atollic?[/uquote]
в Atollic обычный си - вполне можно приспособить любую библиотеку. Пример ногодрыгом для стм32 тут например:
https://www.radiokot.ru/forum/viewtopic ... 1#p2071361
Электрический кот
Аватара пользователя
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Сообщение 240265 »

Классный код. Все решено голым МК.
IVL ex UA6PJ
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

Реклама
Электрический кот
Аватара пользователя
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Сообщение 240265 »

Мурик, это "не совсем" автономный.
IVL ex UA6PJ
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

240265, ТС написал.
dima1967 писал(а):Может у кого есть код для DS18B20
По ссылке код для DS18B20. :) :solder:
Электрический кот
Аватара пользователя
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Сообщение 240265 »

Ну если быть точным.
[uquote="dima1967",url="/forum/viewtopic.php?p=3683285#p3683285"]Может у кого есть код для DS18B20 на Atollic?
Спасибо :))[/uquote] :)
IVL ex UA6PJ
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

В Atollic не такой же GCC? :)))
Или может язык Си отличается? :)))
Электрический кот
Аватара пользователя
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Сообщение 240265 »

Ага, с акцентом :))) . Интересно что ТС уже поднимал этот вопрос https://radiokot.ru/forum/viewtopic.php?f=57&t=162712 .
IVL ex UA6PJ
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Делал я когда-то под STM32F103. Работает на связке таймер+DMA. Тогда я пользовался opencm3, сейчас забросил эту дрянь и пишу исключительно на "голом" CMSIS!
Возможно, перепишу когда-нибудь этот код правильно, но вероятность невысока: DS18 — такое Г, что нет смысла особо распыляться ради этих показометров. Дешевле и проще засунуть килоомный терморезистор за копейки с алиэкспресса!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Грызет канифоль
Сообщения: 298
Зарегистрирован: Ср дек 30, 2009 09:55:39

Сообщение kolobok0 »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3695123#p3695123"]... DS18 — такое Г, ... проще засунуть килоомный терморезистор за копейки с алиэкспресса![/uquote]

терморезистор не протащит дцать метров про пром зоне.
терморезистор нуна колибровать
если вам надо сканировать штук 8 термодатчиков, то организация через аналог - не совсем тривиальная задача.

так, что своя ниша есть, у сей деталюшки.

(круглый)
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

[uquote="kolobok0",url="/forum/viewtopic.php?p=3700735#p3700735"]терморезистор не протащит дцать метров про пром зоне.[/uquote]
Очень даже протащить: размещаем рядом с группой терморезисторов "коллектор" на STM32F042, а дальше — по CAN-шине... Дешево и сердито.
Калибровать надо, да — но и DS18 надо калибровать, иначе точность будет вообще ±2°C!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Eddy_Em писал(а):DS18 надо калибровать, иначе точность будет вообще ±2°C!
это вот откуда такие сведения? данный тип датчика внесен в госреестр средств измерений (во всяком случае был несколько лет назад - не проверял с тех пор), и крайне маловероятно, чтобы датчик с такой "точностью" был внесен в реестр! производитель ни слова о необходимости калибровки не говорит, "паспортная" точность 0,5 градуса.

мой личный опыт в термометростроении в течение нескольких лет не подтверждает ваши заявления о плохой точности датчика.

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

Мой уютный бложик... заходите!
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск

Сообщение Oxford »

DS18B20 не калибруются, точность ±0.5°C Accuracy from -10°C to +85°C из каропки. 1 wire можно до 300м тащить с активным драйвером.

Eddy_Em херню не собирай.
Последний раз редактировалось Oxford Пн сен 16, 2019 08:01:37, всего редактировалось 1 раз.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Просто сравнил показания с платиновыми терморезисторами. При температурах ниже -10°C начинаются интересные вещи.
Да и сам производитель в даташите пишет, что точность 2°C, если работать во всем диапазоне.
Но для измерения комнатной температуры с точностью ±0.5°C сойдет, согласен. Правда, такую же точность можно и на дешевом терморезисторе получить...

А сколько геморроя с идиотским протоколом... Я 1-wire для STM32 больше недели писал! И еще неделю на STM8 убил: там DMA нет, поэтому пришлось делать на таймере с прерываниями. Но до конца так и не реализовал конечный автомат — лень было. Да и, как я уже говорил, смысла нет распылять свои силы на этот показометр.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18785
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Eddy_Em писал(а):Я 1-wire для STM32 больше недели писал!
понятно. не помогла архитектура...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск

Сообщение Oxford »

Eddy_Em точности его хватит для любых задач. Если у тебя фантазии хватает только чтобы измерять комнатную температуру, херовы дела у тебя.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

ds18b20x в корпусе Flip Chip - точность +-2С (0...+70С)
https://www.kit-e.ru/articles/sensor/2001_02_48.php
терморезистор не протащит дцать метров про пром зоне
например есть ДТС224-50М (медные термометрысопротивления 50 Ом), подключаются по трехпроводной схеме.
Максимальное расстояние связи прибор-датчик (термометр сопротивления) ограничено сопротивлением линни связи: не более 15 Ом. Поэтому, чем дальше расположены устройства друг от друга, тем больше толщина сечения кабеля.
Есть вот такие рекомендации:
1. Если расстояние <20 метров, то кабель 3х0,35
2. Если расстояние от 20 метров до 50 метров, то кабель 3х0,5
3. Если расстояние от 50 метров до 100 метров, то кабель 3х0,75.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

[uquote="Oxford",url="/forum/viewtopic.php?p=3701492#p3701492"]Eddy_Em точности его хватит для любых задач.[/uquote]
Нет, для любых не хватит. Для термомониторинга зеркала мне понадобилось не хуже 0.1°C, когда выбирал: аналог или цифра, решил в пользу цифры, чтобы не заморачиваться с мультиплексорами и т.п., да и калибровки эти...
В итоге на TSYS01 сделал — правда, все равно пришлось проводить их сравнительный анализ для расчета аддитивных поправок (благо, с линейностью там все ОК, а вот аддитивно до 0.2°C у некоторых экземпляров! Хотя, конечно, по медиане они в даташит идеально вписываются).
И да, DS18 в совершенно неюзабельном корпусе! Такая дрянь годится разве что для измерения температуры воздуха или жидкости. А к поверхности чего-либо его не прислюнишь! Да и масса корпуса слишком большая...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Ответить

Вернуться в «ARM»