реклама на сайте
подробности

 
 
> 1-Wire без программных задержек, реализация 1-WIRE без программных задержек
Михаил3
сообщение Dec 17 2014, 10:48
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 1-11-07
Из: киев
Пользователь №: 31 963



Всем Доброго времени суток!
Нужна помощь в реализации обмена с датчиком температуры DS18B20 без использования конструкций типа:
while (480 мкс) {ничего не делать};
есть таймер, двунаправленный порт с открытым коллектором, контроллер прерываний и проц 51 с тактовой 32 Мгц.
Вопрос: что со всем этим делать)))?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kolobok0
сообщение Dec 18 2014, 01:54
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Михаил3 @ Dec 17 2014, 13:48) *
...51 с тактовой 32 Мгц.Вопрос: что со всем этим делать)))?


программировать, что же ещё то?
Отлично работает на 51 тактовая 24, внутренняя 2мГц. куча датчиков 1wire (практически ограничение - кол-во ног),
сканирование менее секунды, по всем датчикам. ногодрыг. отдельный таймер. конечный автомат с загрузкой адресса перехода при отработке.
если сильно присмотритесь к протоколу - то увидите что точность тайм-аута необходимо выдержать только между синхро импульсом начала слота
на чтении и записи. всё остальное настолько большие интервалы для ваших частот - что без проблем, вместе с ослинными ушами прячется
любой слон.
Go to the top of the page
 
+Quote Post
Михаил3
сообщение Dec 18 2014, 09:04
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 1-11-07
Из: киев
Пользователь №: 31 963



Цитата(kolobok0 @ Dec 18 2014, 03:54) *
программировать, что же ещё то?
Отлично работает на 51 тактовая 24, внутренняя 2мГц. куча датчиков 1wire (практически ограничение - кол-во ног),
сканирование менее секунды, по всем датчикам. ногодрыг. отдельный таймер. конечный автомат с загрузкой адресса перехода при отработке.
если сильно присмотритесь к протоколу - то увидите что точность тайм-аута необходимо выдержать только между синхро импульсом начала слота
на чтении и записи. всё остальное настолько большие интервалы для ваших частот - что без проблем, вместе с ослинными ушами прячется
любой слон.

слон прячется - носорог вылазит. весь обмен с датчиком нужно запихивать в прерывание или ПДП. по ПДП не очень понятно как дергать одной ногой, а не всеми (порт 8 ног в разном состоянии вход-выход)
конечный автомат в прерывании по таймеру для меня пока сложноосмысливаемая штука... таймслот стека 320 мкс короче одного сброса датчика - 480.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Dec 18 2014, 17:55
Сообщение #4


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Михаил3 @ Dec 18 2014, 12:04) *
... по ПДП не очень понятно как дергать одной ногой, а не всеми (порт 8 ног в разном состоянии вход-выход)...таймслот стека 320 мкс


1) пдп вроде как должен настраиваться по ножкам конкретно (какие выводятся). согласитесь - пдп с выводом в порт не имел бы смысла,
если бы не имел селективность по конкретным пинам. далее - думаю надо смотреть конкретный МК и конкретные примеры счупать.

2) тайм слот (тот который критичен) это между строб импульс при формировании одного бита. эти величины около 2-6 мкс.
Что при указанных скоростях можно поддержать без труда. а 320 или там 480мс - то уже не принципиальные тайм ауты. т.е.
плюс-минус пару десятков микросекунд - Вас никто не расстреляет. поверьте дураку. дальше рекомендую вкуривать
мануалы по 1Wire и построить рыпку пример для более уверенного понимания нижнего уровня. Только финально тестируйте
на длинных кабелях > 20 метров. тайм-ауты выпрямите получше. с осцилом завалы видны хорошо в линии. так-же рекомендую
потестировать с помощью рашпель-метода постановки помех. так-же софт отшлифуете. в боевом варианте у вас потом будет как танк
по пром зонам и на десятки метров...
Go to the top of the page
 
