Вопросы по работе с термометрами DS18B20
- megasvintus
- Вымогатель припоя
- Сообщения: 568
- Зарегистрирован: Вт мар 04, 2008 20:03:03
- Откуда: Нижний Новгород
- sachok
- Опытный кот
- Сообщения: 849
- Зарегистрирован: Сб янв 05, 2008 11:05:15
- Откуда: Україна м.Луцьк
- Контактная информация:
Я сам только месяц учу программирования поэтому точный диагноз я сказать не могу, но я исправил вывод информации. потом вот этот участок что даёт я так и не понял что с ним что без него
вот что у меня получильсь.
Код: Выделить всё
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
- Откуда: Новочеркасск
- Контактная информация:
BlackJack писал(а):Доброго времени суток. Пытаюсь поднять DS18B20 на асме.
Припаял подтяжки как в мануале на датчик. Порт на контроллере
приводится мною то в состояние
HI-Z: cbi DDRA, DDR3
cbi PortA, PA3
или в сотояние вывода нуля
sbi DDRA, DDR3
cbi PortA, PA3
Так вот после таких экспериментов у меня сломалось три контроллера (они не хотят программироваться). Что случилось?
напишите в Atmel-техподдержку, пусть проверят - вдруг и правда cbi что-то портит в ядре контроллера...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
а я и не смеюсь. вдруг вы открыли нечно новое, непознанное?
90% причин "непрограммируемости" микроконтроллеров Atmel кроется в неверной прошивке фьюзов и кривых программаторах. тип МК вы не указали, но теоретически может быть случай, когда внешней схемой вы выжжете порт, занятый под сигналы программирования - тогда конечно, дело плохо. из моего небольшого опыта скажу, что КЗ на землю любого порта МК выдерживает вполне нормально, даже греется не всегда, и после восстановления нормальной схемы работает, как ни в чем не бывало. но повторяю - опыт закорачивания у меня небольшой, все-таки стараюсь этого не делать
кстати, здесь на сайте есть моя статья с исходниками на асме - там готовый рабочий модуль работы с датчиками 1-Wire - ничего не палится
90% причин "непрограммируемости" микроконтроллеров Atmel кроется в неверной прошивке фьюзов и кривых программаторах. тип МК вы не указали, но теоретически может быть случай, когда внешней схемой вы выжжете порт, занятый под сигналы программирования - тогда конечно, дело плохо. из моего небольшого опыта скажу, что КЗ на землю любого порта МК выдерживает вполне нормально, даже греется не всегда, и после восстановления нормальной схемы работает, как ни в чем не бывало. но повторяю - опыт закорачивания у меня небольшой, все-таки стараюсь этого не делать
кстати, здесь на сайте есть моя статья с исходниками на асме - там готовый рабочий модуль работы с датчиками 1-Wire - ничего не палится
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
видимо, не ту статью вы читали
статья, которую я имел ввиду, вот эта, она сопровождается подробно разжеванным исходником модуля для работы с 1-wire - там все написано, как управлял...
по-моему, именно через CBI DDRx, n и управлял
по-моему, именно через CBI DDRx, n и управлял
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
-
Lepehin Evgeniy
- Открыл глаза
- Сообщения: 72
- Зарегистрирован: Вс сен 07, 2008 13:17:31
- Откуда: Город Невест
http://kazus.ru/forum/topic_10496-0-asc-10.html
Это для 51х, там же есть для AVR на си. Никогда не испытывал таких проблем, но все возможно. Так случилось, что больше пишу для 51х. Но эту проблему вижу для AVR впервые. Надо внимательно "посмотреть" все этапы проэкта.
Это для 51х, там же есть для AVR на си. Никогда не испытывал таких проблем, но все возможно. Так случилось, что больше пишу для 51х. Но эту проблему вижу для AVR впервые. Надо внимательно "посмотреть" все этапы проэкта.
- BlackJack
- Открыл глаза
- Сообщения: 40
- Зарегистрирован: Пт ноя 10, 2006 11:22:08
- Откуда: Россия, Новосибирск
- Контактная информация:
Посмотрел я статьи. Отпускаю и ставлю шину в ноль, так же как у вас.
Проблема на лицо: как только подпаиваем ножку DQ к PA3 / СРАЗУ ЖЕ отрубается SPI программирование такое было и с моей Mega16, и c Attiny2313/ Контроллер находится в коме все порты в Z состоянии. Как будто он на ресете стоит. Хотя ножка ресет 4.8 вольт...
_____???_____
Проблема на лицо: как только подпаиваем ножку DQ к PA3 / СРАЗУ ЖЕ отрубается SPI программирование такое было и с моей Mega16, и c Attiny2313/ Контроллер находится в коме все порты в Z состоянии. Как будто он на ресете стоит. Хотя ножка ресет 4.8 вольт...
_____???_____
Опыт - сын ошибок трудных.
- BlackJack
- Открыл глаза
- Сообщения: 40
- Зарегистрирован: Пт ноя 10, 2006 11:22:08
- Откуда: Россия, Новосибирск
- Контактная информация:
УРРРРРРРРРРРРРРРРРРРРРРРРРРРРРААААААААА!!!!!!!!!!!!!!!!!!!!!!!!
Ответ найден!
Контроллер не программируется - потому что на ножке порта и DQ
держится 5 вольт. А оказывается SPI ПРОСТО ненавидит когда вовремя программирования что-то держится на любом выходе, контроллера.
Решение проблемы:
1) Оживление контроллера просто кодом прописать в рег DDRA, 0b11111111 и прошить.
2)(Обязательно) Питать PULL-up от контроллера,(так как при программировании все порты входят в высокоимпедансное состояние, и на ножке контроллера для питания DSa ничего кроме эфирных помех не будет -> ничего не будет на DQ линии.) Правда существует опасность возбуждения DS датчика, что приведет к появлению напряжения на DQ шине, и контроллер опять войдёт в состояние комы. ПОЭТОМУ Полностью питаем и датчик с ножки контроллера, и Pull-up. Тогда всё будет работать
Вот такая петрушка. Целый месяц съела.
Ответ найден!
Контроллер не программируется - потому что на ножке порта и DQ
держится 5 вольт. А оказывается SPI ПРОСТО ненавидит когда вовремя программирования что-то держится на любом выходе, контроллера.
Решение проблемы:
1) Оживление контроллера просто кодом прописать в рег DDRA, 0b11111111 и прошить.
2)(Обязательно) Питать PULL-up от контроллера,(так как при программировании все порты входят в высокоимпедансное состояние, и на ножке контроллера для питания DSa ничего кроме эфирных помех не будет -> ничего не будет на DQ линии.) Правда существует опасность возбуждения DS датчика, что приведет к появлению напряжения на DQ шине, и контроллер опять войдёт в состояние комы. ПОЭТОМУ Полностью питаем и датчик с ножки контроллера, и Pull-up. Тогда всё будет работать
Вот такая петрушка. Целый месяц съела.
Опыт - сын ошибок трудных.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
вообще-то, если бы вы сразу сказали, что повесили датчик на один из портов SPI - проблема решилась бы быстрее (правильно заданный вопрос содержит половину ответа).
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- sachok
- Опытный кот
- Сообщения: 849
- Зарегистрирован: Сб янв 05, 2008 11:05:15
- Откуда: Україна м.Луцьк
- Контактная информация:
У меня тоже есть маленький вопрос по работе с єтими датчиками. Как настроить программу что бы она читала только 9 бит с датчика так как точность -+1 градус достаточна мне, а время преобразование должно бить во много раз меньше, где то видел что 9 бит время 94мс, а 12 - 750мс. считывание температуры провожу следующим образом:
Код: Выделить всё
temp2=ds18b20_temperature(&rom_code[0][0]); Я не Сашок!!!
- sachok
- Опытный кот
- Сообщения: 849
- Зарегистрирован: Сб янв 05, 2008 11:05:15
- Откуда: Україна м.Луцьк
- Контактная информация:
Помогите кто может. В библиотеке DS18b20 нашол функцию 9 битного чтение результата, а как использовать не знаю. Инициализация датчиков:
У меню 3 датчика работают одновременно и по стандарту настроены на 12 бит результат Вы даже не представляете как тормозит программа...Помогите
Код: Выделить всё
devices=w1_search(0xf0,rom_code);У меню 3 датчика работают одновременно и по стандарту настроены на 12 бит результат Вы даже не представляете как тормозит программа...Помогите
Я не Сашок!!!
- Секретный кот
- Поставщик валерьянки для Кота
- Сообщения: 2106
- Зарегистрирован: Ср сен 17, 2008 14:32:15
- Откуда: Старые Васюки
- Контактная информация:
sachok писал(а):Код: Выделить всё
devices=w1_search(0xf0,rom_code);
Вы даже не представляете как тормозит программа...Помогите
Почему, охотно представляю
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
если вы так любите свой КодВижн, то почему бы вам не изучить хотя бы досконально его возможности? там ведь предусмотрена возможность настроить каждый датчик на свое разрешение! и, как я понимаю, в зависимости от заданного разрешения будет и задержка преобразования меняться.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Baloo
- Первый раз сказал Мяу!
- Сообщения: 35
- Зарегистрирован: Пн мар 20, 2006 17:36:38
- Откуда: Украина, Луганская обл.
Собрал термометр по рекомендациям: http://avru.cwx.ru/category/uchebnik подключил датчик DS18B20, но на индикаторе вместо нормальных показаний - "127" на нагрев не реагирует!
Где косяк, не соображу!
Где косяк, не соображу!
Как отличить перереременное напряжение от постояяяяяянного???