Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: не получается получить данные с DS1820 через DS2482-100
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
DAndy_boy
всем здравствуйте. Други подскажите, а то уже три дня сижу.... пытаюсь подключить термодатчик 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;

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


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





xemul
При паразитном питании перед 0x44 включите в DS2482 SPU (см. раздел "Strong Pullup" даташита DS2482).
От полевика при таком номинале R119 толка чуть да ничего. Если датчик на линии один, можете убрать и полевик, и резистор.
Не знаю, в каких попугаях у Вас wait(), но 12-битное преобразование у DS18B20 занимает 750 мс. При паразитном питании Вам придётся выдерживать требуемую паузу, т.к. об окончании преобразования как-либо узнать не удастся.
DAndy_boy
Цитата(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
xemul
Цитата(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 выдавит из себя без лишних навесов.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.