реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> не получается получить данные с DS1820 через DS2482-100, может кто-то уже делал подобное?
DAndy_boy
сообщение Oct 28 2010, 13:07
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 25-09-05
Из: Москва
Пользователь №: 8 922



всем здравствуйте. Други подскажите, а то уже три дня сижу.... пытаюсь подключить термодатчик DS1820 к DS2482-100.
Нашел в интернете код. Сравнил его с описанием апликейшенноут - вроде похоже. при запросе к DS2482-100 ответ что якобы устройство на шине 1wire присутствует, но при попытке считать показания с термодатчика приходит полная ерунда.
Вот код:

Код
    
DS2482_reset();
//пауза    
wait(100);

//записываем конфигурацию 0A5h
    DS2482_write_config(0x05);

//перезагружаем устройства на линии
    OWReset();
//пауза
    wait(100);
//записываем байт адреса 0CCh
    OWWriteByte(0xCC);
//пауза
    wait(100);
//запуск преобразования 44h
    OWWriteByte(0x44);
//пауза
    wait(100);

//перезагрузка устройств на шине
    OWReset();
//пауза
    wait(100);
//адрес 0CCh
    OWWriteByte(0xCC);
//пауза
    wait(100);
//посылка команды на чтение результата 0BEh
    OWWriteByte(0xBE);
// пауза    
     wait(100);

//320 чтение результата

    t1 = OWReadByte();
// пауза    
     wait(100);
    t2 = OWReadByte();

    temp=(t2*256+t1)/16;

В чем ошибка? Заранее спасибо.

Сообщение отредактировал DAndy_boy - Oct 28 2010, 13:09
Go to the top of the page
 
+Quote Post
zits
сообщение Nov 2 2010, 14:02
Сообщение #2





Группа: Новичок
Сообщений: 3
Регистрация: 13-10-08
Пользователь №: 40 905



wait(500) после команд СС-44, остальные мешают
Go to the top of the page
 
+Quote Post
DAndy_boy
сообщение Nov 2 2010, 15:44
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 25-09-05
Из: Москва
Пользователь №: 8 922



Цитата(zits @ Nov 2 2010, 18:02) *
wait(500) после команд СС-44, остальные мешают


Тут Вы правы. Задержка после запуска преобразования маленькая. Увеличил. Данный после преобразования которые стали считываться следующие 20.0 , 20.5, 21.5 градуса... так и прыгает в этих трех значениях. Как только пытаюсь пальцами нагреть датчик преобразования перестают запускаться и выдаются уж совсем нереальные цифры... совсем шаманство какоето. Я уж не пойму может схему не правильно нарисовал? Тип подключения датчика с паразитным питанием.процессор LPC2378.





Go to the top of the page
 
+Quote Post
xemul
сообщение Nov 2 2010, 16:57
Сообщение #4



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



При паразитном питании перед 0x44 включите в DS2482 SPU (см. раздел "Strong Pullup" даташита DS2482).
От полевика при таком номинале R119 толка чуть да ничего. Если датчик на линии один, можете убрать и полевик, и резистор.
Не знаю, в каких попугаях у Вас wait(), но 12-битное преобразование у DS18B20 занимает 750 мс. При паразитном питании Вам придётся выдерживать требуемую паузу, т.к. об окончании преобразования как-либо узнать не удастся.
Go to the top of the page
 
+Quote Post
DAndy_boy
сообщение Nov 2 2010, 17:23
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 25-09-05
Из: Москва
Пользователь №: 8 922



Цитата(xemul @ Nov 2 2010, 20:57) *
При паразитном питании перед 0x44 включите в DS2482 SPU (см. раздел "Strong Pullup" даташита DS2482).
От полевика при таком номинале R119 толка чуть да ничего. Если датчик на линии один, можете убрать и полевик, и резистор.
Не знаю, в каких попугаях у Вас wait(), но 12-битное преобразование у DS18B20 занимает 750 мс. При паразитном питании Вам придётся выдерживать требуемую паузу, т.к. об окончании преобразования как-либо узнать не удастся.


SPU я включаю...
DS2482_write_config(0x05);

резистор поменял на 270 Ом. На линии предпологается наличие от 1 до 5 датчиков.

Изменения что-то не сильно помогли... unsure.gif
Go to the top of the page
 
+Quote Post
xemul
сообщение Nov 2 2010, 17:49
Сообщение #6



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(DAndy_boy @ Nov 2 2010, 21:23) *
SPU я включаю...
DS2482_write_config(0x05);

Уф-ф-ф.
Цитата
The SPU bit must be set immediately prior to issuing
the command that puts the 1-Wire device into the state
where it needs the extra power.
...
the strong pullup ... remains conducting ... until one of three events occurs:
the DS2482-100 receives a command that generates 1-Wire communication (the typical case);
the SPU bit in the Configuration Register is written to 0;
or the DS2482-100 receives the Device Reset command.


Вы собираетесь запускать все датчики на преобразование одновременно? Если нет, то 1 мА для одного датчика DS2482 выдавит из себя без лишних навесов.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 16:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016