Category: лытдыбр

дыбр, изорнет-поверх-усб

внезапно узнал, что для сабжа есть примерно ТРИ стандарта.
в принципе предсказуемо для любого порождения консорциума, где в главарях интел с микрософтом, но.

первое, самое на слуху, RNDIS - частично проприетарно
Ethernet Control Model (ECM), Ethernet Emulation Model (EEM) - вроде открытые.
Network Control Model (NCM) - еще один.

а еще есть кучка проприетарной хрени с проприетарными вендор специфик (проверил три разные вифи-усб свистка - там еще страшнее).

собственно вопрос. уже самому стало интересно влезть поглубже и разобраться, что проще/удобнее/стандартнее, ECM, EEM, NCM? какие плюсы-минусы? перспективы поддержки итп?

делать буду переходник на клиенте (усб-раб) с усб на стандартный тцп-ип стек, плюс возьму стандартную реализацию dns/dhcp и простого вебсервера для управления железкой (итого, усб-клиент будет симулировать сеть, в которой есть вебсервер с управляющими страницами).

идею симулировать страдж девицу при аккуратном рассмотрении отверг -- проблемы и с внезапным кешированием на стороне ос, и с поддержкой, например, фат12/16/24 и длинных имен. там оно уж очень криво.

SR036/037 Inductorless regulators - помогите понять

В контексте обсуждения про блоки питания несколько сообщников указали мне на наличие таких замечательных чипов как Inductorless regulators, работающих без катушек индуктивности и просто тупо заряжающих выходной конденсатор в то время синусоиды, когда входное напряжение мало.

Взгляд остановился на чипе SR036/037, способном работать с внешним транзистором. Помогите понять, возможно ли то, что я задумал. Сам вопрос и несколько скриншотов под катом.
Read more...Collapse )

Конфигурирование умного дома

(Модераторам - а тег "умный дом" не добавить ли?)

Попробую более-менее кратко описать, какой объём конфигурирования и поддержания знаний требуется для среднего размера системы умного дома. Мне кажется, коллеги проблему недооценивают.

Кратко о системе: Московская квартира 100м2, стойка 19" в потолок, модули в помещениях, полное централизованное управление светом (ручное, групповое, сценарное, по датчикам движения и открытия дверей), климатом (тёплый пол и управляемые радиаторы, под два десятка датчиков) и много по мелочи (уличные датчики, датчики звука, CO2, взаимодействие с теликами, снятие данных с NAS и т.п.). Ещё столько же в планах, но времени нет, и, главное - я вижу как растёт сложность системы.

Попытаюсь пройтись по тому, как документирована конфигурация всего этого.

Конфигурация роутера

Отдельная большая проблема. Есть карта всех IP (вне роутера!), она же прописана в роутер, там же фиксация MAC/IP для DHCP, и нет, туда нельзя положить дополнительные конфигурационные параметры - даже в довольно продвинутом mikrotik DNS сервер рудиментарный. И да, по возможности всем устройствам IP-адреса прописаны жёстко. То есть реально пара мак-ip живёт в трёх местах - документ, роутер, устройство.

Кросс-журнал

В сумме в стойку приходит около ста витых пар, примерно половина - локалка, половина - слаботочка умного дома. В основном - +24 вольта, RS485, датчики pt1000, 1wire и прямые линии управления, например - клапанами радиаторов. Много мелочей - например, импульсы расхода воды или аплинк от автономного контроллера протечки.

Силовых линий вряд ли меньше - во всяком случае, светильники и выключатели разведены на три кросса, 50+50+20 точек. Отдельно все люстры, бра, тёплые полы, блоки розеток и кое-где отдельные розетки (впрочем, управляемых розеток в итоге вообще нет, так что половина силовых просто разведена на гребёнки и автоматы).

Кросс-журнал - номера проводов, распайки по цветам жил, соединения проводов, подключение каждого конца каждого провода куда-либо. По факту - там есть ошибки. Иногда нахожу и исправляю. По факту - шесть проводо из оговоренного объёма в итоге непригодны для эксплуатации. Три тупо потеряны или рваные, три с короткими замыканиями.

