Например TDA7294

Форум РадиоКот • Просмотр темы - Интерфейс 1-Wire
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт апр 16, 2024 18:19:43

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 69 ]  1, , ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Интерфейс 1-Wire
СообщениеДобавлено: Сб ноя 01, 2008 20:34:15 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Сб сен 06, 2008 12:56:13
Сообщений: 326
Рейтинг сообщения: 0
"Интерфейс 1-Wire". http://radiokot.ru/articles/13/
Изложено доходчиво, но, тем не менее, вопросы некоторые, после прочтения остались.
1. Почему при передаче устройством "0" или "1" ввод значений в МК производится на 1/4 времени тайм-слота, а не в середине, как это сделано при вводе зачений в устройство, при передаче данных от МК?
2. При передаче устройством "0", оно должно удерживать шину в низком уровне до конца тайм-слота (после инициации МК)? В тексте об этом не сказано. По рисунку не понятно, почему такая большая зона неопределенности влево (заштрихованная часть). Такое впечатление, что 1-Wire устройство "знает", что нужно зарядить паразитную емкость и заранее освобожает шину, чтобы поспеть к концу тайм-слота. Какие, все-таки, временные параметры сигнала от устройства? Выше, по рисунку, при передаче "0" от МК, такой зоны нет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 01, 2008 20:43:58 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
По-моему, ответ на оба вопроса одинаков и заключается в том, что время, в течение которого линия вернется к высокому уровню после "отпускания" ее хоть кем (МК или устройством) весьма неопределено и зависит, в частности, от погонной емкости линии связи. Поэтому при передаче ведущим принимаются меры, чтобы ведомое устройство могло надежно отличить единицу от нуля, ну и наоборот - при приеме от ведомого делается то же самое, но другими средствами.

ведущий "тянет время" насколько это возможно при передаче, и старается как можно позже опрашивать линию при приеме - в этом случае вероятность правильного восприятия сигнала наиболее высока.

все определенные протоколом длительности в статье указаны, остальные не лимитируются. таков уж протокол...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 02, 2008 10:22:05 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Сб сен 06, 2008 12:56:13
Сообщений: 326
Рейтинг сообщения: 0
Попробую сформулировать вопросы по другому.
Цитата:
Если МК принимает данные, то опрос уровня в шине он должен сделать на промежутке от 13-й до 15-й микросекунде тайм-слота.
1. Почему???
Цитата:
...ведущий "тянет время" насколько это возможно при передаче, и старается как можно позже опрашивать линию при приеме - в этом случае вероятность правильного восприятия сигнала наиболее высока.
Следуя этому утверждению, да и с точки зрения "здравого смысла", для того, чтобы исключить влияние переходных процессов в начале и конце тайм-слота, МК должен ввести данные в середине слота.
2. При передаче данных устройством, оно должно освобождать шину в разные моменты при передаче "0" или "1". Далее при переходе шины в еденичное состояние, происходит заряд емкости линии. От постоянной времени заряда и будет меняться форма кривой (положе, круче) и следовательно ширина фронта сигнала, но без смещения начальной точки нулевого уровня. Вот это, на мой взгляд, можно и назвать зоной неопределенности. А по рисунку в статье, освобождение шины устройством начинается, особенно при передаче им "0", в совершенно непонятные моменты (левее конца тайм-слота)


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 02, 2008 17:03:28 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Сб сен 06, 2008 12:56:13
Сообщений: 326
Рейтинг сообщения: 0
Разбираясь далее, выяснил следующее:
Широкая зона неопределенности при передаче устройством "0" (на рисунке в исходной статье) вызвана, видимо, отклонением внутреннего масштаба времени для устройств 1-Wire. На рисунке приведена минимальная величина - 15 мкс, в течение которго устройство удерживает шину в "нуле". Но она может быть увеличена, вследствие разброса, до 60 мкс? С точки зрения "паразитного" питания устройства 1-Wire, чем меньше, тем лучше, а для надежного приема сигналов - наоборот. Выходит, что самое "узкое" место в интерфейсе, это прием данных от устройства, а именно "нуля", который "портит погоду" и для "1". Получается, что это результат от предусмотренного питания устройств по шине и реализации части протокола в соответствии с этим. Наверное сложно попасть в эти 2-3 микросекунды :) .


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 02, 2008 20:38:56 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
практика показывает, что попасть куда надо не трудно.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: 1-Wire как вычислять CRC
СообщениеДобавлено: Вс янв 17, 2010 11:29:57 
Встал на лапы

