Страница 1 из 5

Сколько DS18B20 может обслужить Atmega16

Добавлено: Вт мар 31, 2009 22:17:59
lkote68
Подскажите кто знает почему во многих исходниках MAXDEVICES = 8 это как то связано с нагрузочной способностью вывода?
И еще это же наверное расточительно юзать такой чип чтобы опросить датчики только на одном выводе. Есть ли у кого то опыт ну скажем по завешиванию датчиками всех выводов одного порта? Хорошо бы если бы этот опыт выражался на С :-)) А то надо быстро разобраться На асме я думаю такое реализовать можно.

Добавлено: Вт мар 31, 2009 22:54:04
ps1x
Насколько мне известно, очень много. Правда наверняка есть ограничение при паразитном питании.

Добавлено: Вт мар 31, 2009 23:30:50
Yellow Tiger
Повидимому, нагрузочные возможности порта I/O - единственное ограничение, так как протокол позволяет подцепить хоть все возможные девайсы сразу - их серийники и коды семейств при этом займут 56 бит (64 пета-штук отдельных устройств, однако!). :))) Смеха ради можно придумать еще одно ограничение - по длине 1-wire шины, ведь все устройства имеют, пусть малые, но ненулевые размеры - разместить 64 петаштуки вдоль шины и не превысить предельную её длину врядли получится. Изображение
Во время переклички все девайсы будут отвечать на команду поиска хором - отсюда и ограничения по току.
У Далласа есть апнот №187 с алгоритмом поиска подключенных к шине 1-wire устройств - думаю, он будет полезен в данном случае. ("1-Wire Search Algorithm", AN187.pdf)
Есть еще у Далласа и сетевые узлы для 1-wire сетей - по протоколу они вроде бы не нужны, так может они как раз для преодоления нагрузочных ограничений существуют? Самому мне с 1-wire сетями сталкиваться не приходилось, но на сайте Далласа видел статьи об этом, может их почитать, если нужно детальное понимание этой области?

Добавлено: Ср апр 01, 2009 07:11:56
ARV
да бредовый это вопрос, от непонимания собственых желаний... ограничение в 8 девайсов обычно имеется во всяких CVAVR-визардах, и, оевидно, это связано с тем, что "универсальные" библиотеки должны работать на всяких тини, у которых просто памяти не хватит для хранения более 8 адресов устройств.
с подключением 8-и девайсов на 8 линий одного порта гемору больше, чем результату - придется писать свои функции вместо библиотечных.

Добавлено: Ср апр 01, 2009 07:49:13
Vov123
Скажите пожалуйста,на какое максимальное расстояние можно разнести устройство от контроллера по линии 1-Wire?

Добавлено: Ср апр 01, 2009 08:07:19
ARV
Vov123 писал(а):Скажите пожалуйста,на какое максимальное расстояние можно разнести устройство от контроллера по линии 1-Wire?
формально нигде не указаны конкретные ограничения. из практики по телефонной лапше народ до нескольких десятков метров подключает, даже до сотни доходит. очень многое зависит от типа и качества провода... ну и кое-какие шаманские танцы с программами иной раз позволяют дальность увеличить.

лично я больше, чем на 10 метров, никогда и не пробовал подключать - мне хватало за глаза

Добавлено: Ср апр 01, 2009 09:02:53
Vov123
Спасибо за инфу,10 метров вполне достаточно,это не I2C с 3 метрами.

Сколько DS18B20 может обслужить Atmega16

Добавлено: Ср апр 01, 2009 09:29:47
lkote68
Народ я ведь почему спросил о количестве датчиков Мне в одном случае надо обслужить 1200шт в другом 12000 Чувствуете разницу :shock:

Сколько DS18B20 может обслужить Atmega16

Добавлено: Ср апр 01, 2009 09:31:55
lkote68
Пожалуй в том случае с 1200 я и ПК обойдусь Дискретности опроса в 20мин мне подходит А вот в случае 12000 планирую разбросать по конроллерам а потом собрать на PCшку

Добавлено: Ср апр 01, 2009 10:02:04
shtorm
и какой бюджет у проекта? у нас датчики стоят по 1,7$ 12000шт=20400$ :shock:

Сколько DS18B20 может обслужить Atmega16

Добавлено: Ср апр 01, 2009 10:56:45
lkote68
Ну не я решил устанавливать эти датчики тем более по моему более дешевого варианта они не нашли. Баки температуру нужно знать через каждый метр. Может там надо какое нибудь вообще решение на другом принципе Но заказчик пока сказал делаем на DSах 8)

Re: Сколько DS18B20 может обслужить Atmega16

Добавлено: Ср апр 01, 2009 14:36:03
Yellow Tiger
lkote68 писал(а):в одном случае надо обслужить 1200шт в другом 12000
Ну, если все так масштабно, то, пожалуй, есть смысл взглянуть поближе на статьи и апноты Далласа, о которых я говорил вчера:
How to Power the Extended Features of 1-Wire® Devices
1-Wire® Extended Network Standard
Serial Digital Data Networks
Networked Temperature Monitoring
Extending 1-Wire Range with Network Proxies
Guidelines for Reliable Long Line 1-Wire® Networks

Еще были где-то статьи про ноды и оконечные у-ва в 1-wire сети, но сейчас не нашлись что-то...