Кросс-журнал сделан в виде нескольких вкладок в гугл-таблицах, информация продублирована. Отдельно есть таблица проводов (и сказано, к какому устройству он подключен), отдельно - таблица устройств (и сказано, какой провод на какую клемму приходит) - это позволяет проще искать ошибки.

Пример из кросс-журнала по плинтам: номер плинта, номер пары, номер провода, цвет, что на том конце, что на этом.


3 0 76 зел-бел,зел пт1000 детская 1 (у двери, ближний) МВА1.1
3 1 76 кор-бел,кор 1wire+клапан батареи plc 30 do2, mmnet2 1w2

Слаботочка: локалка разведена на стандартную патч-панель, специальная - на плинты. Местами есть кроссировка и между ними. Журнала для локалки нет, а, наверное, скоро будет нужен - буду вводить сегменты сети, отдельный на умный дом без роутинга в Интернет и отдельный на IP-камеру в подъезде с роутингом только в одну точку.

Пример из журнала распаек (по одному типу кабеля):


управл батареями + датчики темп 1 оранжевый-бел земля
НОМЕРА КОНТАКТОВ РАЗЪЕМА 2 оранжевый +24
СДЕЛАНО 3 зеленый-бел pt1000
6 зеленый pt1000
4 синий rs485 +
5 синий-бел rs485 -
7 коричневый-бел минус термопривода термопривод крана батареи между +24 (2, оранж) и кор-бел (7) - NB! - предохранитель на вых. контроллера!
8 коричневый 1wire термометр DS18B20


Журнал питания

В стойке стоит блок предохранителей, чтобы КЗ по питанию не выжгло провод в стене. Расписано, какой канал блока что питает (вне стойки). Кабель, напряжение, устройство. Как правило, везде идёт +24 и локально стабилизируется ШИМ-ом в +12 или +5. Снижаем ток в проводах, привносим стандарт.

Журнал 1-wire

А куда деваться? Они прописаны в конфигурации контроллера, но если контроллер умрёт - откуда их доставать и как их вспоминать? Это вот - одна из главных причин иметь централизованное конфигурирование.


Датчики температуры 1Wire В контроллере
MAC контроллер Шина Индекс расположение
28:8D:4E:AB:02:00:00:87 mmnet вытяжка - 0 Внутри вытяжки на контроллере
28:E3:37:AB:02:00:00:C9 mmnet вытяжка - 1 Снаружи вытяжки вверху (короткий провод)
28:44:36:AB:02:00:00:DD mmnet вытяжка - 2 Снаружи вытяжки внизу (длинный провод)


Журнал каналов умного дома

Каналом считается вход или выход основной системы, которая стоит в шкафу. Тут нет входов-выходов модулей, которые стоят по квартире.


Устройство Порт Канал Выключатель Лампа Фидбек Объект Комментарий
МДВВ0 1 0 A28-29 B32-31 да Столовая люстра Лев канал modbus порт 502
2 1 A28-29 B30-31 да Столовая люстра Прав
3 2 B12-11 B12-11 да Столовая бра Лев
4 3 B10-11 B10-11 да Столовая бра Прав
5 4 A8-7 B42-43 да Детская люстра Лев
6 5 A8-7 OR A9 B44-43 да Детская люстра Прав
7 6 - - нет Прихожая светодиоды
8 7 A8-7 B44-43 Детская ночник через реле включает два ночника в обоих люстрах

Обратите внимание на комментарий про ночники. Рисовать полную схему - убиться. Вместо этого все существенные вещи прописаны вот так в комментариях.
Так расписаны все железки в шкафу. Где уместно - указаны специфические настройки входов (опять конфигурация).

Разводка и конфигурация выносных модулей

