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

 
 
> поиск устройств 1-wire с использованием акселератора
_3m
сообщение Sep 29 2010, 14:30
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Пытаюсь запустить поиск устройств 1-wire с использованием акселератора аналогичного имеющимся в DS2480, DS1WM, блоке 1-wire в MAXQ2000.
Использую алгоритм из максимовского AN192.
Он даже как-то работает, однако находит не все устройства когда их много.
Когда устройств мало, например 10 - находит все. Если добавлять еще больше -видит только часть, при этом ошибок CRC НЕ ВОЗНИКАЕТ.
Если добавляю еще устройства на длинном кабеле то появляются ошибки CRC, это нормально - емкость и сопротивление кабеля уже зашкаливают.

Все устройства у меня однотипные на базе DS2438.

Порекомендуйте любые способы чтобы определить причину такой странной ситуации с поиском устройств. Ну не понимаю я почему отсутствуют сбои CRC но поиск глючит.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Deka
сообщение Sep 29 2010, 16:07
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



Может быть посмотреть форму сигнала и заодно его времянки скопом?
Go to the top of the page
 
+Quote Post
_3m
сообщение Sep 29 2010, 18:02
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(Deka @ Sep 29 2010, 20:07) *
Может быть посмотреть форму сигнала и заодно его времянки скопом?

Смотрел. К таймингам мастера претензий нет (VHDL код в кремнии тайминги формирует качественно). Ответы девайсов оценить трудно так как они плавающие. Попробую этим заняться.
С уровнями сложнее. Смотрел на стороне мастера. Мастер железно просаживает линию в ноль а девайсы до нуля не дотягивают причем чем дальше в линии расположен девайс тем хуже выдаваемый им ноль. Тем не менее уровень вписывается в допустимый для лог. "0". Уровень 1 почему то ни на что не влияет. Включение или отключение активного pull-up (у меня он предусмотрен) влияет только на форму сигнала на оциллоскопе а на функционировании устройства не сказывается. N девайсов работают а N+1 глючат независимо от наличия активной подтяжки на +.
Форму сигнала на стороне девайсов еще не смотрел, руки не дошли.
Заметил "звон" в линии.
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Sep 29 2010, 18:33
Сообщение #4


Знающий
****

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



Цитата(_3m @ Sep 29 2010, 22:02) *
Смотрел. К таймингам мастера претензий нет (VHDL код в кремнии тайминги формирует качественно). Ответы девайсов оценить трудно так как они плавающие. Попробую этим заняться.
С уровнями сложнее. Смотрел на стороне мастера. Мастер железно просаживает линию в ноль а девайсы до нуля не дотягивают причем чем дальше в линии расположен девайс тем хуже выдаваемый им ноль. Тем не менее уровень вписывается в допустимый для лог. "0". Уровень 1 почему то ни на что не влияет. Включение или отключение активного pull-up (у меня он предусмотрен) влияет только на форму сигнала на оциллоскопе а на функционировании устройства не сказывается. N девайсов работают а N+1 глючат независимо от наличия активной подтяжки на +.
Форму сигнала на стороне девайсов еще не смотрел, руки не дошли.
Заметил "звон" в линии.


А Вы смотрели http://www.maxim-ic.com/app-notes/index.mvp/id/187??? В нашей системе до 16 устройств на шине, все находятся без проблем с пассивной подтяжкой 10кОм.
Go to the top of the page
 
+Quote Post
_3m
сообщение Sep 30 2010, 03:55
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Цитата(DmitryM @ Sep 29 2010, 22:33) *

Я работаю в по максимовскому Application Note 192. Алгоритм поиска там - тот же 187, вид сбоку.
Цитата
В нашей системе до 16 устройств на шине, все находятся без проблем с пассивной подтяжкой 10кОм.

Звучит как фантастика.
Какая у вас длина и емкость кабеля ?
У меня пассивная подтяжка 2,2К если включена только она то переходы 0->1 при 10 устройствах выглядит в стиле "ужос-ужос". Фронты сильно завалены. Сегодня измерю емкость моего кабеля.
Go to the top of the page
 
+Quote Post
_3m
сообщение Sep 30 2010, 13:32
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 745
Регистрация: 28-12-06
Пользователь №: 23 960



Продолжу.
доработал схему: активную подтяжку и другие мелочи.
Выяснил что когда слэйвов много на длинных кабелях не находится физически ближайшее к мастеру устройство. Удаленные находятся включая оконечное.
Заменил штатные кабели длиной 3-5м на каждый слэйв на отрезки по 5 см. Заработало как часы.
Стал разбираться что портит кабель. Подключал поочередно длинные отрезки вместо коротких и контролировал осциллографом сигнал.

Конфигурация у меня такая:
М - мастер
С - слэйв
- кабель длиной 3-5м
М-С1-С2-С3-...-С10-С11

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

-

-


Амплитуда выброса находятся значительно выше уровня лог. нуля для DS2438 а длительность близка к Trec. Таким образом ближайший к мастеру слэйв может воспринять выброс как начало следующего бита, что приведет к сбою. Это особенно критично именно при поиске когда после инверсии слэйв принимает бит решения.

Теперь бы придумать как обойти данный эффект.
Go to the top of the page
 
+Quote Post
DmitryM
сообщение Sep 30 2010, 19:02
Сообщение #7


Знающий
****

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



Цитата(_3m @ Sep 30 2010, 17:32) *
В итоге выявил нехороший момент:
когда мастер читает данные и самый дальний слэйв висящий на длинном проводе выдает "0" просаживая линию в ноль на стороне мастера возникает выброс. почему возникает выброс понятно: индуктивность длинной линии. иллюстрации на модели

Амплитуда выброса находятся значительно выше уровня лог. нуля для DS2438 а длительность близка к Trec. Таким образом ближайший к мастеру слэйв может воспринять выброс как начало следующего бита, что приведет к сбою. Это особенно критично именно при поиске когда после инверсии слэйв принимает бит решения.


Посмотрите http://www.maxim-ic.com/app-notes/index.mvp/id/3829. Там нет времен порядка 1-2мкс. Что приведено на осциллограммах?? Время корректное??
Go to the top of the page
 
+Quote Post



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

 


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


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