Зарегистрирован: Вс сен 13, 2009 23:38:58
Сообщений: 133
Откуда: Шелехов ирк обл
Рейтинг сообщения: 0
Огромное спасибо за доходчивое обьяснение интерфейса. Я сделал термометр с использованием Tiny2313 и Ds18b20 всё прекрасно работает. И теперь хочу поставить в линию два DS18B20. А для этого надо знать как вычислять CRC. Скажите пожалуйста правильно ли я понял- CRC=((((((байт1 xor '0x00') xor байт2)xor байт3)xor байт4)xor байт5)xor байт6)xor байт7)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 1-Wire как вычислять CRC
СообщениеДобавлено: Вс янв 17, 2010 13:17:19 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
roma писал(а):
Огромное спасибо за доходчивое обьяснение интерфейса. Я сделал термометр с использованием Tiny2313 и Ds18b20 всё прекрасно работает. И теперь хочу поставить в линию два DS18B20. А для этого надо знать как вычислять CRC. Скажите пожалуйста правильно ли я понял- CRC=((((((байт1 xor '0x00') xor байт2)xor байт3)xor байт4)xor байт5)xor байт6)xor байт7)
1. а как же без CRC вы сделали свой термометр?
2. вы не правильно поняли алгоритм подсчета CRC

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 1-Wire как вычислять CRC
СообщениеДобавлено: Вс янв 17, 2010 17:18:45 
Встал на лапы

Зарегистрирован: Вс сен 13, 2009 23:38:58
Сообщений: 133
Откуда: Шелехов ирк обл
Рейтинг сообщения: 0
ARV писал(а):
roma писал(а):
1. а как же без CRC вы сделали свой термометр?
2. вы не правильно поняли алгоритм подсчета CRC

1. Reset-presence-skip rom-конвертировать температуру-жду одну секунду-reset-presence-skip_rom-read-читаю только первые два байта и через одну секунду все по новой.(В линии у меня ТОЛЬКО ОДИН DS18B20. Я честно говоря не понимаю "а как же без CRC вы сделали свой термометр?
")
2. Если у вас есть готовый кусок программы подсчёта CRC на ассемблере вышлете мне его пожалуйста. Или ссылочку с ответом на мой первый вопрос.


3. Как узнать адрес DS18B20? На корпусе нарисованны какие то циферки и буковки в три или четыре строчки не помню. Может быть часть этих циферок и есть адрес- имя термометра. Вобщем подскажите пожалуйста как узнать адрес?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: 1-Wire как вычислять CRC
СообщениеДобавлено: Вс янв 17, 2010 17:29:03 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
roma писал(а):
1. Reset-presence-skip rom-конвертировать температуру-жду одну секунду-reset-presence-skip_rom-read-читаю только первые два байта и через одну секунду все по новой.(В линии у меня ТОЛЬКО ОДИН DS18B20. Я честно говоря не понимаю "а как же без CRC вы сделали свой термометр?")
да так и понимать - неправильно вы делаете. CRC должно вычисляться при любом чтении из датчика, причем читать положено не первые 2 байта, а все 9 байт. иначе, если была помеха, вы никогда не узнаете, что данные искажены - будет показывать -18 градусов у больного гриппом, и точка :)
roma писал(а):
2. Если у вас есть готовый кусок программы подсчёта CRC на ассемблере вышлете мне его пожалуйста. Или ссылочку с ответом на мой первый вопрос.
здесь на РадиоКоте я публиковал статью с исходниками на ассемблере - там есть и обмен, и рсчет CRC. посмотрите среди статей, я сам не помню, где это.
roma писал(а):
3. Как узнать адрес DS18B20? На корпусе нарисованны какие то циферки и буковки в три или четыре строчки не помню. Может быть часть этих циферок и есть адрес- имя термометра. Вобщем подскажите пожалуйста как узнать адрес?
адрес по корпусу не узнать, во всяком случае, никакой достоверной инфы об этом нет. его можно считать из каждого датчика поотдельности и запомнить, либо использовать возможность "поиска" адресов всех датчиков на шине. второй вариант для реализации на ассемблере достаточно сложен, т.к. имеет неслабый алгоритм, в ктором легко запутаться. наконец, вы можете при помощи простейщего адаптера к СОМ-порту считать в компьютер адреса датчиков и затем их использовать в своей программе, как константы.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пн фев 15, 2010 11:04:23 
Встал на лапы