Специфична для каждого типа. Вот пример для собственных контроллеров atmega128 + ethernet. Кстати, именно им я раздаю MAC-адреса из 1-wire DS2401, и именно им я хотел бы вместо этого выдавать конфигурацию из центрального конфигуратора. Потому как если оно сдохнет - его придётся перенастраивать руками.


Port B Kitchen Vent - http://mmnet1. Rack - http://mmnet2. Bath - http://mmnet3.
192.168.88.129 192.168.88.130 192.168.88.131
0 - output, SS for ? - - -
1-3 - SPI SCK/MOSI/MISO - - -
4 - DHT11 y y y
5 - data flash SS - - -
6,7 - uart tx enable / LED
Port D
0,1 - I2C SCL/SDA - bmp180 -
2,3 - UART1 (debug) n n n
4-7 - DI/DO/PWM PD6 - Di Light, PD7 - Di motor n клапаны воды контакты Di
2-7 - Multibus 1wire n y, chan 6 - температура в стойке n


Журнал шин и адресов

Тут - все IP-адреса всех устройств, все шины 485 и 1wire, номера modbus юнитов, номера портов на TCP/serial конверторах и настройки скорости/формата последовательных портов. И, конечно, указано, что к чему подключено (например, на какой 485-й порт какого контроллера приходит шина или куда уходит порт tcp/serial конвертора)

Журнал настроек

Здесь фиксируются разные настройки, которые или вручную выставлены в устройствах, или прошиваются в них из контроллеров/софта на старте.

Как нетрудно видеть, поддерживать это сложно. Кроме того, всё это - просто документы, никак не связанные. Контроля целостности между документами нет, в кросс-журнале и распайке могут быть написаны разные применения для жил кабеля. Нет и контроля совпадения между документом и прошивкой.

И ещё есть куча вещей, которые вообще хардкод, а хотелось бы иметь возможность конфигурировать. И это ещё я вообще не коснулся OpenHAB-а и его скриптинга, и его связи с контроллерами (а только тут есть ТРИ метода связи), и его связи с наколенными скриптами и драйверами разного железа. Для примера - есть драйвер, который ходит через конвертор интерфейса и специальный протокол поверх модбаса в CCU825, а полученное запихивает в OpenHAB. И в нём есть отображение Item-ов OpenHAB на входы CCU, и это тупо забито в код. И где это искать - через год ты уже не помнишь. И всё это прописывать в доки уже нет никакой мочи.

В итоге в не самой сложной системе бегают с десяток разных протоколов и информация размазана по полусотне мест.

И всё это тряхозвоние я хочу заменить на

- один глобальный канал обмена данных все на всех (MQTT/UDP)
- одну глобальную методику конфигурирования

Довольно понятно, что и то и другое не удастся на 100%, но если я структурирую за следующий год хотя бы треть этого зоопарка, я буду счастлив.

Поставьте по фото диагноз - может ли быть такая установка радиатора причиной перегрева (андроид)?

Приехала вчера очередная коробочка-андроид, для кухонного телевизора смотреть видивки вместо рекламы по тв

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

Китайцам написал, видео снял, жду что скажут, а пока решил поглядеть, что внутри, ну мало ли что0то тривиальное типа кусок проволоки (было когдато такое в заряднике для ипода)

Что может глючить - понятно что мильон причин, я просто хотел проверить очевидную - перегревается чип; мало ли там, забыли радиатор приклеить или еще что..

Радиатор есть, правда приклеен он (какой-то клеем-пастой) немного кривовато и слой клея толстый - ну если сравнивать с кулером на каком-нибудь пентиуме





С одной стороны, в телефонах с примерно такими процессорами, никаких радиаторов и ничего, не перегреваются ж до смерти; с другой стороны, а хрен его знает, может ли он перегреваться из-за такого вот "крепления" радиатора?.. Там еще на крышке толстая (3-4 мм) металлическая пластина и к ней прокладка из материала типа резины между этим радиатором и той пластиной

Т.е. чисто оценочный вопрос №1 - может ли перегреваться процессор из-за такого вот крепления радиатора?

