ds18b20 с белой меткой

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
mdavit
Родился
Сообщения: 6
Зарегистрирован: Чт фев 17, 2011 19:25:20

ds18b20 с белой меткой

Сообщение mdavit »

Собрал термостат на ds18b20 и atmega8 , работает нормально. Купил еще ds18b20 но они с белой точкой. Проблема такая, те что без точки работают нормально, а те что с точкой показивают -35 при 24 градусах,-27 при 32 и.т.д. Некак не могу найти даташит к нему, на сайте производителя тоже нет. Если кто знает что ето за продукт и как его исползовать плз помогите.
piligrim130
Поставщик валерьянки для Кота
Сообщения: 2392
Зарегистрирован: Пт дек 03, 2010 10:52:25

Re: ds18b20 с белой меткой

Сообщение piligrim130 »

может их отмаркировали как бракованые
mdavit
Родился
Сообщения: 6
Зарегистрирован: Чт фев 17, 2011 19:25:20

Re: ds18b20 с белой меткой

Сообщение mdavit »

У меня были такие мысли, но зачем на продажу виставлять бракованное .
Или такое тоже бывает?
Все таки это Dallas semiconductors а не какая нибуд китайская saanyoo
mdavit
Родился
Сообщения: 6
Зарегистрирован: Чт фев 17, 2011 19:25:20

Re: ds18b20 с белой меткой

Сообщение mdavit »

На сайте производитела про такой продукт и слова нету. Есть ешо ds18s20 , думал в магазине попутали, но на етом четко написано 18b20 как и далжно быт, и формат и содержание регистеров и серийной код правилние , только вот температура как будто на 50 градусов ниже показивает.
Да и ещо у ds18b20 завадская установка 12 бит а у етих 9, поменял програмно на 12 замирает на последнем 9 битном значении и не реагирует на изменении температуры, хотя регистри считиваются .
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: ds18b20 с белой меткой

Сообщение IM1 »

mdavit писал(а):У меня были такие мысли, но зачем на продажу виставлять бракованное .
Или такое тоже бывает?
Все таки это Dallas semiconductors а не какая нибуд китайская saanyoo
Если можно, выложите фото. Интересно посмотреть, что за зверь такой.
mdavit
Родился
Сообщения: 6
Зарегистрирован: Чт фев 17, 2011 19:25:20

Re: ds18b20 с белой меткой

Сообщение mdavit »

Ничего интересного, обичный TO92 с тремя ножками, с надписами DALLAS и 18B22 спереди и с белой точкой сзади корпуса, и с работой не вписиваюшимся в указанном в даташите.
Ну послал я емеил DS фирме и буду ответа ждать.
Может ето и в правду бракованное или китайцы
Аватара пользователя
Stalker-U
Открыл глаза
Сообщения: 55
Зарегистрирован: Пн окт 11, 2010 20:59:18
Откуда: Краснодар

Re: ds18b20 с белой меткой

Сообщение Stalker-U »

Доброго времени суток. Вот решил разобраться для себя с датчиком ds18b20 и сразу застрял на его инициализации. Библиотеки использовать не хочу. Написал программу, которая должна в цикле инициализировать этот датчик:

Код: Выделить всё

.include "D:\avr\avrasm\appnotes\m16def.inc"
.cseg

.org $0000
rjmp reset

reset:
ldi r16,low(RamEnd)
out SPL,r16
ldi r16,high(RamEnd)
out SPH,r16

ldi r16,0b11111111
out ddrd,r16


zzzz:
rcall zader1
rcall zader2
rjmp zzzz

zader1:
ldi r16,0b11111111
out portd,r16
ldi r17,255
ldi r18,3
n1:
dec r17
brne n1
dec r18
brne n1
ret

zader2:
ldi r16,0b00000000
out portd,r16
ldi r17,166

n2:
dec r17
brne n2
ret

Я как понимаю он должен откликаться всегда на каждое проседание линии более 480 мкс, а он так не делает- откликается через раз (если это вообще отклик). Помогите в чём я не прав?
Вложения
Proteus7.JPG
(189.02 КБ) 439 скачиваний
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: ds18b20 с белой меткой

Сообщение ChipKiller »

Stalker-U писал(а):Вот решил разобраться для себя с датчиком ds18b20 и сразу застрял на его инициализации. Библиотеки использовать не хочу. Написал программу, которая должна в цикле инициализировать этот датчик:
... для начала совет.
1. если пишете на ассемблере - пользуйтесь .equ и .macro. Код будет более понятен и читаем..
2. вместо zader1: и zader2: - хватит одной процедуры задержки

Код: Выделить всё

.equ PinDs1820 = 5 ; номер вывода порта
....
sbi DDRD,PinDs1820   ; вывод на выход "0"   
rcall delay_480
cbi DDRD,PinDs1820   ; вывод на выход "1"
rcall delay_5             ; время на восстановление линии в "1"
ldi r16,TIME
loop:
sbis    PIND,PinDs1820 ; цикл пока нет "0"
rjmp ds_ok   
dec r16
brne loop
ret
ds_ok:
rcall delay_480
ret


если r16 на выходе не равно 0 - датчик на линии есть
mdavit
Родился
Сообщения: 6
Зарегистрирован: Чт фев 17, 2011 19:25:20

Re: ds18b20 с белой меткой

Сообщение mdavit »

Для работы с ds18b20 нужно саблюдать последовательность 3-х шагов
1. Инициализациа . У вас ето и просходит
2. ROM команда
3. Команда функции

При отцуствии последователности или каково то шага поведение ds18b20 не определено

Видимо у вас после инициализации ждет следующих шагов, далее понимает по своему незнаю что как и нету ответа, и внов переходит в режим ожидания инициализации


From datasheet

