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

 
 
> 1-wire slawe на МК, у кого такое получилось?
Шалапут:-)
сообщение Nov 27 2008, 15:05
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 52
Регистрация: 11-01-07
Пользователь №: 24 303



Всем доброе время суток!
Пытаюсь сделать подобие 1-wire сети на МК.
С реализацией Ведущего проблем не возникло, он успешно генерит ресет импульс, и таймслоты тоже, и считывать всё тоже умеет.
Но проблема возникла с Ведомым. В интернете всего полно по реализации ведущего, и "кот наплакал" про Ведомого. за то есть много документации о том, как должны себя вести ведомые устройства в сети.
Решил придельно упростить интерфейс до такого:

1) Мастер:отправляет ресет импульс
2) Ведомый: отправляет импульс присутствия
3) Мастер: Проверяет, отправил ли кто то импульс присутствия?, если нет, к п.1
4) Мастер: генерит начало таймслота, переменная BIT_COUNT_M=0;
5) Ведомый: после начала слота опускает линию, или оставляет в лог "1"
6) Мастер: ждет малость и считывает значение с шины, записывая его. BIT_COUNT_M=BIT_COUNT_M+1
7) Ведомый: ждет и отпускает линию
8) Мастер: Если BIT_COUNT_M<8 переход к см. п 4, иначе, отпускаем линию и возвращаем значение

Т.е. как видим, мастер просто оправшивет устройство.
Но ведомый иногда не распознаёт начала тайм слота, а ресет импульс - один из трёх раз.
Частота ошибок при передаче данных, примерно 1 бит на 10 байт.
Почему так? как устранить это?

Вся программа ведомого работает в обработчике таймера, который работает с периодом 10 мкс,
Связываю две ATmega-16, использую АВР студию 4.14 билд 589, GCC компилятор 20080610.
Для опускания шины в ведомом использую _delay_us().

На графиках видно, о чем я говорю...
Может, кто то сталкивался с подобным? Помогите, плиз)
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
Роботы делают роботов - предел автоматизации
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
QuickWitted
сообщение Mar 28 2009, 17:08
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 21-06-07
Из: СНГ
Пользователь №: 28 596



Цитата(Шалапут:-) @ Nov 27 2008, 20:05) *
Пытаюсь сделать подобие 1-wire сети на МК.


Раз подобие и самостоятельно не всё получается, то можно
посмотреть в сторону описания готовых систем...
например DISEqC
в 3 версии у него даже мультимастер зарезервирован...
(я не предлагаю именно его, но может натолкнёт на удачную мысль...)


Цитата(MrYuran @ Nov 28 2008, 14:52) *
RxD мастера подтянуть к "1", а TxD слэйвов подключать только при необходимости ответа.
Кстати, если подумать, можно это всё и по одной линии сделать.Получится 1-Wire-UART


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

или описание готового посмотреть...
(MIDI по моему как раз на 1-Wire-UART)


--------------------
Сайт с разработками http://www.mindrunway.ru/
Go to the top of the page
 
+Quote Post
asket
сообщение Oct 3 2009, 11:23
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 91
Регистрация: 24-08-06
Из: Москва
Пользователь №: 19 809



господа! Подскажите есть ли готовые решения моста 1 wire-slave to serial interface? а то на сайте maxim-ic.com представлены только на стороне ведущего, а мне надо чтобы по ван вайре можно было передавать информацию для МК, slave писать я так понял муторно. У меня в голове есть только идеи использовать либо DS2408, через параллельный интерфейс загружать байты на Мк, либо через DS2406 по двум проводам через i2c, но опять же с программкой на стороне ведущего получается геморой, код громоздкий а скорость маленькая. Есть идеи или предложения по этому поводу, буду благодарен за любой ответ.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Oct 3 2009, 21:48
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(asket @ Oct 3 2009, 14:23) *
... slave писать я так понял муторно...

Да нечуть не муторно. И ничуть не сложнее чем мастера написать. Берёшь диаграмму, смотришь времянки и пишешь неторопясь. Думаю день, ну максимум 2 займёт. Учитывая, что стоимость максимов недетская, то я бы как раз лучше какую-нибудь тиньку и поставил.
Думаю что и питание на малой частоте вполне бы потянула. В смысле по 2 проводам обеспечить можно попробовать. Конечно шина не очень удобная, на мой взгляд. Особенно для каких-то сетевых применений или обмена. Скорее она предназначена для подключения "на горячую". Обратите внимание, что слэйв при первом подключении формирует пресенс. То есть обозначает своё подключение. Другое дело, что это редко используется. Обычно полингом мастер определяет слейв.

Из медленных несинхронных шин, для обмена я бы выбрал I2C. Преимущества - статическая. А это значит необременяет устройства формированием диаграмы. Слэйв правда тоже не из лёгких, но наличие аппаратной поддержки во многих контроллерах - значительно упрощает использование.

PS: По поводу 1-wire:
1. Используете ногу прерывания и таймер.
2. Ловите прерывание на ноге.
3. По началу импульса - формируете диаграмму по таймеру, тем же способом что и у мастера.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Шалапут:-)   1-wire slawe на МК   Nov 27 2008, 15:05
- - aaarrr   Для реализации 1W slave у МК должна быть быстрая р...   Nov 27 2008, 15:17
|- - Шалапут:-)   Цитата(aaarrr @ Nov 27 2008, 17:17) Для р...   Nov 28 2008, 08:44
|- - aaarrr   Цитата(Шалапут:-) @ Nov 28 2008,...   Nov 28 2008, 08:50
|- - Шалапут:-)   Цитата(aaarrr @ Nov 28 2008, 10:50) Увели...   Nov 28 2008, 10:28
|- - xemul   Цитата(Шалапут:-) @ Nov 28 2008,...   Nov 28 2008, 11:30
|- - Шалапут:-)   Цитата(xemul @ Nov 28 2008, 13:30) А ванв...   Nov 28 2008, 14:51
|- - Denis R. Akimov   У меня та же самая проблема. Пытаюсь строить 1-wir...   Mar 18 2009, 14:26
- - MrYuran   Основная фича 1-wire это питание слэйва через сигн...   Nov 28 2008, 09:52
|- - asket   Цитата(SasaVitebsk @ Oct 4 2009, 01:48) Д...   Oct 4 2009, 19:40
|- - rezident   Цитата(asket @ Oct 5 2009, 01:40) Мне это...   Oct 4 2009, 19:48
|- - SasaVitebsk   Цитата(rezident @ Oct 4 2009, 22:48) Для ...   Oct 5 2009, 16:32
|- - asket   У нас CAN используется в качестве магистральной ши...   Oct 6 2009, 08:54
- - Rst7   Цитатаи мало того на 1 wire висят исполнительные у...   Oct 6 2009, 10:14
- - asket   Цитата(Rst7 @ Oct 6 2009, 14:14) И много ...   Oct 6 2009, 17:25
- - e-serg   Цитата(Rst7 @ Oct 6 2009, 19:14) И много ...   Nov 5 2009, 11:38


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

 


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


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