Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Подключение DS18b20 к STM32

Непрочитано 11.02.2014, 07:50  
elesy
Прописка
 
Регистрация: 14.09.2009
Адрес: Екатеринбург
Сообщений: 116
Сказал спасибо: 14
Сказали Спасибо 31 раз(а) в 15 сообщении(ях)
elesy на пути к лучшему
По умолчанию Re: Подключение DS18b20 к STM32

Сообщение от Easyrider83 Посмотреть сообщение
Выкладываю рабочий пример с любым количеством сенсоров. Все данные вываливаются в UART. На мой взгляд удачная получилась библиотека.
Прошу перекачать файлы библитек. Добавил функцию SearchRom2.
Либа использует один пин? По идее мона используя либу навесить на порт кучу датчиков?
Реклама:
elesy вне форума  
Непрочитано 11.02.2014, 10:48  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Подключение DS18b20 к STM32

Сообщение от elesy Посмотреть сообщение
Либа использует один пин?
Да, но есть вариант под два пина в том случае, если используется опторазвязка. Там очень легко переделать код и я не стал публиковать его.
Сообщение от elesy Посмотреть сообщение
По идее мона используя либу навесить на порт кучу датчиков?
Я проверял до 16 датчиков. Все работает.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
elesy (11.02.2014)
Непрочитано 30.07.2014, 14:10  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Подключение DS18b20 к STM32

Сообщение от Easyrider83 Посмотреть сообщение
Попытаюсь объяснить понятно.
В простейшем случае код работает так:
Main передает параметры функциям DS18x20, получая код ошибки и данные.
Например, функция DS1822_Search_Rom_One_Device принимает параметр типа GPIO_TypeDef (GPIOA, GPIOB, GPIOC - порт вашего МК), далее параметр пина в виде (1‹‹номер пина) или GPIO_Pin_номер пина. Далее надо дать функции указатель на массив, где вы собираетесь хранить серийный номер, который вернет датчик. Т.е. указываете номер ячейки памяти, с которой у вас начинается массив. Выглядит это так - &DS18B20_sn, где unsigned char DS18B20_sn[8] - массив длинной 8 байт. Функция возвращает код ошибки, который можно посмотреть в файле 1-wire.h т.к. все ошибки могут быть вызваны только ошибками данных на шине.
Функция обращается к процедурам 1-Wire, которые уже пользуясь функциями программных задержек реализуют связь датчика с МК через судорожные подергивания пина. За работу пина отвечает библиотека GPIO, которая использует метод BitBang для быстрой работы пина.
Добрый день Вам! Хочу выразить свой восторг от реализации Вашей библиотеки! Все очень аккуратно и грамотно написано. Все понятно и доступно ; )
Видно что профессионал в этом деле!

Теперь буду ее использовать в своих проектах.
artyomugr вне форума  
Сказали "Спасибо" artyomugr
Easyrider83 (30.07.2014)
Непрочитано 30.07.2014, 14:14  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Подключение DS18b20 к STM32

Сообщение от Easyrider83 Посмотреть сообщение
Да, но есть вариант под два пина в том случае, если используется опторазвязка. Там очень легко переделать код и я не стал публиковать его.
Я проверял до 16 датчиков. Все работает.
Так вроде и библиотеку не надо перепиливать. Достаточно обращаться при чтении к одной ноге , а при записи к другой , верно?
artyomugr вне форума  
Непрочитано 31.07.2014, 01:47  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Подключение DS18b20 к STM32

Уныло всё как-то, прямо сферический ногодрыг в феерическом вакууме. Один таймер с DMAR и два канала ДМА - всё аппаратно и не нужно ничего отключать и гасить.
STM32F0 вне форума  
Непрочитано 31.07.2014, 01:53  
artyomugr
Вид на жительство
 
Аватар для artyomugr
 
Регистрация: 05.04.2008
Адрес: Украина, Ахтырка
Сообщений: 302
Сказал спасибо: 148
Сказали Спасибо 31 раз(а) в 30 сообщении(ях)
artyomugr на пути к лучшему
По умолчанию Re: Подключение DS18b20 к STM32

умные люди перепилят библиотеку под свои нужды, или напишут полностью свою. Код считаю что написан аккуратно
и грамотно. Если вы не согласны - напишите почему
artyomugr вне форума  
Непрочитано 31.07.2014, 02:14  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Подключение DS18b20 к STM32

Сообщение от STM32F0 Посмотреть сообщение
Уныло всё как-то, прямо сферический ногодрыг в феерическом вакууме. Один таймер с DMAR и два канала ДМА - всё аппаратно и не нужно ничего отключать и гасить.
Дык, на изиэлектрониксе как раз и "пробегал" код с DMA и UART. Им и пользуюсь. Отлично работает, никакого маразма вроде явных пауз или ручного ногодрыга. Только перенастроить скорость для сброса, а потом обратно вернуть. По прерыванию DMA заполняем очередной принятый бит / отправляем следующий бит.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 31.07.2014, 09:43  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: Подключение DS18b20 к STM32

Цитата:
Только перенастроить скорость для сброса, а потом обратно вернуть. По прерыванию DMA заполняем очередной принятый бит / отправляем следующий бит.
На таймере вообще ничего не нужно делать, оно само молотит, по окончанию трансфера просто вытащить данные.
STM32F0 вне форума  
Непрочитано 31.07.2014, 11:06  
eddy
Почётный гражданин KAZUS.RUN
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,684
Сказал спасибо: 116
Сказали Спасибо 823 раз(а) в 597 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Подключение DS18b20 к STM32

Сообщение от STM32F0 Посмотреть сообщение
На таймере вообще ничего не нужно делать, оно само молотит, по окончанию трансфера просто вытащить данные.
Кстати, да. Глянул свой код: нашел ошибку + идиотизм (я жду, пока придут данные вместо того, чтобы по прерыванию выставить флаг, а в основном цикле, когда этот флаг выставлен, вытащить данные).

Надо будет переделывать весь алгоритм, чтобы по-человечески было, а не через жопу.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
eddy вне форума  
Непрочитано 10.03.2015, 12:42  
YURALL72
Прописка
 
Регистрация: 29.06.2007
Сообщений: 217
Сказал спасибо: 143
Сказали Спасибо 13 раз(а) в 11 сообщении(ях)
YURALL72 на пути к лучшему
По умолчанию Re: Подключение DS18b20 к STM32

Сообщение от banzayy Посмотреть сообщение
error = DS1820_Search_Rom_One_Device (GPIOC, GPIO_Pin_15, &DS18B20_sn); возвращает ошибку 4
я больше грешу на настройку GPIO, хотя вроде как всё правильно
Всем привет.У меня массив серийника заполняется.А вот при чтении температуры выдаёт 4 (ошибка CRC).Пытаюсь переделать под stm32l152.Пока глухо(((.
YURALL72 вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
STM32-Comstick Flyguy06 Микроконтроллеры, АЦП, память и т.д 0 18.06.2011 08:49
Подключение кнопок к STM32 MasterSID Микроконтроллеры, АЦП, память и т.д 9 01.05.2011 12:42
Proteus - подключение DS18B20 через USB или Com-порт Leva007 Proteus 16 27.11.2010 22:25
Подключение DS18B20 r Attiny2313 vaal555 Микроконтроллеры, АЦП, память и т.д 1 27.09.2010 22:06
Подключение DS18B20 к ATMega8 rocky7 Микроконтроллеры, АЦП, память и т.д 1 28.06.2010 20:30


Часовой пояс GMT +4, время: 05:44.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.