Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
27.01.2015, 21:47
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Atmega32 и DS18B20
У меня так сделано. Применен какой-то дешевый сигнальный мосфет в SOT-23.
Питание на B0505S.
Последний раз редактировалось Easyrider83; 27.01.2015 в 21:49.
|
|
|
|
27.01.2015, 22:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Atmega32 и DS18B20
Схема одна из тех, что предлагаются в хелпах к указанным программам.
Но есть нюансы. Питание - DC/DC 0505, развязка - ADUM1201.
Идеально подходит если использовать UART.
Как работать через UART в PDF.
|
|
|
|
28.01.2015, 09:08
|
|
Вид на жительство
Регистрация: 03.10.2011
Сообщений: 485
Сказал спасибо: 35
Сказали Спасибо 234 раз(а) в 138 сообщении(ях)
|
Re: Atmega32 и DS18B20
Есть ещё вот такие адаптеры http://www.ibuttonlink.com/products/link45
там стоит stm8, который мониторит сигнал в линии и активно его "исправляет".
Работает вполне надёжно на линии, длиной порядка 100 метров с несколькими десятками датчиков, сама линия выглядит как куски плоского телефонного кабеля длиной по полметра с RJ12 на концах, датчики собраны в телефонных коробках с двумя RJ12 гнёздами - т.е. линия не просто длинная, а ещё и скучей проходных контактов.
Вот так это работает:
Код:
|
$ owget
/28.806C93010000
/28.408BB9000000
/28.402FBA010000
/28.6031BA010000
/28.4CFE39020000
...
$ owget | grep 28. | wc -l
141 |
А вот статистика работы примерно за 2 месяца:
Код:
|
$ for f in `owget /statistics/errors` ; do val=`owget $f`; echo "$f: $val"; done
/statistics/errors/BUS_bit_errors: 0
/statistics/errors/BUS_byte_errors: 0
/statistics/errors/BUS_detect_errors: 0
/statistics/errors/BUS_echo_errors: 0
/statistics/errors/BUS_level_errors: 0
/statistics/errors/BUS_next_alarm_errors: 0
/statistics/errors/BUS_next_errors: 0
/statistics/errors/BUS_readin_data_errors: 0
/statistics/errors/BUS_status_errors: 0
/statistics/errors/BUS_tcsetattr_errors: 0
/statistics/errors/CRC16_errors: 0
/statistics/errors/CRC16_tries: 0
/statistics/errors/CRC8_errors: 0
/statistics/errors/CRC8_tries: 782
/statistics/errors/DS2480_level_docheck_errors: 0
/statistics/errors/DS2480_read_fd_isset: 0
/statistics/errors/DS2480_read_null: 0
/statistics/errors/DS2480_read_read: 0
/statistics/errors/NET_accept_errors: 0
/statistics/errors/NET_connection_errors: 0
/statistics/errors/NET_read_errors: 0
/statistics/errors/max_delay: 0 |
|
|
|
|
28.01.2015, 17:57
|
|
Частый гость
Регистрация: 31.01.2008
Сообщений: 18
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Re: Atmega32 и DS18B20
Имел проблемы на длинных проводах и в "шумных" местах с аналогичными датчиками DS1821 (1-Wire, только без адресации и CRC) до использования так называемых микросхем - мастеров интерфейса 1-Wire. Дело всё в том, что в даташитах этих датчиков явно указана максимальная ёмкость линии данных - вроде всего 400 пФ (точно не помню, может максимум 800 пФ) и это при том, что у вывода микроконтроллера ёмкость уже 7 пФ! У проводов и контактов также есть погонная и контактная ёмкость. При таких длинах(100-300 м) и/или помехах фронты размываются, возможен приём ложных сигналов. Общее название мастеров интерфейса DS2482. Я конкретно использовал DS2482-800. Это восьмиканальный мастер интерфейса 1-Wire, с микроконтроллером общается по шине I2C 100 или 400 кГц. Чем эта микросхема интересна в данной теме? Первое. Есть возможность подключения/отключения подтягивающего резистора к линии 1-Wire. Второе. Обеспечивает формирование 1-Wire последовательностей сброса/присутствия, из 8 бит, из одного бита и из трех бит. Третье. Контроль скорости фронтов 1-Wire.Четвёртое. Выбираемое маскирование заднего фронта 1-Wire импульса для контроля импульсов с короткими фронтами на линии 1-Wire. Пятое. Имеет низкоимпедансные мощные подтягивающие резисторы 1-Wire для работы с EEPROM, температурными датчиками и другими приборами 1-Wire, которые обеспечивают большое мгновенное значение тока потребления. Лично для меня также существенную роль играет то, что микросхема самостоятельно выдерживает все временные интервалы шины 1-Wire. То есть практически микросхема обеспечивает переход с непрерываемого протокола 1-Wire на протокол I2C, нечувствительный к прерываниям.
Для проверки работоспособности использовал трёхпроводную схему (без паразитного питания) и бухту с проводом 250 метров. Подтягивающий резистор на конце стандартный 4,7 кОм. Полёт нормальный.
|
|
|
|
30.01.2015, 13:59
|
|
Частый гость
Регистрация: 12.01.2008
Сообщений: 49
Сказал спасибо: 0
Сказали Спасибо 8 раз(а) в 5 сообщении(ях)
|
Re: Atmega32 и DS18B20
Спасибо большое всем, кто отозвался на мой вопрос. Сейчас изучаю все Ваши предложения, потом буду пробовать живьем.
Сейчас начал тренироваться программировать работу датчиков и контроллера и возникли вопросы.
Сваял программку в CodeVisionAVR 3.10 и модель в Proteuse (8.1).
Программка тупо слямзена из примеров самого CodeVisionAVR.
Так вот, при моделировании периодически происходят сбои (именно периодически) - то не видит датчиков, то видит но не все.
Затем когда все видит то по циклу опрашивает температуру - и периодически показания полный бред.
Посмотрите пожалуйста, в чем залет? Это глюк самого Proteus, или ошибки в программе (или модели)?
__________________
Нет слов "не могу" - есть "не хочу"
|
|
|
|
30.01.2015, 14:08
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Atmega32 и DS18B20
vikpol, если параллельно выполняются прерывания, жесткие тайминги 1-wire могут быть нарушены.
|
|
|
|
30.01.2015, 14:38
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,049
Сказал спасибо: 592
Сказали Спасибо 3,968 раз(а) в 1,826 сообщении(ях)
|
Re: Atmega32 и DS18B20
Жестким таймингам 1- wire не страшны прерывания при реализации через UART.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:56.
|
|