Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > [AVR] Нужна помощь по ds18b20 |
Автор: dendim 19.1.2012, 20:23 |
Всем доброго времени суток. Нужна помощь. Необходимо на ATMega16 измерить температуру датчиком DS18B20 и отправить на комп через COM-порт. У кого-нибудь есть примеры на ассемблере? очень надо. Как инициализировать датчик? |
Автор: Romikgy 22.1.2012, 14:27 |
а почему не си ? на си точно видел примеры в интернете и работы с 18б20 и с уартом... |
Автор: dendim 22.1.2012, 20:16 |
Благодарю за ответ, но уже не надо. Все нашел, все сделал что хотел))) |
Автор: Laplace 8.3.2012, 03:05 |
Уважаемые знатоки! Заранее прошу прощения, если вопрос глупый..я новичок. Помогите разобраться, как работает датчик? Не совсем понятно что делать с регистром PORTx в то время, когда ждем ответ от датчика (DDRx установлен в "0"). Держать лапку по умолчанию в "1", через внутренний подтягивающий резистор (если датчик заземляет шину в нужное время), или держать по умолчанию в "0", в состоянии Hi-Z (если датчик выдает на шину высокий уровень)? |
Автор: LeonidPr 8.3.2012, 20:49 |
С 1-Wire сам не работал, но http://www.masterkit.ru/zip/ds18b20-rus.pdf используют внешний подтягивающий рез-р. И, судя по временной диаграмме на стр. 10, при ожидании ответа от устройства вам нужно ножку переводить в 3-е состояние, считывая при этом через нее состояние шины. И еще, как я понял из описания временной диаграммы на той же 10 стр., перевод шины из нулевого уровня в единичный производится путем перевода пина в 3-е состояние, при этом резистор подтягивает шину к +5 В. Однажды, используя такой способ я столкнулся с проблемой сильного завала фронтов, видимо паразитные емкости цепей очень медленно заряжались через подтягивающий резистор. Решение простое. Прежде чем переводить пин в 3-е состояние, пока он активен, выдайте на него сигнал логической единицы, а потом уже следующей инструкцией переводите его в 3-е состояние. Мне этот прием сильно помог, фронты стали нормальными. |
Автор: Laplace 9.3.2012, 14:45 |
По новому взглянул на схему и, вроде бы, разобрался ![]() Упустил из виду важнейшую деталь - внешний подтягивающий резистор. LeonidPr, спасибо за помощь и за совет про фронты. |