The transaction sequence for accessing the DS18B20 is as follows:
Step 1. Initialization
Step 2. ROM Command (followed by any required data exchange)
Step 3. DS18B20 Function Command (followed by any required data exchange)
It is very important to follow this sequence every time the DS18B20 is accessed, as the DS18B20 will not
respond if any steps in the sequence are missing or out of order. Exceptions to this rule are the Search
ROM [F0h] and Alarm Search [ECh] commands. After issuing either of these ROM commands, the
master must return to Step 1 in the sequence.
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: ds18b20 с белой меткой

Сообщение ChipKiller »

mdavit писал(а):Для работы с ds18b20 нужно саблюдать последовательность 3-х шагов
1. Инициализациа . У вас ето и просходит
... не происходит и не произойдет
Stalker-U писал(а):

Код: Выделить всё

....
ldi r16,0b11111111
out ddrd,r16 ; все линии порта работают как выходы ОШИБКА
....
zader1:
ldi r16,0b11111111
out portd,r16 ; ОШИБКА
....
zader2:
ldi r16,0b00000000
out portd,r16
....

работать можно только так

Код: Выделить всё

sbi DDRD,PinDs1820   ; вывод на выход "0"   
cbi DDRD,PinDs1820   ; вывод на выход "1"


PS бит порта portd.PinDs1820 всегда равен 0
Аватара пользователя
IM1
Грызет канифоль
Сообщения: 268
Зарегистрирован: Вт фев 16, 2010 12:10:38
Откуда: Воронеж, Россия

Re: ds18b20 с белой меткой

Сообщение IM1 »

mdavit писал(а):Ничего интересного, обичный TO92 с тремя ножками, с надписами DALLAS и 18B22 спереди и с белой точкой сзади корпуса, и с работой не вписиваюшимся в указанном в даташите.
Ну послал я емеил DS фирме и буду ответа ждать.
Может ето и в правду бракованное или китайцы
Тоже поискал, похоже что это ds18b20+, т.е. тоже самое, но без свинца. Картинка похожая на Вашу http://www.megachip.ru/item.php?item_id=716047 . На сайте Максима в свежем даташите утверждают, что "+" должен стоять на лицевой стороне http://datasheets.maxim-ic.com/en/ds/DS18B20.pdf .
Кстати, вчера купил 2шт. 18b20, так и есть, - внизу-слева маленький плюсик, а сзади углубление с буковкой "p".
Аватара пользователя
Stalker-U
Открыл глаза
Сообщения: 55
Зарегистрирован: Пн окт 11, 2010 20:59:18
Откуда: Краснодар

Re: ds18b20 с белой меткой

Сообщение Stalker-U »

Уважаемый ChipKiller, я что-то не понял с командами sbi, cbi. Они вроде как устанавливают указаный бит регистра в 0 и 1 соответственно, а связва ldi r16,0b11111111 c out portd,r16 весь байт переводит в значение высокого уровня. В чём тогда фатальная ошибка не позволяющая инициализировать датчик и стабильно это видеть на осцилограмме, прикреплённой мной выше? Или собака зарыта глубже? И ещё вопрос: менять логический уровень надо регистром ddrd а не как я регистром portd при ddrd в 1?(исходя из вашего: PS бит порта portd.PinDs1820 всегда равен 0)? :shock:
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: ds18b20 с белой меткой

Сообщение ChipKiller »

Stalker-U писал(а):В чём тогда фатальная ошибка
... ошибка в принципе управления - нельзя изменять вывод порта через out PORTx.
Stalker-U писал(а):менять логический уровень надо регистром ddrd а не как я регистром portd при ddrd в 1?
... именно. sbi DDRD,PinDs1820 - переключает порт на вывод "0", сbi DDRD,PinDs1820 - переключает порт на ввод и резистор 4,7КОм "подтянет" его к "1"
Аватара пользователя
Stalker-U
Открыл глаза
Сообщения: 55
Зарегистрирован: Пн окт 11, 2010 20:59:18
Откуда: Краснодар

Re: ds18b20 с белой меткой

Сообщение Stalker-U »

Вы гений ChipKiller :idea: Всё заработало как надо! тока я не понял почему оно заработало :( пойду читать дальше.
Вложения
Безымянный.JPG
(111.49 КБ) 458 скачиваний
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: ds18b20 с белой меткой

Сообщение ChipKiller »

Stalker-U писал(а):тока я не понял почему оно заработало :( пойду читать дальше.
... потому, что запись "1" в порт не дает "возможности" DS18xx сбросить линию в "0" (при таком управлении по-сути происходит короткое замыкание вывода МК на землю )
PE_VK
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Вт ноя 16, 2010 23:19:40
Откуда: Украина, г. Макеевка

Re: ds18b20 с белой меткой

Сообщение PE_VK »

mdavit писал(а): Есть еще ds18s20 Да и еще у ds18b20 заводская установка 12 бит а у этих 9 .


1. У DS18В20 заводская установка 12 бит, а DS18S20 - 9 бит.
Попробуйте работать как с DS18S20.
2. Может еще быть паразитное питание и только.
Аватара пользователя
Stalker-U
Открыл глаза
Сообщения: 55
Зарегистрирован: Пн окт 11, 2010 20:59:18
Откуда: Краснодар

Re: ds18b20 с белой меткой

Сообщение Stalker-U »

Вроде разобрался. sbi ddr,x подключает ножку порта к нулю внутри самого контроллера и на линии устанавливается низкий уровень, что и вызывает начало инициализации; команда cbi ddr,x обеспечивает высокий уровень за счёт подключения к питанию через резистор в схеме на 4,7К. Ответом на инициализацию служит подключение линии к нулю в самом датчике. Фух. Два дня ушло. Ещё раз спасибо Вам ChipKiller!
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»