Чисто теоретический вопрос №2 - как снять такой радиатор? Или это одноразово приляпнули и все?

Забавная история про STM32 и USB

  История довольно идиотская, но может кому поможет...
  Попалась мне тут в шаловливые руки Nucleo-STM32F401RE, и стал я в нее играться. Дошел черед до игры с USB. Читаю доку, примеры, вроде ничего сложного. Собираю конфиг в STM32Cube, тот естественно ругается, что не гуд это, от внутреннего источника USB тактировать, я естественно игнорирую (делай, железка!), собираю, заливаю -- и вуаля!
Feb 23 09:48:39 devel kernel: [34972.845901] usb 2-1: device descriptor read/8, error -75
Feb 23 09:48:39 devel kernel: [34972.966112] usb 2-1: device descriptor read/8, error -75

Эге, говорю себе я, видать не врала про кварц-то... Паяю кварц на плату, перемыки естественно в положеные места, перегенеряю конфиг в кубе, пересобираю -- и привет... Эффект тот же самый. И тут, вместо того, что бы подумать, начинаю пробовать... Даже богопротивную винду в виде виртуалки запустил, и в ней рекомендованные системы разработки поствил. Эффект тот же, повторяемость 100%. Несколько весьма веселых дней, когда я даже на основную работу забил... В общем, итог:
Коллеги, кто наступит на аналогичные грабли, имейте ввиду. Если тактовая процессора ниже 36Мгц, FS USB НЕ РАБОТАЕТ от слова совсем. По крайней мере, в моем конкретном случае. Куб сам такую частоту не ставит, довольствуется минимальной (16), хотя и понимает, что в проекте задействован FS USB, и за его, юсбишной, тактовой следит прилежно.
Проверено под Linux с GCC тулчейном, и под XP с TrueSTUDIO и MDK-ARM v5. Понятно, что тулчейн не при чем, но все же...
Кстати, не удивлюсь, если окажется, что это в доке таки написано, а я просто просмотрел.

И еще раз о травлении плат

Задача: травить платы сделанные по методу ЛУТ с фольгой.
Отсюда требования к раствору для травления - он должен травить и медь и алюминий.
До текущего момента я использовал хлорное железо, однако решил от него окончательно отказаться из-за грязи.

Были опробованы следующие варианты классических растворов:
1)Перекись+лимонка+соль. По умолчанию алюминий не травит. Но если в растворе стравить немного меди(он становится голубым), то алюминий начинает не очень охотно, но травиться.
Не нравится:
-много разных компонентов в растворе
-неспособность травить фольгу сразу
-говорят этот раствор дает сильные подтравы, что для моих 0.2-0.3 дорог может быть критично. Сам не проверял.

2)Медный купорос + поваренная соль:
потрясающе хорошо травит алюминий.
Не нравится:
-при травлении выделяется много газа и раствор сильно и неприятно пахнет. На химических форумах вычитал, что в случае примесей в купоросе могут выделяться всякие не самые хорошие и порой сильно вредные газы.
-низкая скорость травления

3)Персульфат аммония:
Этот раствор мне очень понравился. Медь травится быстро, никаких подтравов(очень чистый рисунок выходит), никакого осадка, газа и осадков. Раствор при этом прозрачный. Но главная проблема - он не травит алюминий.

Соответственно вопрос: возможно ли что-то добавить в персульфат аммония, чтобы алюминий также травился и это не влияло отрицательно на травление меди.

Пока рассматривается вариант травления алюминия в купоросе с солью с последующим травлением меди в персульфате, но использовать два раствора не очень хочется, да и у купороса с солью есть выше обозначенные недостатки.
Tags:

Светодиод: зависит ли КПД от мощности ?

Как известно, если лампочку накаливания запитать пониженным напряжением, температура нити снижается, максимум излучения смещается еще больше в ИК-часть спектра, КПД снижается. А со светодиодом как ?
Read more...Collapse )

Поколение RFID или Arduino головного мозга