Зарегистрирован: Пн окт 05, 2009 20:01:20
Сообщений: 119
Рейтинг сообщения: 0
Здравствуйте. Хочу подключить 18s20 к микроконтроллеру MSP430F149. Программа для МК будет написана в Си. Насколько я знаю, в Си время выполнения команд определить сложно, в то время как в ассемблере я могу точно знать время выполнения каждой конкретной команды. Поясню на примере:
Код:
int i = 5000;
do
{
    i--;
}
while(i>0)


За сколько машинных циклов выполнится структура do-while сказать сложно, в то время как в ассемблере я могу точно сказать сколько выполняется тот или иной кусок кода.

Вопрос: смогу ли я обеспечить заданные временные интервалы в Си или мне придется использовать ассемблер?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Интерфейс 1-Wire
СообщениеДобавлено: Вт мар 23, 2010 02:08:16 
Открыл глаза

Зарегистрирован: Вт май 01, 2007 12:01:53
Сообщений: 55
Откуда: Минск
Рейтинг сообщения: 0
AVR, писал программку ИСКЛЮЧИТЕЛЬНО по вашей статье(на ассемблере), наконец-то у меня заработал датчик.. В этой теме http://radiokot.ru/forum/viewtopic.php? ... 95#p425195 я написал, почему у меня ОООчень долго не получалось, и некоторые личные наблюдения,..
Возможно не лишним было-бы внести некоторые дополнения в вашу статью, т.к. не исключено, что кто-та ещё попытается самостоятельно написать программу.. Возможно небольшая пометочка снизу позволит сэкономить кому-то уйму времени ;)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Интерфейс 1-Wire
СообщениеДобавлено: Вт мар 23, 2010 05:28:41 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт окт 14, 2008 11:29:03
Сообщений: 163
Откуда: Алтайский край, Бийск
Рейтинг сообщения: 0
Нуж етит твою мать! Он ARV если что...
Нужно уважать людей, тем более если вам помогают...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Интерфейс 1-Wire
СообщениеДобавлено: Вт мар 23, 2010 08:06:50 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
VIY писал(а):
AVR, писал программку ИСКЛЮЧИТЕЛЬНО по вашей статье(на ассемблере), наконец-то у меня заработал датчик.. В этой теме viewtopic.php?f=20&t=9863&p=425195#p425195 я написал, почему у меня ОООчень долго не получалось, и некоторые личные наблюдения,..
Возможно не лишним было-бы внести некоторые дополнения в вашу статью, т.к. не исключено, что кто-та ещё попытается самостоятельно написать программу.. Возможно небольшая пометочка снизу позволит сэкономить кому-то уйму времени ;)

к сожалению, по вашей эмоциональной заметке по указанной ссылке видно, что это только ваши частные наблюдения, а интерфейс четко стандартизирован. я писал статью на основе сведений из стандарта, и потому не указывал "отсебятины" типа "датчик всегда удерживает 0 до 26-микросекунды" - это неверно вообще, хотя в частном случае может быть и так. то же самое и касательно всяких нюансов с опросами пинов и т.п.

не скажу, что моя статья - идеал во всех отношениях, т.к. по мере собственного развития и уровень знаний у меня меняется, а писал статью я довольно давно... более свежая версия с исправлением некоторых ошибочных утверждений имеется на моем сайте http://arv.radioliga.com/content/view/39/43/

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Интерфейс 1-Wire
СообщениеДобавлено: Вт мар 23, 2010 10:11:05 
Открыл глаза

Зарегистрирован: Вт май 01, 2007 12:01:53
Сообщений: 55
Откуда: Минск
Рейтинг сообщения: 0
Извиняюсь за форму в которой изложил(эмоциональность).. ни в коем случае не хотел как упрёк, или что-то там такое.. сами понимаете, столько висеть над прогой, паяльником почём зря тыркать, и узнать, что вся-то проблема вот она! :)... Ну естественно на тех эмоциях я и высказал своё мнение, "какие такие > 1 микросек", когда одну, и ни граммом более! :).
В самом деле извиняюсь.. на самом деле я на позитиве, а резковатая форма от кофе наверное, которым я заправлялся, т.к. делать надо, а глядеть на ту прогу и макетку уже аж тошно было!.

