Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нужны реальные исходники для DS18B20 и WINAVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
011119xx
Прошу простить за открытие темы, т. к. такие уже были. Нужны реально рабочие исходники, а не список ссылок, этого у меня навалом. Простите.
GDI
А по ссылкам нереальные и не рабочие дают? smile.gif
SasaVitebsk
Цитата(011119xx @ Jan 22 2008, 15:23) *
Прошу простить за открытие темы, т. к. такие уже были. Нужны реально рабочие исходники, а не список ссылок, этого у меня навалом. Простите.

Вы знаете, при работе с DS1820 из оборудования применяется только одна линия порта (иногда таймер для формирования задержек). Поэтому запрошенные вами исходники написанные на Си будут максимально не зависимы от компилятора. Иными словами подойдут ЛЮБЫЕ. Здесь их предлагалось - куча. В том числе и мной. Исходя из множества постов, что в WinAVR какие то непонятки с формированием задержки средствами компилятора (точнее непонятки у людей), я думаю что у вас таже проблема. Там только одна задача - правильно сформировать временную диаграмму.

Для того, чтобы сдвинуться с мёртвой точки напишите текст типа "выставить единицу-задержка 1-выставить 0 -задержка 2" и проверьте правильность формирования по осциллографу.
011119xx
Не чьи-то там а свои предлагайте. инициализация у меня проходит, а при чтении температуры читается 0xFF.
SasaVitebsk
Цитата(011119xx @ Jan 22 2008, 16:05) *
Не чьи-то там а свои предлагайте. инициализация у меня проходит, а при чтении температуры читается 0xFF.

При чём здесь инициализация?????
Можете и мои брать - я их для того и выкладывал чтобы брали. У меня правда IAR.
Qwertty
18S20 не подойдет?
011119xx
Цитата(Qwertty @ Jan 22 2008, 17:37) *
18S20 не подойдет?

не знаю. надо сравнивать. у меня на руках только 18B20
GDI
У 18S20 другой код устройства а в остальном они совместимы... Но, имхо, имея на руках кучу исходников, добавка еще одного не даст ничего, если нет глобального понимания работы железа и выбранного компилятора.
Qwertty
Цитата(GDI @ Jan 22 2008, 15:49) *
У 18S20 другой код устройства а в остальном они совместимы... Но, имхо, имея на руках кучу исходников, добавка еще одного не даст ничего, если нет глобального понимания работы железа и выбранного компилятора.

Не только код. Еще разное количество значащих бит в регистре температуры, у s20 разрешающая способность == 0.5С, у B20 ==0.0625С. А код устройства при одном датчике вообще не важен - SKIP_ROM и нет проблем.
Dmitry77
Выкладываю реально рабочий проект....Писал не я, но использовал приведенные функции и все работает отлично!! Написано под WinAVR.....Пользуйтесь на здоровье!!
011119xx
Цитата(Dmitry77 @ Jan 23 2008, 01:24) *
Выкладываю реально рабочий проект....Писал не я, но использовал приведенные функции и все работает отлично!! Написано под WinAVR.....Пользуйтесь на здоровье!!

Спасибо большое. Буду пробовать.
011119xx
Инициализация проходит: выдаю низкий уровень на 520 мкс, освобождаю шину и DS через 30 мкс удерживает ее в нуле в течение 100 мкс, потом отпускает. Интервал записи 1: выдаю низкий уровень на 10 мкс, освобождаю шину на 50+10 мкс. Интервал записи 0: выдаю низкий уровень на 60 мкс и овобождаю шину на 10 мкс.
Замерено осциллографом. При чтении DS почему-то во всех битах идет 1. Проблема с интервалами чтения как мне кажется. Буду смотреть дальше.

Питание у меня 3,3В. Может в этом проблема.
SasaVitebsk
Цитата(011119xx @ Jan 23 2008, 10:50) *
Питание у меня 3,3В. Может в этом проблема.

Это не проблема
011119xx
Цитата(SasaVitebsk @ Jan 23 2008, 13:35) *
Это не проблема

Сейчас пробую вашу библиотеку. Как в главной функции правильно использовать библиотеку?
Можно так?

u16 ds;
int main(void)
{
//Инициализация прочего

convert_temp_short();
for(u8 i=0; i<80; i++) _delay_ms(10);
ds = read_temp_short();

while(1)
{
//Передача значения ds по usart
}
}
011119xx
Заработала библиотека от SasaVitebsk
aspID
Никак не мог найти ошибку (позднее оказалось все же просчитался в таймслотах) заработало на примере от Апноута AVR318: Dallas 1-Wire® master
GDI
У 18S20 можно управлять разрешением, по-умолчанию там стоит 9 бит, зато и измеряет быстрее, ~100мс, но можно поставить и 12 бит как изначально и неменяемо стоит в 18B20 и получать те же 0,0625... только надо ли это? С завода датчик калиброван( и тот и другой) на точность 0,5 градусов, а чтобы получить точность выше, а не только разрешение, надо калибровать датчики.
xemul
Цитата(GDI @ Jan 24 2008, 10:51) *
У 18S20 можно управлять разрешением, по-умолчанию там стоит 9 бит, зато и измеряет быстрее, ~100мс, но можно поставить и 12 бит как изначально и неменяемо стоит в 18B20 и получать те же 0,0625... только надо ли это? С завода датчик калиброван( и тот и другой) на точность 0,5 градусов, а чтобы получить точность выше, а не только разрешение, надо калибровать датчики.

Все верно, но буквы "S" и "B" нужно поменять местами smile.gif.
Qwertty
Цитата(xemul @ Jan 24 2008, 11:39) *
Все верно, но буквы "S" и "B" нужно поменять местами smile.gif.

Нет, не все smile.gif Время конвертации у S20 совсем не 100мс, а до 750мс. Так что не особо и быстрее.
GDI
Цитата
Все верно, но буквы "S" и "B" нужно поменять местами smile.gif.

Давно я с ними работал, может и действительно буковки поменять надо.. smile.gif
Цитата
ет, не все smile.gif Время конвертации у S20 совсем не 100мс, а до 750мс. Так что не особо и быстрее.

На 9 бит примерно 100мс, на 12 бит - 750мс, просто у одной можно поменять разрешение, а у другой - нет. Новые они все на 12 бит настроены.
SasaVitebsk
Да и пол градуса там нет. Достаточно подключить штук пять датчиков, чтобы в этом убедится. Разброс составляет до 2 градусов. Это точность наверное 0.5. Короче - по хорошему их все требуется калибровать.
Qwertty
Цитата(GDI @ Jan 24 2008, 15:15) *
На 9 бит примерно 100мс, на 12 бит - 750мс, просто у одной можно поменять разрешение, а у другой - нет. Новые они все на 12 бит настроены.

Даташит говорит совсем другое - S20:
9-bit thermometer resolution
Converts temperature in 750ms (max.)
Никаких 12 бит и 100мс не упоминается.
sergeus
Рабочая схема цифрового термометра. Программа написана на ассемблере под AVRStudio. Всё отлично работает:
http://radioded.ru/index.php?option=com_co...9&Itemid=49
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.