Несколько дней назад я делал пост с достаточно четко поставленным вопросом:

Есть катушка подключенная к некой схеме.
Есть вторая катушка, располагаемая в нескольких миллиметрах от первой соосно(или как захочу), к ней в параллель припаян конденсатор.

Пар катушка-конденсатор будет 4 вида. Отличаться видимо будут только емкостью конденсатора.

Задача: схеме нужно однозначно определить наличие второй катушки рядом и определить какая именно это пара катушка-конденсатор из четырех.

Требования - максимальная простота аналоговой части схемы и изготовления катушек. В идеале катушка должна быть готовая покупная, но можно и намотать, если не 1000 витков :)
Изделие штучное.
В схеме будет МК, так что максимум функций можно переложить на него - например генерацию разных частот, измерение чего-то с помощью АЦП и т.п.


Подавляющее большинство комментаторов предложило использовать RFID. С одной стороны это действительно логично - позволит решить задачу. С другой стороны в задаче в общем-то спрашивалось совершенно другое. Я не силен в аналоговой технике, тем более во всяких радиочастотных устройствах, но интуитивно понимал, что должно быть какое-то совершенно простейшее решение на нескольких компонентах. Думаю любой радиолюбитель двадцатилетней давности мне бы сходу с закрытыми глазами нарисовал бы нужную схемку со всеми номиналами.

Тут мне стало интересно во чтобы то ни стало решить задачу без всяких там RFID, готовых контроллеров и т.п. Тем более хотелось сделать устройство прямо вот сейчас из имеющейся рассыпухи, а не ждать пока придет какой-нибудь ридер из Китая или не покупать его тут втридорога.
И решение было найденоCollapse )

Магнитола2.

Приветствую.

Предыдущий пост про магнитолу напомнил мне про мою проблемку, которую не знаю, как правильно и просто решить.

Есть машина. В машине есть кнопки на руле (резистивное управление магнитолой), из руля выходит 2 проводка, которые замыкаются на разные сопротивления в зависимости от нажатой кнопки (к примеру, 430 ом = seek up, 1110 ом = seek down, 4610 ом = volume up, 6810 ом = volume down).

В машине так же есть магнитола, у которой есть вход под такое резистивное управление, но она ожидает совершенно другие сопротивления (к примеру, 8000 ом = seek up, 11500 ом = seek down).

Очень хочется управлять магнитолой с кнопок на руле. Т.е. на 6 сопротивлений руля надо выдавать 6 других сопротивлений магнитоле. Решения проблемы я вижу как минимум 3:

1) просто купить за адские деньги готовый адаптер, подключить и забыть.
2) перепаять сопротивления в руле.
3) сделать свой адаптер.

Я решил остановится на третьем варианте, но как его правильно огранизовать - не очень понимаю, т.к. со схемотехникой, в отличие от софта, у меня не очень. Есть в наличии микроконтроллеры (как AVR, так и MSP430), могу через ацп и делитель читать состояние кнопок на руле, но как правильнее и проще подручными средствами выдавать правильное сопротивление в магнитолу? Цифровой потенциометр? Через несколько транзисторов последовательно с резисторами замыкать вход магитолы? Просто несколько реле? :).

Может, есть более простые схемы, без использования микроконтроллеров вообще?

UPD: решил вопрос элементарнейшим образом. У магнитолы оказалось 3.3 вольта между выводами, которые измеряют сопротивление. Минимальное сопротивление, нужное магнитоле - 2.2 килоома (т.е. ток получается <= 1.5 мА), поэтому я просто сделал подтягивание плюсового вывода магнитолы через разные резисторы к земле прямо через gpio у микроконтроллера. Этого оказалось достаточно, чтобы всё чётко работало. Ну а программно наворотил еще и "длинные" нажатия, защиту от дребезга и так далее. Если есть смысл выкладывать такую простейшую схемку, то могу выложить схему адаптера руля Hyundai Santa Fe 2008 для Pioneer AVIC-F960BT и исходники прошивки (ардуина).