Вопросы по работе с термометрами DS18B20

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Вымогатель припоя
Аватара пользователя
Сообщения: 568
Зарегистрирован: Вт мар 04, 2008 20:03:03
Откуда: Нижний Новгород

Сообщение megasvintus »

Спасибо большое!

Желательно до десятых, конечно. но это я и сам смогу прикрутить наверно. Вы лучше скажите в чем была причина!!!
Трудно быть деревянным, совсем трудно....
Реклама
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Я сам только месяц учу программирования поэтому точный диагноз я сказать не могу, но я исправил вывод информации. потом вот этот участок что даёт я так и не понял что с ним что без него

Код: Выделить всё

for (i=0;i<devices;)
    if (!ds18b20_init(&rom_code[i++][0],20,30,DS18B20_9BIT_RES))
       {
       sprintf(lcd_buffer,"Init error for\ndevice #%u",i);
       lcd_clear();
       lcd_puts(lcd_buffer);
       while (1); /* stop here if init error */    
       };
вот что у меня получильсь.
Вложения
termo.txt
(1.1 КБ) 488 скачиваний
Я не Сашок!!!
Контактная информация:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18682
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

BlackJack писал(а):Доброго времени суток. Пытаюсь поднять DS18B20 на асме.
Припаял подтяжки как в мануале на датчик. Порт на контроллере
приводится мною то в состояние

HI-Z: cbi DDRA, DDR3
cbi PortA, PA3

или в сотояние вывода нуля
sbi DDRA, DDR3
cbi PortA, PA3

Так вот после таких экспериментов у меня сломалось три контроллера (они не хотят программироваться). Что случилось?
напишите в Atmel-техподдержку, пусть проверят - вдруг и правда cbi что-то портит в ядре контроллера...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 40
Зарегистрирован: Пт ноя 10, 2006 11:22:08
Откуда: Россия, Новосибирск

Сообщение BlackJack »

Не смешно :evil: .
Какой максимальный ток могут потреблять порты входа?
Опыт - сын ошибок трудных.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18682
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

90% причин "непрограммируемости" микроконтроллеров Atmel кроется в неверной прошивке фьюзов и кривых программаторах. тип МК вы не указали, но теоретически может быть случай, когда внешней схемой вы выжжете порт, занятый под сигналы программирования - тогда конечно, дело плохо. из моего небольшого опыта скажу, что КЗ на землю любого порта МК выдерживает вполне нормально, даже греется не всегда, и после восстановления нормальной схемы работает, как ни в чем не бывало. но повторяю - опыт закорачивания у меня небольшой, все-таки стараюсь этого не делать :)

кстати, здесь на сайте есть моя статья с исходниками на асме - там готовый рабочий модуль работы с датчиками 1-Wire - ничего не палится :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 40
Зарегистрирован: Пт ноя 10, 2006 11:22:08
Откуда: Россия, Новосибирск

Сообщение BlackJack »

Хорошая статья. Видно долго и с удовольствием читали мануал :))
Вопрос таков: как вы ставили в 0 и ОТПУСКАЛИ шину контроллером
(можно кодом плиз)
Опыт - сын ошибок трудных.
Контактная информация:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18682
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

видимо, не ту статью вы читали :) статья, которую я имел ввиду, вот эта, она сопровождается подробно разжеванным исходником модуля для работы с 1-wire - там все написано, как управлял...

по-моему, именно через CBI DDRx, n и управлял :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Открыл глаза
Сообщения: 72
Зарегистрирован: Вс сен 07, 2008 13:17:31
Откуда: Город Невест

Сообщение Lepehin Evgeniy »

http://kazus.ru/forum/topic_10496-0-asc-10.html
Это для 51х, там же есть для AVR на си. Никогда не испытывал таких проблем, но все возможно. Так случилось, что больше пишу для 51х. Но эту проблему вижу для AVR впервые. Надо внимательно "посмотреть" все этапы проэкта.
Открыл глаза
Аватара пользователя
Сообщения: 40
Зарегистрирован: Пт ноя 10, 2006 11:22:08
Откуда: Россия, Новосибирск

Сообщение BlackJack »

