Интерфейс 1-Wire

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
ascentman
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Вс май 29, 2011 16:04:41

Re: Интерфейс 1-Wire

Сообщение ascentman »

ууу.....ет складно для студента, которому надо всего то сдать лабораторку по микропроцесорах. не знаю: правильно я подключил на рис. - но надо такое простое задания решить: типа того, как считать серийной номер етого ds17.. или какие-то подпрограмки запису-чтения 1, 0 - подобно my last post.
Вложения
23468796.jpg
(91.12 КБ) 556 скачиваний
maket_1wire.rar
(11.06 КБ) 398 скачиваний
Аватара пользователя
ascentman
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Вс май 29, 2011 16:04:41

Re: Интерфейс 1-Wire

Сообщение ascentman »

ARV писал(а):давным-давно я публиковал этот проект: http://arv.radioliga.com/content/view/29/44/ к нему прилагались несколько библиотечек на ассемблере... думаю, вам подойдет

а где там код на ассемблере, так и не нашел???
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: Интерфейс 1-Wire

Сообщение Мастер Ломастер »

ascentman писал(а):а где там код на ассемблере, так и не нашел???
ну и студенты нынче пошли... в трех соснах заблудился - и на весь мир кричать о помощи...
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
nsl2004
Мучитель микросхем
Сообщения: 402
Зарегистрирован: Пт май 29, 2009 10:14:29

Re: Интерфейс 1-Wire

Сообщение nsl2004 »

ascentman писал(а):ууу.....ет складно для студента, которому надо всего то сдать лабораторку по микропроцесорах. не знаю: правильно я подключил на рис. - но надо такое простое задания решить: типа того, как считать серийной номер етого ds17.. или какие-то подпрограмки запису-чтения 1, 0 - подобно my last post.

Студент?!:shock: Предложения не согласованы, ошибок больше чем слов. Ну, уважаемый , насмешил так насмешил..
shkarbatov
Родился
Сообщения: 19
Зарегистрирован: Сб апр 23, 2011 14:23:38

Re: Интерфейс 1-Wire

Сообщение shkarbatov »

Ранее я кидал ссылку на книгу. Там все подробно описано, есть готовые примеры ПО, включая запись 0 и 1.
Вы сначала рассберитесь с тем как вам советуют, и только потом задавайте новые вопросы.
EmDmAl
Открыл глаза
Сообщения: 51
Зарегистрирован: Чт мар 22, 2012 09:14:18
Откуда: Липецк

Re: Интерфейс 1-Wire

Сообщение EmDmAl »

Извините вопрос перенес.
invisible86
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Вт сен 11, 2012 07:09:52

Re: Интерфейс 1-Wire

Сообщение invisible86 »

Коты помогите, нужно связать два мк pic16f84a по 1-wire, те к примеру передать с мк на мк значение температуры считанной с датчика DS1820, тоторое хранится к примеру в переменной t.

уточню немного суть, программы пишу и компилирую в среде mikroC fo pic, там имеется даже пример для датчика ds1820, который легко повтирить. а вот как используя их команды из библиотеки передавать с контроллера на контроллер до меня не доходит.

может кто то делал что то подобное, помогите
Smen
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Re: Интерфейс 1-Wire

Сообщение Smen »

Сдаётся мне, что вопрос к сабжу не имеет никакого отношения. :roll:
И кстати, что за безумная идея связывать два контроллера по Ван-Вайеру?
invisible86
Первый раз сказал Мяу!
Сообщения: 33
Зарегистрирован: Вт сен 11, 2012 07:09:52

Re: Интерфейс 1-Wire

Сообщение invisible86 »

наверно я такой безумный :write:

а есть предложение как по одному проводу данные передать другим способом?
Smen
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Re: Интерфейс 1-Wire

Сообщение Smen »

invisible86 писал(а):как по одному проводу данные передать
Например, обычным UART'ом.
Shyrik27
Родился
Сообщения: 7
Зарегистрирован: Чт фев 19, 2015 22:03:42

Re: Интерфейс 1-Wire

Сообщение Shyrik27 »

Здравствуйте. Хочу немного поживится умом-разумом. Пишу маленько программу для чтения температуры с >2 термометров DS 18B20. Есть код семейства, серийный номер (все в 16). Первой стоит проблема в вычисление CRC. Использую процедуру со статьи. На выходе получаю CRC в виде от 1 до (как мне кажется) 256. Так понимаю бинарное в десятичном представлении. (верно?) следовательно его нужно переобразовать в двоичную систему, и поставить в конец передаваемой строки (верно?). Дальше вопрос: в CRC передаю байты в обратном порядке (в порядке передачи) то есть если я сначала переобразовываю в бинарный вид код семейства, затем ID датчика (тоже разворачивать?).
Итого я наметил алгоритм:
1 перевожу код семейства в бинарный
2 - перевожу ID датчика в бинарный
3 - разворачиваю бинарный ID код датчика (по байтно)
4 передаю в CRC код семейства затем побайтно ID код девайса
5 после вычисления CRC переобразовываю его в бинарный вид и ставлю в хвост
6 согласно алгоритму (ресет/матч) - передаю: семейство>6 байт ID > CRC
Все ли так? Просто в голове уже каша, вот решил еще добавить "соли", да и темку "апнуть".
Shyrik27
Родился
Сообщения: 7
Зарегистрирован: Чт фев 19, 2015 22:03:42

Re: Интерфейс 1-Wire

Сообщение Shyrik27 »

Снова. Здравствуйте. Кто может ответить на вопрос связанный с вычислением CRC. Вопрос таков. Имею полученый код семейства (28h) и серийный номер устройства (допустим 00000001b81c (тоже в h)). на вычисление CRC перевожу код семейства (28h) в бинарный вид (00101000) и таким же самым образом перевожу ID (начинаю с 1С = 00011100). Вычисление провожу в паскале, подстановкой в таблицу (все по производителю). Так вот вопрос (!) в CRC я передаю байт в каком виде: 16 или бинарном, и в каком порядке: прямом (00101000), или обратном (00010100)? И какое число я получаю на выходе? десятичное или 16? Заранее благодарен
Shyrik27
Родился
Сообщения: 7
Зарегистрирован: Чт фев 19, 2015 22:03:42

Re: Интерфейс 1-Wire

Сообщение Shyrik27 »

Что же продолжу монолог. Разобрался уже и с CRC, и с передачей байтов, и с прочей хитростью. Вот дошел до того, что нужно было. Считываю температуру с любого нужного мне датчика (!, во блин достижение то). Но процесс считывания с одного - около 3,5 с. А у меня их будет как минимум 10 (это - 35 сек на одно обновление. Согласитесь, как то не очень гуд). Вот теперь подумываю как бы его "синхронизировать" Гадаю как? Потоки в Delphi относительно команд? Кто как с этим боролся, и как решалось?
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Интерфейс 1-Wire

Сообщение Gudd-Head »

процесс считывания с одного - около 3,5 с
чёт хуйня какая-то. Потому и остальным пох на ваши потуги.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Shyrik27
Родился
Сообщения: 7
Зарегистрирован: Чт фев 19, 2015 22:03:42

Re: Интерфейс 1-Wire

Сообщение Shyrik27 »

Что же, крайне интересная позиция. Надеюсь такой взгляд и отношение на этом форуме имеете только Вы. К тому же мне кажется, что не стоит столь критично отзываться на чужие вопросы, этим можно показать только свою культуру.
Shyrik27
Родился
Сообщения: 7
Зарегистрирован: Чт фев 19, 2015 22:03:42

Re: Интерфейс 1-Wire

Сообщение Shyrik27 »

И так, отпишусь о проделанном и осмысленном. 1. удалось снизить время на чтение одного датчика с 3,5с до 1с (в принципе это около минимума возможного) и того 10 датчиков - 10с-9с. Для меня это вполне приемлемо. Как. 1. - были дублированы задержки функции и после функции (так как функция скрыта в библиотеке). 2. Была изменена структура считывания температуры (вместо reset/match rom/convertt t/reset/match rom/read scartchpad было использовано: reset/skip rom/convertt t/reset/match rom/read scartchpad). Как то так. Осталось запустить цикл чтения в потоке, и цель вроде как выполнена. спасибо за внимание.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Интерфейс 1-Wire

Сообщение Gudd-Head »

Shyrik27 писал(а):удалось снизить время на чтение одного датчика с 3,5с до 1с (в принципе это около минимума возможного)
Конкретно чтение температуры после преобразования reset/match rom/read scartchpad занимает около 14 мс. Если у вас все датчики делают преобразование температуры одновременно (судя по skip rom/convertt t), непонятно на что у вас уходит 1 с на чтение одного датчика.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Smen
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Re: Интерфейс 1-Wire

Сообщение Smen »

Gudd-Head писал(а):непонятно на что у вас уходит 1 с на чтение одного датчика
Видимо, на последовательный подсчёт CRC. :)
Аватара пользователя
Хатуль_мадан
Электрический кот
Сообщения: 1004
Зарегистрирован: Ср мар 03, 2010 11:48:00
Откуда: Уфа

Re: Интерфейс 1-Wire

Сообщение Хатуль_мадан »

Жуть какая-то. Время на общение с 1 датчиком (со skip rom) уходит менее 20мС, даже если ожидать время обработки прерываний на индикацию. Все остальное время около 1Сек просто тупо ждем, пока датчик совершит очередное преобразование, или можно занять его еще чем-либо. На 10 датчиков думаю время на опрос увеличится до 0,5С примерно, добавится обращение к датчикам по их коду, ну ни как не несколько секунд.
Вот пример с 1 датчиком, зеленый - 1-Wire:
http://img.radiokot.ru/files/19962/lgkm1eslo.png
Shyrik27
Родился
Сообщения: 7
Зарегистрирован: Чт фев 19, 2015 22:03:42

Re: Интерфейс 1-Wire

Сообщение Shyrik27 »

Хатуль_мадан писал(а):Жуть какая-то.
Вот это уже существенное замечание. Но как же тот факт, что процедура RESET длится >480 us? А мне нужно перед опросом каждого датчика послать MatchROM (следовательно сначала Reset) или тупо посылаем matchrom/read/match rom/read/ Я немного уже позабыл как там код выглядит ((отложил на недельку дабы другие дела подогнать да голову освежить) сегодня гляну и начну экспериментировать более активно, если вы все так уверены в том, что можно достичь (небывалых для моего воображения) <1c на 10 датчиков.
Ответить

Вернуться в «Статьи»