P.S. Вчерашние предположения подтверждены в апноте №148:
1-Wire Network Limitations
Several factors determine the maximum radius and weight of a network. Some of these factors can be controlled and some cannot.
The master-end interface greatly influences the allowable size of a 1-Wire network. The interface must provide sufficient drive current to overcome the weight of the cable and slaves. It must also generate the 1-Wire waveform with timings that are within specification and optimized for the charge and discharge times of the network. Finally, the interface must provide a suitable impedance match to the network, so that signals are not reflected back down the line to interfere with other network slaves.

Сколько DS18B20 может обслужить Atmega16

Добавлено: Ср апр 01, 2009 15:46:37
lkote68
Пасиба тигра. Здесь мне читать не перечитать. Благо англ знаю. Но все одно разбираться прийдется Большая Ж заключается в том что знаком я с 1варей месяц. А заказчик по моему даже не прикидывает сложности. Мне и макет контроллера собери и программатор к нему и адаптер ком-1варя и OPC сервер дак еще не жесткий а желательно утилиту параметрирования оного. Месяц прошел мне намекают ну как дела? :shock:

Re: Сколько DS18B20 может обслужить Atmega16

Добавлено: Ср апр 01, 2009 15:50:52
Yellow Tiger
Ну, 1-wire не так уж и сложен, слава богу. Зная английский осилишь - там по нескольку страниц в документах. Самый длинный - 33 страницы ("Guidelines for Reliable Long Line 1-Wire® Networks"). :)
lkote68 писал(а):Месяц прошел мне намекают ну как дела? :shock:
А ты говори - "Первые 128 датчиков уже принимаю!" :))) :))) :)))

P.S. Кстати - нашел еще одно ограничение - периодичность опроса. То есть, если на одной шине много девайсов, то растет время на опрос каждого, а при большой протяженности шины, нельзя задирать частоту, см. цитату из "Guidelines for Reliable Long Line 1-Wire® Networks":
This article also does not discuss overdrive speed operation of 1-Wire devices. The overdrive speed is
intended for use only on very short connections and is never suitable for use in 1-Wired networks.
Мосты UART/1-wire, I2C/1-wire есть у Далласа, не изобретай велосипед, тем более, что времени у тебя мало.

Сколько DS18B20 может обслужить Atmega16

Добавлено: Ср апр 01, 2009 16:14:27
lkote68
Ну скорости я не буду задирать Да и пока не нашел как энто сделать.
Сейчас собрал переходник дали 10 датчиков я тут кода для PC нарыл потом в доки залез. Читаю где то через 1сек. А вот где скорость поменять не нашел. Нашел у тмекса в конструкторе номер порта задается. И какой то тип потра. Ну короче набросал прогу на 4 ком порта можно теперь хоть на 20 распаралелить были бы порты. А вот с контроллером пока еще плыву. А вы небось зубы поточили да на нем :))

Сколько DS18B20 может обслужить Atmega16

Добавлено: Ср апр 01, 2009 16:17:55
lkote68
Кстати Вы теперь поняли почему я хотел навесить по сети на каждую линию порта. Чем меньше на линии тем меньше нагр способность исчерпывается. Чем больше нацеплю тем меньше контроллеров. Короче работа хреновая В жизни бы с Омрона и Сименса не слез бы -КРИЗИС.

Сколько DS18B20 может обслужить Atmega16

Добавлено: Ср апр 01, 2009 16:21:55
lkote68
А UARTы у меня по идее заняты Мне же эти кусты по сериальному потом опрашивать надо. Может я проблему в лоб решаю? Может дешевле и надежнее наставить FanLess машин пусть опрашивают и складируют куда надо.

Добавлено: Ср апр 01, 2009 16:33:25
Yellow Tiger
Нет, с 1-wire я почти и не ковырялся - что-то душа к нему не лежит, а нужды привязываться к нему нет, вот и оставил его.
Нагрузочную способность порта увеличить несложно и внешним ключем, а вот процессорное ядро на все датчики, будет все равно одно - так нафик такая чехарда? Код сложнее, а плюсов никаких. Я бы искал в сторону формирования двух-трехярусной сети, скажем - на мелком контроллере только 1-wire (одна шина и на ней 16-32 датчика, скорее по условиям технологичности монтажа/обслуживания, чем по ограничениям, обсуждавшимся выше) и UART для связи со старшим контроллером, собирающим данные с узлов.
А FunLess компы можешь в качестве третьего уровня иерархии прилепить (может и двух хватит - м/к + microATX), но все равно "горшки обжигать" (температуру мерять) будут не они, да и много их ставить - дороговато.

P.S. Не лепи последовательно разные посты - добавляй в последний, чтобы слитно получалось - так читать легче.

Добавлено: Ср апр 01, 2009 18:06:54
GP1
еще раз напоминаю, здесь много "вкусного":
http://ibutton.ru/

Добавлено: Чт апр 02, 2009 00:16:57
Vov123
ROM-код у DS18B20 составляет 8 байт.При обнаружении устройства контроллер должен прописать ROM-код в RAM.
А у Mega16 его как известно 1000 байт.Соответственно,если туда (в RAM) больше ничего не записывать(ни стек,ни переменных,оставить проц без места для своих вычислений),то места хватит на 125 приборов.
А в CVAVR прописываются по 9 байтов на каждое устройство,да и тип возвращаемого значения найденных устройств на линии 1-wire-unsigned char.
Соответственно можно сделать вывод,что более 50 штук вам на одну Mega16 не подцепить