Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

Не могу подключить ds18b20

Непрочитано 05.03.2014, 23:39  
Astendos
Частый гость
 
Регистрация: 05.03.2014
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
Astendos на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

Сообщение от Ara41 Посмотреть сообщение
тактовую частоту контроллера в протеусе установите правильную. или в проекте..
вот это я рак

Однако спасибо преогромнейшее!
Реклама:
Astendos вне форума  
Сказали "Спасибо" Astendos
MixPet (06.03.2014)
Непрочитано 06.03.2014, 08:24  
Catcatcat1
Прописка
 
Регистрация: 05.05.2007
Сообщений: 115
Сказал спасибо: 10
Сказали Спасибо 57 раз(а) в 33 сообщении(ях)
Catcatcat1 на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

Мое личное мнение, в протеусе надо учиться электроники, ну типа в первом классе. А работать надо в железе. Мне чаcто задают вопросы, ваша программа в Протеусе не работает, ну так я говорю это вопрос к протеусу, а не ко мне. Есть варианты, когда запускается программа в протеусе, а в железе работать не хочет. У меня есть наработки и библиотеки на Си под PIC контроллеры. Если интересно взять как за основу то можно посмотреть здесь http://catcatcat.d-lan.dp.ua/skachat...turyi-ds18b20/ Тут можно взять описание русское http://catcatcat.d-lan.dp.ua/zashhit...lektrichestva/ Есть несколько проектов с исходниками, но правда тоже для PIC.
Catcatcat1 вне форума  
Непрочитано 07.03.2014, 18:37  
Astendos
Частый гость
 
Регистрация: 05.03.2014
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
Astendos на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

Снова попрошу вашей помощи.

Вобщем собрал я эту схемку, и она не работает, так как нужно.
В протеусе работает: если поставить в прошивке 8.0MHz, если же поставить 1.0MHz и запустить то он тупит, то принимает сигнал то не принимает.

В реале же всё наоборот, если поставить 8.0MHz и прошить микроконтроллер то, индикатор показывает что тепература "-9999", а если поставить 1.MHz и прошить то индикатор где то раз в секунду мигает смотрите рис. Кадр.jpg
Короче я в замешатеильстве что происходит....

толи я кривой , толи я кривой))
вот видео как мигает индикатор на прошивке 1MHz

P.S материалов по ds18b20 куча, и у всех всё работает... а я рак

Материалы:
Миниатюры:
Нажмите на изображение для увеличения
Название: Вид_сверху.jpg
Просмотров: 78
Размер:	86.2 Кб
ID:	60215   Нажмите на изображение для увеличения
Название: схема.jpg
Просмотров: 56
Размер:	143.1 Кб
ID:	60216   Нажмите на изображение для увеличения
Название: Датчик тепературы.jpg
Просмотров: 47
Размер:	45.1 Кб
ID:	60217  

Нажмите на изображение для увеличения
Название: Кадр.jpg
Просмотров: 111
Размер:	73.1 Кб
ID:	60218   Нажмите на изображение для увеличения
Название: Proteus.jpg
Просмотров: 69
Размер:	179.2 Кб
ID:	60220   Нажмите на изображение для увеличения
Название: AVRLib.jpg
Просмотров: 47
Размер:	52.0 Кб
ID:	60221  

Нажмите на изображение для увеличения
Название: AVRProperties.jpg
Просмотров: 60
Размер:	371.5 Кб
ID:	60222  
Вложения:
Тип файла: rar Исходник+Протеус.rar (29.1 Кб, 32 просмотров)

Последний раз редактировалось Astendos; 07.03.2014 в 18:44. Причина: Лишняя ссылка, Добавил видео.
Astendos вне форума  
Непрочитано 07.03.2014, 18:55  
Ara41
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.09.2006
Сообщений: 1,557
Сказал спасибо: 157
Сказали Спасибо 660 раз(а) в 430 сообщении(ях)
Ara41 на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

У Вас в исходнике какая-то каша, связанная с индикацией. Порты А и С перепутаны местами (или вообще везде)
Ara41 вне форума  
Непрочитано 07.03.2014, 19:25  
Astendos
Частый гость
 
Регистрация: 05.03.2014
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
Astendos на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

Сообщение от Ara41 Посмотреть сообщение
У Вас в исходнике какая-то каша, связанная с индикацией. Порты А и С перепутаны местами (или вообще везде)
Простите забыл дописать.

Там не напутано, просто у меня схема в протеусе и в реале отличается (Разные индикаторы)...

заметка: в протеусе если показывает 7 значит работает, а если полоски сверху то нет...

Последний раз редактировалось Astendos; 07.03.2014 в 19:29. Причина: забыл дописать
Astendos вне форума  
Непрочитано 07.03.2014, 19:43  
Ara41
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.09.2006
Сообщений: 1,557
Сказал спасибо: 157
Сказали Спасибо 660 раз(а) в 430 сообщении(ях)
Ara41 на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

Сообщение от Astendos Посмотреть сообщение
Простите забыл дописать.

Там не напутано, просто у меня схема в протеусе и в реале отличается (Разные индикаторы)...