+Quote Post
Михаил3
сообщение Dec 18 2014, 18:30
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 1-11-07
Из: киев
Пользователь №: 31 963



Цитата(kolobok0 @ Dec 18 2014, 19:55) *
1) пдп вроде как должен настраиваться по ножкам конкретно (какие выводятся). согласитесь - пдп с выводом в порт не имел бы смысла,
если бы не имел селективность по конкретным пинам. далее - думаю надо смотреть конкретный МК и конкретные примеры счупать.

2) тайм слот (тот который критичен) это между строб импульс при формировании одного бита. эти величины около 2-6 мкс.
Что при указанных скоростях можно поддержать без труда. а 320 или там 480мс - то уже не принципиальные тайм ауты. т.е.
плюс-минус пару десятков микросекунд - Вас никто не расстреляет. поверьте дураку. дальше рекомендую вкуривать
мануалы по 1Wire и построить рыпку пример для более уверенного понимания нижнего уровня. Только финально тестируйте
на длинных кабелях > 20 метров. тайм-ауты выпрямите получше. с осцилом завалы видны хорошо в линии. так-же рекомендую
потестировать с помощью рашпель-метода постановки помех. так-же софт отшлифуете. в боевом варианте у вас потом будет как танк
по пром зонам и на десятки метров...

длинные линии, помехи, осциллографы как для человека с радиотехническим образованием (меня) совершенно родные вещи, а датчик планируется для измеренияя температуры в домике в деревне как внутри так и снаружи, по результатам управляем теплым полом и электроотоплением (зима на дворе). максимальная длина шлейфа датчиков - метра полтора. остальное принял к исполнению.. изучаю нижний уровень. спасибо
Go to the top of the page
 
+Quote Post
Мур
сообщение May 11 2015, 14:44
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 815
Регистрация: 7-06-06
Из: Харьков
Пользователь №: 17 847



Ребята!
Нигде не могу найти информацию об очередности передачи бит. Старшими вперед или младшими идет передача\прием?
Go to the top of the page
 
+Quote Post
Smoky
сообщение May 11 2015, 15:39
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135



Цитата(Мур @ May 11 2015, 20:44) *
Ребята!
Нигде не могу найти информацию об очередности передачи бит. Старшими вперед или младшими идет передача\прием?


Все данные и команды передаются младшим битом вперёд.


--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Михаил3   1-Wire без программных задержек   Dec 17 2014, 10:48
- - megajohn   а UARTа лишнего нет ? А то можно и на нем eng rus   Dec 17 2014, 11:06
- - Lmx2315   http://we.easyelectronics.ru/STM32/stm32-1-wire-dm...   Dec 17 2014, 11:06
|- - MrYuran   Цитата(Lmx2315 @ Dec 17 2014, 15:06) ..во...   Dec 17 2014, 11:10
- - Сергей Борщ   Цитата(Михаил3 @ Dec 17 2014, 12:48) есть...   Dec 17 2014, 11:14
|- - Михаил3   Цитата(Сергей Борщ @ Dec 17 2014, 13:14) ...   Dec 17 2014, 12:06
|- - Сергей Борщ   Цитата(Михаил3 @ Dec 17 2014, 14:06) тайм...   Dec 17 2014, 13:12
- - _pv   это еще надо чтобы ДМА было, а то у МК на 51 ядре ...   Dec 17 2014, 13:32
|- - Михаил3   Цитата(_pv @ Dec 17 2014, 15:32) это еще ...   Dec 17 2014, 13:52
|- - Сергей Борщ   Цитата(Михаил3 @ Dec 17 2014, 15:52) Там ...   Dec 17 2014, 14:28
- - Эдди   Я делал на таймере для STM8, но там все равно дерь...   May 11 2015, 16:31


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 09:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01471 секунд с 7
ELECTRONIX ©2004-2016