Посмотрел я статьи. Отпускаю и ставлю шину в ноль, так же как у вас.
Проблема на лицо: как только подпаиваем ножку DQ к PA3 / СРАЗУ ЖЕ отрубается SPI программирование такое было и с моей Mega16, и c Attiny2313/ Контроллер находится в коме все порты в Z состоянии. Как будто он на ресете стоит. Хотя ножка ресет 4.8 вольт...
__________???___________
Опыт - сын ошибок трудных.
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 40
Зарегистрирован: Пт ноя 10, 2006 11:22:08
Откуда: Россия, Новосибирск

Сообщение BlackJack »

УРРРРРРРРРРРРРРРРРРРРРРРРРРРРРААААААААА!!!!!!!!!!!!!!!!!!!!!!!!
Ответ найден!
Контроллер не программируется - потому что на ножке порта и DQ
держится 5 вольт. А оказывается SPI ПРОСТО ненавидит когда вовремя программирования что-то держится на любом выходе, контроллера.

Решение проблемы:
1) Оживление контроллера просто кодом прописать в рег DDRA, 0b11111111 и прошить.
2)(Обязательно) Питать PULL-up от контроллера,(так как при программировании все порты входят в высокоимпедансное состояние, и на ножке контроллера для питания DSa ничего кроме эфирных помех не будет -> ничего не будет на DQ линии.) Правда существует опасность возбуждения DS датчика, что приведет к появлению напряжения на DQ шине, и контроллер опять войдёт в состояние комы. ПОЭТОМУ Полностью питаем и датчик с ножки контроллера, и Pull-up. Тогда всё будет работать :)

Вот такая петрушка. Целый месяц съела. :lol:
Опыт - сын ошибок трудных.
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18682
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

вообще-то, если бы вы сразу сказали, что повесили датчик на один из портов SPI - проблема решилась бы быстрее (правильно заданный вопрос содержит половину ответа).
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 40
Зарегистрирован: Пт ноя 10, 2006 11:22:08
Откуда: Россия, Новосибирск

Сообщение BlackJack »

Нет! 8)


Датчик я повесил на PortA3. А ПОДТЯГИВАщИЙ резистор питал от питания +5в с источника. поэтому у меня всё время при программированиии на DQ держалось 5 вольт - что не терпит SPI
Опыт - сын ошибок трудных.
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

У меня тоже есть маленький вопрос по работе с єтими датчиками. Как настроить программу что бы она читала только 9 бит с датчика так как точность -+1 градус достаточна мне, а время преобразование должно бить во много раз меньше, где то видел что 9 бит время 94мс, а 12 - 750мс. считывание температуры провожу следующим образом:

Код: Выделить всё

temp2=ds18b20_temperature(&rom_code[0][0]); 
Я не Сашок!!!
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Помогите кто может. В библиотеке DS18b20 нашол функцию 9 битного чтение результата, а как использовать не знаю. Инициализация датчиков:

Код: Выделить всё

devices=w1_search(0xf0,rom_code);
У меню 3 датчика работают одновременно и по стандарту настроены на 12 бит результат Вы даже не представляете как тормозит программа...Помогите :)
Я не Сашок!!!
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки

Сообщение Секретный кот »

sachok писал(а):

Код: Выделить всё

devices=w1_search(0xf0,rom_code);
Вы даже не представляете как тормозит программа...Помогите :)
Почему, охотно представляю :))) Постарайтесь поменьше использовать указанную функцию :wink:
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Иначе я не знаю как сделать что бы все 3 датчика работали. Просто нужно чтение 9 бит результата и думаю всё станет гораздо лучше.
Я не Сашок!!!
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18682
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Изучить досконально я ещё не успел так как пользуюсь им менее 6 месяцев. С настройкой датчиков разобрался сам. Теперь программка летает:)
Я не Сашок!!!
Контактная информация:
Родился
Сообщения: 18
Зарегистрирован: Чт фев 15, 2007 18:13:29

Сообщение Vertel »

Здрасте, а можно с этого места поподробне? Как датчики настроить? У меня по умолчанию 12 bit, а выводится только целые градусы, CVA demo может из-за этого. Может кто подскажет или прокоментирует команды из библиотеки для работы с этим датчиком.
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 35
Зарегистрирован: Пн мар 20, 2006 17:36:38
Откуда: Украина, Луганская обл.

Сообщение Baloo »

Собрал термометр по рекомендациям: http://avru.cwx.ru/category/uchebnik подключил датчик DS18B20, но на индикаторе вместо нормальных показаний - "127" на нагрев не реагирует!

Где косяк, не соображу! :o
Как отличить перереременное напряжение от постояяяяяянного???
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»