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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 22.02.2010, 06:02  
svv11
Временная регистрация
 
Регистрация: 20.11.2005
Сообщений: 52
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
svv11 на пути к лучшему
По умолчанию Что делаю не так с DS12B20 ?

Датчик температуры после сброса выставляет импульс присутствия, и больше ничего не хочет делать. Вот кусок кода:
Код:
#define TD_0 output_low(PIN_B4)     //
#define TD_1 output_high(PIN_B4)    //
#define TD_IN output_float(pin_B4)	// сделать пин входом

void DS(char word)
 {   
   char i;
   for(i=0; i ‹ 8; i++)
   {
    TD_0;  // установить шину в ноль
    delay_us( 15 );
    if (word & 1) TD_IN; // если младший бит 1 то сделать входом
    delay_us( 55 );
    TD_IN; // сделать входом
    delay_us( 15 );
    word = word ›› 1;
   }
 }

void main(void)
 { 
   InitReg(); // инициализация регистров

    // Обмен с термодатчиком
    TD_0;     
    delay_us( 490 ); //импульс RESET
    TD_IN;
    delay_us( 490 ); //для импульса PRESENCE
    DS(0xCC); //Команда Пропуск ROM
  //delay_us( 200 );
    DS(0xBE); //Команда Чтение памяти 
    TD_IN;
    delay_ms( 900 );
  }
Подскажите что делаю не так? На осциллографе смотрел: команды CC и BE формируется вроде как надо. Питание однопроводное, ноги GND и Vdd соединены.
Реклама:

Последний раз редактировалось svv11; 22.02.2010 в 06:25.
svv11 вне форума  
Непрочитано 22.02.2010, 07:23  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Что делаю не так с DS12B20 ?

Сообщение от svv11 Посмотреть сообщение
и больше ничего не хочет делать.
С чего Вы это решили? В Вашем исходнике датчику передается всего две команды, причем после второй - Чтение памяти - никакого чтения не производится. Т.е. связь односторонняя. Команды на преобразование температуры тоже нет. Но и без нее с датчика должно считаться +85С. Но Вы же не читаете!
И еще совет - переходите на паразитное питание только после того, как все будет работать как часы с обычным включением.
Также неплохо исключить выход из main - в микроконтроллерах выходить как бы некуда.
kison вне форума  
Сказали "Спасибо" kison
svv11 (05.03.2010)
Непрочитано 22.02.2010, 09:50  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,531
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию Re: Что делаю не так с DS12B20 ?

Цитата:
TD_0;
delay_us( 490 ); //импульс RESET
TD_IN;
delay_us( 490 ); //для импульса PRESENCE
DS(0xCC); //Команда Пропуск ROM
DS(0xBE); //Команда Чтение памяти
TD_IN;
TD_0;
delay_us( 490 ); //импульс RESET
TD_IN;
delay_us( 490 ); //для импульса PRESENCE
DS(0xCC); //Команда Пропуск ROM
DS(0x44); //Команда запуск преобразования

delay_ms( 900 );
ну вот как-то так. Будет выдавать температуру со второго цикла.
Я как-то раз багу у себя словил - в какойто момент МК успевал уйти в прерывание в момент записи или чтения. А в результате - бред. Так что тоже не мешает проверить.

Есть дока на русском на этот термометр.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.

Последний раз редактировалось DK; 22.02.2010 в 09:54.
DK вне форума  
Сказали "Спасибо" DK
svv11 (05.03.2010)
Непрочитано 05.03.2010, 06:20  
svv11
Временная регистрация
 
Регистрация: 20.11.2005
Сообщений: 52
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
svv11 на пути к лучшему
По умолчанию Re: Что делаю не так с DS12B20 ?

Спасибо, всё пошло, просто по ночам надо спать, тогда и голова будет работать.
svv11 вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что делаю не так с DS12B20 svv11 Микроконтроллеры, АЦП, память и т.д 4 25.02.2010 13:42
усовершенствование усилителя ВЭФ-101-стерео phil31 Аудиотехника 38 12.01.2010 04:28
[Решено] Третье Послание Человечеству lelkanet Отвлекитесь, эмбеддеры! 201 06.01.2010 00:33
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot