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

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


Ответить

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

Ср июн 01, 2011 23:03:10

ууу.....ет складно для студента, которому надо всего то сдать лабораторку по микропроцесорах. не знаю: правильно я подключил на рис. - но надо такое простое задания решить: типа того, как считать серийной номер етого ds17.. или какие-то подпрограмки запису-чтения 1, 0 - подобно my last post.
Вложения
23468796.jpg
(91.12 KiB) Скачиваний: 510
maket_1wire.rar
(11.06 KiB) Скачиваний: 360

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

Ср июн 01, 2011 23:08:43

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

а где там код на ассемблере, так и не нашел???

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

Чт июн 02, 2011 07:11:25

ascentman писал(а):а где там код на ассемблере, так и не нашел???
ну и студенты нынче пошли... в трех соснах заблудился - и на весь мир кричать о помощи...

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

Чт июн 02, 2011 08:23:34

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

Студент?!:shock: Предложения не согласованы, ошибок больше чем слов. Ну, уважаемый , насмешил так насмешил..

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

Чт июн 02, 2011 11:12:53

Ранее я кидал ссылку на книгу. Там все подробно описано, есть готовые примеры ПО, включая запись 0 и 1.
Вы сначала рассберитесь с тем как вам советуют, и только потом задавайте новые вопросы.

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

Пт ноя 02, 2012 10:49:24

Извините вопрос перенес.

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

Ср ноя 26, 2014 06:57:04

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

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

может кто то делал что то подобное, помогите

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

Ср ноя 26, 2014 07:20:56

Сдаётся мне, что вопрос к сабжу не имеет никакого отношения. :roll:
И кстати, что за безумная идея связывать два контроллера по Ван-Вайеру?

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

Ср ноя 26, 2014 07:55:20

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

а есть предложение как по одному проводу данные передать другим способом?

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

Чт ноя 27, 2014 07:10:43

invisible86 писал(а):как по одному проводу данные передать
Например, обычным UART'ом.

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

Чт фев 19, 2015 22:26:34

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

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

Сб фев 21, 2015 12:02:26

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

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

Чт фев 26, 2015 20:45:37

Что же продолжу монолог. Разобрался уже и с CRC, и с передачей байтов, и с прочей хитростью. Вот дошел до того, что нужно было. Считываю температуру с любого нужного мне датчика (!, во блин достижение то). Но процесс считывания с одного - около 3,5 с. А у меня их будет как минимум 10 (это - 35 сек на одно обновление. Согласитесь, как то не очень гуд). Вот теперь подумываю как бы его "синхронизировать" Гадаю как? Потоки в Delphi относительно команд? Кто как с этим боролся, и как решалось?

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

Пт фев 27, 2015 09:11:17

процесс считывания с одного - около 3,5 с
чёт хуйня какая-то. Потому и остальным пох на ваши потуги.

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

Пт фев 27, 2015 10:39:35

Что же, крайне интересная позиция. Надеюсь такой взгляд и отношение на этом форуме имеете только Вы. К тому же мне кажется, что не стоит столь критично отзываться на чужие вопросы, этим можно показать только свою культуру.

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

Пн мар 02, 2015 21:26:27

И так, отпишусь о проделанном и осмысленном. 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). Как то так. Осталось запустить цикл чтения в потоке, и цель вроде как выполнена. спасибо за внимание.

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

Вт мар 03, 2015 09:05:09

Shyrik27 писал(а):удалось снизить время на чтение одного датчика с 3,5с до 1с (в принципе это около минимума возможного)
Конкретно чтение температуры после преобразования reset/match rom/read scartchpad занимает около 14 мс. Если у вас все датчики делают преобразование температуры одновременно (судя по skip rom/convertt t), непонятно на что у вас уходит 1 с на чтение одного датчика.

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

Вт мар 10, 2015 07:54:23

Gudd-Head писал(а):непонятно на что у вас уходит 1 с на чтение одного датчика
Видимо, на последовательный подсчёт CRC. :)

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

Вт мар 10, 2015 11:15:56

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

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

Вт мар 10, 2015 12:05:00

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