Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подсчёт CRC датчиком DS18B20
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
serj32
Значит если у датчика сер.номер 0x000001272056
то если датчик примет этот номер,
то CRC он подсчитает для числа 0x562027010000
Так ли это подскажите пожалуйста.
Считаю я калькулятором CRC http://arv.radioliga.com/component/option,...ileinfo/id,136/
Спасибо.
ARV
CRC считается для всего уникального идентификатора, вместе с кодм семейства, т.е. для всех 7 байтов, а не только для собственно номера
serj32
Цитата(ARV @ May 12 2014, 14:29) *
CRC считается для всего уникального идентификатора, вместе с кодм семейства, т.е. для всех 7 байтов, а не только для собственно номера

Значит датчик подсчитает CRC для числа 0x28562027010000
и никак для 0x28000001272056
0x28-это для DS18B20
контроллер (мастер) отправит число в такой последовательности?
с начала 0x28 -код семейства DS18B20
далее 0x56
......... 0x20
......... 0x27
......... 0x01
......... 0x00
......... 0x00
......... 0x27 - восьмой байт CRC
ARV
в чем ваш вопрос?
serj32
Цитата(ARV @ May 12 2014, 19:50) *
в чем ваш вопрос?

Я опишу вопрос с самого начала и подробно.
Числа и пример я взял отсюда http://chipmk.ru/index.php?option=com_cont...5&Itemid=29
там дано в примере следующее;

- Match Rom Command, 0x55 -------- отправляет ПК;
-------ROM Family Code, 0x28 ------------- отправляет ПК;
---------------ROM Code, 0x000001272056 ------ отправляет ПК;
---------------ROM CRC, 0x27 ----------------------- отправляет ПК;-это контрольная сумма
Дело в том ,что с числом ROM Code, 0x000001272056 не получается CRC не равно 0x27

Я предполагаю что датчик при приёме числа из которого он посчитает CRC расположит байты в следующем порядке-
--первый принятый байт будет старшим
-вот так 0x28562027010000 вот теперь CRC=0x27

-но если подставить в калькулятор сразу сер.номер вот так 0x28000001272056 то CRC будет неверным.
Правильны ли мои рассуждения? Спасибо.


И ещё.Вот у меня есть DS18B20,далее я скачаю отсюда прогу http://arvresearch.nm.ru/owdrv/index.dhtml
чтобы узнать серийный номер.Вот прграмма мне выдала Adr:000005D97080-это и есть сер.номер.
Мне необходимо теперь узнать СRC потому ,что я должен буду передавать его для датчика( для 7 байт)

В калькулятор я должен ввести число 0x288070D9050000 -из этого числа я должен вычислить CRC
Как можно видеть байты серийного номера поменялись.
Правильно ли я считаю CRC ? Спасибо.
toweroff
Нужно верить не какому-то калькулятору с какого-то сайта, а только даташиту или специальным документам производителя, например "Application Note 27: Understanding and Using Cyclic Redundancy Checks with
Maxim iButton Products
"
ветерок
http://arvresearch.nm.ru/owdrv/index.dhtml
а кто зальёт проги что были по ссылке выше ?
Сайта такого больше нет.
Спасибо.
Lagman
Судя по архиву интернета https://web.archive.org/web/20110101094932/.../download.dhtml , возможно это они http://arv.radioliga.com/content/view/69/44/
И в первом посте эта ссылка приведена.
ветерок
Да,спасибо
всё нашлось.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.