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

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

Сообщение megasvintus »

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

Желательно до десятых, конечно. но это я и сам смогу прикрутить наверно. Вы лучше скажите в чем была причина!!!
Трудно быть деревянным, совсем трудно....
Аватара пользователя
sachok
Опытный кот
Сообщения: 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 КБ) 485 скачиваний
Я не Сашок!!!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

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

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

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

Так вот после таких экспериментов у меня сломалось три контроллера (они не хотят программироваться). Что случилось?

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

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

Сообщение BlackJack »

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

Сообщение ARV »

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

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

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

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

Сообщение BlackJack »

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

Сообщение ARV »

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

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

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

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

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

Сообщение BlackJack »

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

Сообщение BlackJack »

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

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

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

Сообщение ARV »

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

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

Сообщение BlackJack »

Нет! 8)


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

Сообщение sachok »

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

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

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

Сообщение sachok »

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

Сообщение ARV »

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

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

Сообщение sachok »

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

Сообщение Vertel »

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

Сообщение Baloo »

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

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

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