ARV- конечно-же вам спасибо, естественно понимаю что не в вину ему то, что он изложил в русской форме то, что написано о стандрарте интерфейса. ;) ...и это, извиняюсь за невнимательность к очерёдности букофок :oops:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Интерфейс 1-Wire
СообщениеДобавлено: Вт мар 23, 2010 11:37:17 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
я не увидел никакой резкости в ваших постах - так, "щенячий восторг" :) вы меня неверно поняли. но из-за этого восторга вы упустили важные моменты. представьте себе, что будет, если кто-то, вняв вашему указанию "делать 1 микросекунду и не более" для старта тайм-слота, сделает это для своего девайса с 30 метровым экранированным кабелем? микросекундный импульс будет просто сожран емкостью линии и девайс его не увидит вообще! поэтому в стандарте и оговаривается "не менее 1 мкс" или, что то же самое, "1 мкс или более" - предел неявный...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Интерфейс 1-Wire
СообщениеДобавлено: Вт мар 23, 2010 23:55:12 
Открыл глаза

Зарегистрирован: Вт май 01, 2007 12:01:53
Сообщений: 55
Откуда: Минск
Рейтинг сообщения: 0
ARV писал(а):
"не менее 1 мкс" или, что то же самое, "1 мкс или более" - предел неявный...

Звучит многозначительно... Всё-же вы попроситесь у администрации добавить пометку о том, что кое-чьи изыскания показали, что в условиях близких к идеальным(провод сантиметров 15) увеличение этого тайма до 2-х микросекунд, делает НЕВОЗМОЖНЫМ получить отклик от датчика..

Кстати, как вы оцените этот мой аргумент,.. мой датсчик с 8-ю ножками, следовательно предусмотрен для монтажа на платку, и соответственно находится рядом с микроконтролллером, и у его какая-то другая версия 1-виря(вопросом существования иных версия этого интерфейса я не владею..). ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re:
СообщениеДобавлено: Ср мар 24, 2010 00:45:43 
Вымогатель припоя
Аватар пользователя

Карма: 3
Рейтинг сообщений: 4
Зарегистрирован: Сб сен 20, 2008 12:12:30
Сообщений: 525
Откуда: Minsk
Рейтинг сообщения: 0
ctpexhih писал(а):
или мне придется использовать ассемблер?


На ассемблере сейчас никто не пишет. Почти.

Код:
#define Delay_us(x) __delay_cycles(x * FCLK_MHZ)

//---------- Генерация импульса сброса: ----------

bool TReset(void)
{
  char si;
  Port_OWP_0;                  //OWP <- 0
  Delay_us(500);               //delay 500 uS
  si = __save_interrupt();
  __disable_interrupt();       //запрещение прерываний
  Port_OWP_Z;                  //OWP <- 1
  Delay_us(14);                //delay 14 uS
  if(Pin_OWP)                  //если OWP = 0, то ошибка
  {
    Delay_us(52);              //delay 52 uS
    if(!Pin_OWP)               //если OWP = 1, то ошибка
    {
      __restore_interrupt(si); //восстанавление прерываний
      Delay_us(250);           //delay 250 uS
      if(Pin_OWP)              //если OWP = 0, то ошибка
      {
        return(1);             //если ошибок нет, термометр присутствует
      }
    }
  }
  __restore_interrupt(si);     //восстанавление прерываний в случае ошибки
  return(0);
}

//---------- Запись/чтение байта по однопроводной шине: ----------

char TByte(char dat)
{
  char res;
  for(char i = 0; i < 8; i++)
  {
    res = res >> 1;
    if(TBit(dat & 1)) res |= 0x80;
     else res &= ~0x80;
    dat = dat >> 1;
  }
  return(res);
}

//---------- Запись/чтение бита по однопроводной шине: ----------

bool TBit(bool b)
{
  char si;
  si = __save_interrupt();
  __disable_interrupt();       //запрещение прерываний
  Port_OWP_0;                  //OWP <- 0
  Delay_us(2);                 //delay 2 uS
  if(b) Port_OWP_Z;            //bit = 1, OWP <- 1
  Delay_us(13);                //delay 13 uS
  bool owp = Pin_OWP;          //чтение порта
  Delay_us(45);                //delay 45 uS
  Port_OWP_Z;                  //OWP <- 1
  __restore_interrupt(si);     //восстанавление прерываний
  Delay_us(2);                 //delay 2 uS
  return(owp);
}

