Страница 1 из 1

Адрес датчика DS1820 в Proteus

Добавлено: Чт июн 11, 2009 21:27:51
Twen
Здравствуйте, я сделал датчик температуры по статье
http://www.dinistor.net.ru/termometr-na ... -%B0s.html

но хочу подключить теперь второй датчик.Моделирую в Proteus, но там вылазит окно ,когда клацаю два разы на датчик (смотри файл).

Проблема в том что каждый датчик имеет уникальный 64-битный номер-адрес 1-Wire. Он состоит фактически из 8 отдельных байт: одного байта идентификатора семейства, шести байт (48 бит) собственно уникального адреса и одного байта контрольной суммы всех предыдущих байтов.

А у proteus ,у DS1820 есть 1 бай семейства,3 байта серийного номера,а 1-го байта контрольной суммы нет.

Добавлено: Чт июн 11, 2009 21:34:40
sachok
Во первых: http://www.radiokot.ru/forum/viewtopic.php?t=3739
Не понял проблемы. Если Вы хотите сделать термометр с 2 датчиками, а протеус ругается на то что у них одинаковы серийные номера так поменяйте на одном из датчиков серийник или выберете Automatic Serialization YES.

Добавлено: Чт июн 11, 2009 21:42:06
Twen
Смотрите я делаю Мк с 2 датчиками.
В проге пишу:

Send_1w CMD_MATCH_ROM; команда выбора датчика по адресу

Send_1w 0x10; номер семейства



Send_1w 0xFd ;серийный номер
Send_1w 0x23 ;серийный номер
Send_1w 0x09 ;серийный номер
Send_1w 0xFF ;серийный номер
Send_1w 0x84 ;серийный номер
Send_1w 0x32 ;серийный номер

И нужно еще выдать контрольную сумму ,ее считать самому ?Для проверки в Proteus.

Добавлено: Чт июн 11, 2009 21:47:58
Twen
Send_1w- подпрограмма которая выводит байт в шину, а номер контрольная сумма +3284FF0923FD10 я задаю сам. То есть 10 номер семейства,3284FF0923FD-серийный номер, а контрольную сумму самомк считат?

Добавлено: Чт июн 11, 2009 21:49:36
Twen
Вообщи как програмно на асемблере выбрать 1 датчик на шине из 2 и работать с ним?

Добавлено: Чт июн 11, 2009 22:27:51
VenomXP
Описание подсчета контрольной суммы и ее алгоритм есть в ДШ на датчик.