заметка: в протеусе если показывает 7 значит работает, а если полоски сверху то нет...
Сделайте что-ли нормальную схему в протеусе =) У Вас эта 7 показывается всегда, даже если вообще убрать датчик.
Ara41 вне форума  
Непрочитано 07.03.2014, 20:49  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

чтоб не мигал индикатор придётся отказаться от использования стандартной библиотеки для работы с датчиком и написать свою или использовать чужую -
функция ds18b20_temperature непосредственно возвращает температуру. У нее есть один недостаток. Между вызовом процедуры и моментом когда она возвращает результат проходит примерно секунда. Динамическая индикация остановится (прерывания запрещаются) пока функция не отработает. Такая большая задержка связана с тем что датчик не может быстро оцифровать температуру. (с)
Код:
float ds18b20_temperature(unsigned char *addr)
{
unsigned char resolution;
if (ds18b20_read_spd(addr)==0) return -9999;
resolution=(__ds18b20_scratch_pad.conf_register››5) & 3;
if (ds18b20_select(addr)==0) return -9999;
w1_write(0x44);
delay_ms(conv_delay[resolution]);
if (ds18b20_read_spd(addr)==0) return -9999;
w1_init();
return (*((int *) &__ds18b20_scratch_pad.temp_lsb) & ((int) bit_mask[resolution]))*0.0625;
}
oleg110592 вне форума  
Непрочитано 10.03.2014, 02:41  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Не могу подключить ds18b20

Сообщение от oleg110592 Посмотреть сообщение
Между вызовом процедуры и моментом когда она возвращает результат проходит примерно секунда. Динамическая индикация остановится (прерывания запрещаются) пока функция не отработает.
В функции ds18b20_temperature()
нет запрета прерываний. Можете посмотреть ассемблерный код.

Но тут проблема: чтение и запись 1wire чувствительны к таймингам. И если в неподходящий момент чтения/записи возникнет прерывание на индикацию, которое будет выполняться хотя бы 10 мкс, то чтение/запись может выполниться некорректно.

Фактически, всё сводится к нескольким десяткам вызовов w1_write() / w1_read().
И чтобы всё работало корректно, достаточно запретить прерывания именно на момент вызова этих функций (~ 500 мкс).

Ни к чему запрещать прерывания на весь период преобразования (~750 мс на лучшей точности измерения).

Для этого, правда, потребуется написать свои функции работы с 1wire (или изменить имеющиеся).

Прерывания даже на 1 мс существенно не нарушат динамической индикации (если только не используется регулировка яркости ШИМ-ом).

P.S. 10 мкс - это всего лишь вход и выход в обработчик прерывания на частоте 1 МГц. Работа с float - это миллисекунды.
Godzilla82 вне форума  
Непрочитано 10.03.2014, 10:23  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

Сообщение от Godzilla82 Посмотреть сообщение
В функции ds18b20_temperature()
нет запрета прерываний.
имелось ввиду, если не запретить прерывания перед вызовом этой функции, то вообще работать не будет - например http://radiokot.ru/lab/controller/18/
Цитата:
потребуется написать свои функции работы с 1wire (или изменить имеющиеся).
это, собственно, и написал выше
oleg110592 вне форума  
Непрочитано 11.03.2014, 11:50  
Astendos
Частый гость
 
Регистрация: 05.03.2014
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
Astendos на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

Проблема сейчас в том что в протеусе работает отлично, а в реале показывает 999 (Я точно вычислил, датчик присылает 85 градусов ).

CVAVR настроен на 1,000000Mhz
Библиотека включена:
Enable 1 Wire Bus Interface Suport
I/O Port: PORTD Bit: 3

Кусок из кода:
Код:
        if(tmp==-9999)
            DDRC=0b1001001;
        else if(tmp‹10)
            setNum(0);
        else if(tmp‹20)
            setNum(1); 
        else if(tmp‹30)
            setNum(2);
        else if(tmp‹40)
            setNum(3);
        else if(tmp‹50)
            setNum(4);
        else if(tmp‹60)
            setNum(5);
        else if(tmp‹70)
            setNum(6);
        else if(tmp‹80)
            setNum(8); 
        else if(tmp‹90)
            setNum(9);
        else if(tmp‹100)
            DDRC=0b00001000;
        else if(tmp‹110)
            DDRC=0b10000000;
Обновил код и протеус:
Миниатюры:
Нажмите на изображение для увеличения
Название: lal.jpg
Просмотров: 55
Размер:	210.0 Кб
ID:	60434  
Вложения:
Тип файла: rar Source.rar (29.3 Кб, 29 просмотров)

Последний раз редактировалось Astendos; 11.03.2014 в 11:55.
Astendos вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Решено] Как подключить веб-камеру от ноутбука iturup Видеотехника 5 01.07.2010 22:51
Как подключить двигатель сварочного полуавтомата Д-90С Levap Поиск схем. Делимся схемами 2 02.06.2010 10:23
[Решено] Как подключить мотор EINSHTEYNN Производственное оборудование 11 24.05.2010 22:18
Как подключить лампу дневного света через датчик движения? fipe Автоматика и аппаратура связи 7 03.08.2008 12:40
Матричный принтер СМ6337 как подключить? Ren Ремонт оргтехники 14 10.09.2005 00:50


Часовой пояс GMT +4, время: 16:38.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.