//---------- Вычисление контрольной суммы: ----------

void Do_Crc8(char b, char *crc)
{
  for(char i = 0; i < 8; b = b >> 1, i++)
    if((b ^ *crc) & 1) *crc = ((*crc ^ 0x18) >> 1) | 0x80;
     else *crc = (*crc >> 1) & ~0x80;
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Интерфейс 1-Wire
СообщениеДобавлено: Вс мар 27, 2011 13:19:03 
Грызет канифоль
Аватар пользователя

Зарегистрирован: Вт фев 16, 2010 12:10:38
Сообщений: 268
Откуда: Воронеж, Россия
Рейтинг сообщения: 0
Уважаемый ARV, попал на Вашу статью http://radiokot.ru/articles/13/ из темы http://radiokot.ru/forum/viewtopic.php?f=20&t=45400 где о ней очень восторженно отзывались.
Обратил внимание на фразу: "После того, как приняты все 8 (обратите внимание - именно 8!) байтов уникального адреса устройства, необходимо проверить содержимое ячейки CRC: ненулевое ее значение свидетельствует о наличии искажения принятых данных. Если же CRC=0 - это значит, что данные приняты без искажений. Если же МК вел передачу уникального адреса устройства, то содержимое CRC должно быть передано 8-ым байтом после предыдущих семи.", и далее только об этом. У неискушенного пользователя складывается впечатление, что CRC необходим только для чтения ROMа и логично делает вывод, а нафига это мне, если у меня только один датчик на отдельном выводе? Поэтому и бурные "доказательства" на форуме о том, что мне и без CRC хорошо, ведь я читаю 5 раз и выбираю среднее и т.п. Подумайте, может все-таки стоит добавить абзац про чтение данных и то, что девайс для каждого конкретного измерения сам вычисляет CRC и передает его девятым байтом? Ну и обсчитывать соответственно придется не 8, а 9 байтов.
П.С.
Удивительно, столько лет провисела без замечаний, похоже CRC никто не считает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Интерфейс 1-Wire
СообщениеДобавлено: Пт апр 01, 2011 00:45:24 
Мучитель микросхем
Аватар пользователя

Карма: -5
Рейтинг сообщений: 0
Зарегистрирован: Пт май 29, 2009 10:14:29
Сообщений: 402
Рейтинг сообщения: 0
IM1 писал(а):
... что девайс для каждого конкретного измерения сам вычисляет CRC и передает его девятым байтом? Ну и обсчитывать соответственно придется не 8, а 9 байтов.

О как раз вопрос который мне бы хотелось прояснить. Т.е. скажем так. У меня в железе собран эмулятор ключа DS2413.
Первое. Пока не посунул в эмулятор серийник с правильно подсчитаным CRC, программа ONEWAREVIEVER ( это фирменная Даласовская) его не увидела. Теперь видит очень даже устойчиво.
Второе. Мой эмулятор выдает все время одно и то же значение состояния ключей. Реальное железо реагирует нормально. ( к слову в Протеусе все работает ). Так вот собственно вопрос? Скажем реакция программы на состояние ключей ( прием информации ) так же осуществляется с подсчетом CRC? Т.е. серийник мне понятно,посчитал СRC ? сравнил совпало или ноль дальше. А вот следующий обмен? Ведомый передает какие то команды, принимает ответы, в этом периоде работы надо подсчитывать CRC? Если да то чего?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Интерфейс 1-Wire
СообщениеДобавлено: Пт апр 01, 2011 08:20:52 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
вам надо изучить протокол работы DS2413 - там будет написано, когда и по каким командам что передается, с CRC или без... кстати, для прошивки "адресов" в эмуляторы и т.п. вычислений CRC по далласовскому алгоритму я сделал утилитку, надеюсь, вам пригодится: http://arv.radioliga.com/content/view/225/38/

P.S. замечание по поводу количества считанных байт - признаю, ошибка. честно говоря, т.к. для себя тему общения по 1-wire закрыл давным-давно, написав все необходимые низкоуровневые библиотеки, то статьи не перечитывал сто лет и даже думать про это перестал. текст в статье может изменить администрация, если сочтет необходимым.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 69 ]  1, , ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y