Оффтопик. Давайте-ка я все-таки расскажу что и где покупал.
1. Cubietruck - здесь.
2. Контроллер DS9490R, термометр DS18B20 - здесь.
3. Прототипные платы - здесь.
4. Проводочки :) - 30 ft Kynar wire wrap wire 30 awg 4 modding 10 color.
5. 100 штук RJ11\12 - 100× Modular Lan Network Connector Plug RJ11 6P6C CAT5
6. Остальное в местном радио магазине (включая внешние телефонные розетки и некоторые разъемы по питанию).
Для создания термометра используем схему с сайта Бенукс (сайт вообще отличный, самое лучшее и доступное описание 1-wire сети и устройств).
Травить плату я не умею (хотя в инете полно видео технологии ЛУТ - может быть в скором времени и попробую), поэтому решил делать на прототипных платах - схема в принципе не такая сложная:
По схеме: в принципе ничего сложного даже для такого новичка, как я. 78L05 - стабилизатор, преобразует 12 вольт на нашей шине в 5 вольт для датчика. Кстати! Мы приведем сеть 1-wire в порядок и пустим по ней 12 вольт, не будем использовать паразитное питание. Остальные элементы описаны разработчиком схемы (обсуждение немного другой платы, поэтому 5 пункт можно не читать и обозначения не все совпадают - но я думаю догадаться можно о чем речь):
1. Диод D6 - для каких целей он служит и почему выбран именно КД521?
Этот диод уменьшает влияние "просадок" по общей шине питания на данный модуль. Здесь допускается применение любого маломощного выпрямительного диода. КД521 взят только потому, что был под рукой.
2. Конденсатор C2 - для каких целей он служит? Ведь в datasheet к 7805 указаны только 2 конденсатора, по 0,33 и 0,1 соответственно.
Во время "просадок" питания по общей шине этот конденсатор поддерживает питание данного модуля.
3. Сопротивление R2 - почему именно 100 Ом?
Оптимальный номинал, который с одной стороны является элементом защиты, а с другой стороны не оказывает большого влияния на полезные сигналы 1-wire.
4. Стабилитрон D3 - почему выбран именно КС156?
Этот элемент совместно с резистором R2 является цепочкой защиты модуля от импульсных помех по микросети. Выбран с несколько большим напряжением, чтобы не влиять на полезный сигнал 1-Wire и Pullup, а "срезать" случайные импульсные помехи превышающие 5,6 В.
5. Действительно ли так нужна опторазвязка на схеме между DS2413 и реле, или можно обойтись транзистором + реле?
Можете исключить опторазвязку, но тогда при работе через USB-адаптер может быть подвисание порта.
Приступили к пайке схемы, предварительно разрезав плату ножницами по металу под внешнюю телефонную розетку и пролудив ее. Получили нечто вроде этого (микросхему пока не паяем, сначала хочу проверить вольтаж).
Теперь надо сделать саму шину. Для этого я купил 6 контактные телефонные разъемы (RJ12 в простонародии - почитайте вики, чтобы не купить что-нибудь не то) по цене примерно 200 рублей за 100 штук (см. пункт 5 в закупках). Я решил обжимать по схеме B в RJ45 (без оранжевого и светло-оранжевого) ибо уже привык к ней :) , запишем распиновку. Теперь обжимаю все шесть проводов, а не как в прошлом посте, так обжимка получается качественнее.
У меня вид с обратной стороны по B (то есть контакты от 8 до 3 включительно)
1. Светло-зелёный - не используется.
2. Синий - черный в розетку - +12 вольт.
3. Светло-синий - красный в розетке - Data.
4. Зелёный - зелёный в розетке - земля.
5. Светло-коричневый - жёлтый в розетке - +18 вольт.
6. Коричневый - свободный.
"Организатор" шины
Теперь я подумал как же мы будем подключать 18 и 12 вольт? Ну и решил взять еще одну розетку и сделать из нее некий переходник-организатор (дурацкое название, что-то сейчас лучше в голову не пришло :) ).
Смотрим распиновку. Нам нужны только 3 и 4 контакты. Обжимаем как хотим один конец (советую выщипать лишние контакты), а второй оставляем - его будем впаивать в макетплату.
Разбираем розетку, паяем. У меня получилось вот так вот
Обжимаем еще один провод. Мультиметром проверяем работу схемы и правильность соединений. Проверяем 12 вольт на шине. 18 вольт у меня пока нет. Чтобы было удобнее пользоваться мультиметром - подключаем по розетке на оба конца:
Пробуем вставлять наш термометр, пока без DS18B20. Проверим напряжение 5 вольт.
Последний шаг - впаиваем DS18B20 в плату под термометр. Распиновка:
У меня заработало не сразу. :) Вышла небольшая заминка по проводам. Поэтому прежде чем обжимать коннектор в DS9490R выщипайте лишние контакты в коннекторе, оставьте два посередине и только после этого обжимайте.
В итоге, у нас есть первое устройство в "нормальной" сети 1 wire, которую можно расширять не боясь. Еще я понял, что лучше все-таки травить плату, это наверное быстрее (если конечно есть работающий макет), чем использовать такие вот прототипные платы (хотя может их надо как-то по другому использовать, я честно говоря не знаю. :) ) и качественее.
Кусочек информации с моего термометра:
power YES (1) r_address 710000041E821A28 r_id 0000041E821A r_locator FFFFFFFFFFFFFFFF temperature 26.3125 temperature10 26.25 temperature11 26.375 temperature12 26.3125 temperature9 26.5
Система в сборе
ps. Кстати, неплохо бы в наш дебиан еще поставить системные логи:
#apt-get install rsyslog
Не понял зачем дополнительный контроллер DS9490R, ведь кубик и без него может работать с 1-wire устройствами?
ОтветитьУдалитьУх. Да я тоже погуглил - говорят что это невозможно (или еще никто не знает как)!
УдалитьЗначит я точно пошел правильным путем, купив отдельный контроллер.
Согласен, работать может, надо было указать про это в статье. Почему я выбрал отдельный контроллер:
ОтветитьУдалить1. "unsuitable for large bus lengths"
http://blog.gegg.us/2013/03/4-different-methods-of-1-wire-access-on-raspberry-pi/
2. Универсальность. В случае чего, за 5 минут контроллер можно перебросить на любой другой хост.
Правильно ли я понимаю, что -12В мы подключаем также на Землю ?
ОтветитьУдалитьА зачем нам тут -12В?
УдалитьТак 12 Вольт должны куда-то уходить.
УдалитьМежду чем будет разница потенциалов ? Или я ничего не помню из курса физики?
если померить напряжение между +12В и -12В - то разность будет 24 вольта :)
Удалитьвот тема http://radiokot.ru/forum/viewtopic.php?f=21&t=76535