Pull to refresh

Comments 38

Скажите, а откуда 60 у.е., если MR2030 можно за 30 взять, а остальное — мелочевка?
у меня вышло MR3020 — 37$ MP707 23$
Raspberry — 35$, DS18B20 — 1,5$. Если нет необходимости управлять силовой нагрузкой через МР707 — уже так гораздо дешевле. А если вместо Малинки ардуинину влепить — еще можно сэкономить.
где добыть paspberry за 35?
На элемент14 покупал. 35 + доставка 8 у.е.
DS18B20 покупал на ебее за 0.9$/шт в кол-ве от 10-100шт
Да действительно перебор с ценой. И термометр дешевле ds18b20 использовать, подключив его к UART.
а устройство которое обладает UART от чего вы не считаете?
UART есть в MR3020. По умолчанию на него выведена консоль.
Да можно использовать внутренний UART, я не хотел разбирать MR3020, тем более что его можно и PL2303. Все в ваших руках.
Один нескромный вопрос: А зачем вы этим занимаетесь, если боитесь что-то разбирать?
USB для 3G модема хотелось бы сохранить, дабы снимать и передавать показания там, где нет кабельного интернета. Вот тут описывалось подключение ds18b20 к UART с использованием digitemp+openwrt.
Особенностью MR3020 есть, то что, USB-hid устройства подключенные прямо к нему в порт в упор не видны, а через любой USB-hub работают.

Это потому, что USB порт в MR3020 поддерживает только USB 2.0 High Speed, устройства работающие на Full Speed и Low Speed с ним не совместимы.
Про фулл спид неправда, работают на ура. А вот Лоу — только через хаб.
Там только EHCI, OHCI и UHCI отсутствуют, соответственно поддержки USB 1.0 и 1.1 нет. Поэтому я недоумеваю, как оно у вас работает. Поделитесь ревизией железки и конкретными Full Speed устройствами, плз.

Конкретное фулл-спид устройство — моя видеокарта)

USB2.0 включает в себя фулл-спид устройства.

Спецификация выпущена в апреле 2000 года.
USB 2.0 отличается от USB 1.1 введением режима Hi-speed.
Для устройств USB 2.0 регламентировано три режима работы:
Low-speed, 10—1500 Кбит/c (клавиатуры, мыши, джойстики)
Full-speed, 0,5—12 Мбит/с (аудио-, видеоустройства)
High-speed, 25—480 Мбит/с (видеоустройства, устройства хранения информации)
EHCI only provides high-speed USB functions. It relies on a «companion controller», either OHCI or UHCI, to handle full- and low-speed devices. Motherboards and PCI Cards that provide high-speed ports thus have two controllers, one handling high-speed devices and the other handling low- and full-speed devices.

В сабже компаньона-контроллера нет.

Покажите пожалуйста вывод dmesg

Пожалуйста:

[ 85.460000] usb 1-1: new full-speed USB device number 2 using ehci-platform
[ 85.620000] usblcd 1-1:1.0: USB STM32-based LCD module connected
[ 85.620000] usb 1-1: Allocating framebuffer: 155648 bytes [38 pages]
[ 85.630000] usb 1-1: Device /dev/fb0 opened, total user count=1
[ 85.640000] Console: switching to colour frame buffer device 53x21

[ 85.460000] usb 1-1: new full-speed USB device number 2 using ehci-platform

Вот здесь написано, что ваше устройство работает через ehci

[270562.330000] usb 2-1: new full-speed USB device number 2 using ohci-platform

А вот так выглядит вывод dmesg в openwrt на платформе с поддержкой full-speed устройств

Видите разницу? Вас, возможно, спасает тот факт, что вы с вашим lcd экраном работаете через свой драйвер или поток маленький или специфические вещи не используете, я не знаю. А обобщать не надо, Full Speed аудиокарты у меня не работали на сабже, пришлось интегрировать внутрь хаб.
У меня поток полностью соответствует Full-Speed устройству, практически 12 МБит/с задействованы. То что фулл-спид аудиокарты не работали могло быть проблемой их драйверов.
Итог один — фулл-спид устройства способны работать на данном роутере напрямую, без хабов — вы точно также обобщили что «фуллспид не поддерживаются», а правда оказывается посередине. Поддерживаются, но не все)
:) Те же аудиокарты работают через хаб, так что это не «проблема драйверов». Слушайте, ну что я вас, право, переубеждаю. Потыкайте сами туда разные Full Speed девайсы (модемы, аудиокарты, WiFi адаптеры), найдете рабочее (стабильно работающее) — сниму шляпу. Самоделки и полуфабрикаты (при огромном и искреннем к вам уважении) не в счет.

С наступающим :)
Ну послушайте, чем «самоделка» от не-самоделки отличается вы можете внятно объяснить?
Контроллер USB я не зубилом из кремния выбивал, он стандартный, Full-Speed, черным по белому в даташите написано.
Вот еще одно устройство подключил, переходник USB-RS232, тоже фулл-спид.
Это тоже самоделка? Сколько еще подключить, чтобы вашей шляпы дождаться?
Переходники у меня не работали, кстати, вы его проверили?
Проверял, работало.

Сейчас порылся в интернете, пришел к выводу, что повезло:

So, to summarize, i strongly suspect that:
REAL USB 2.0 High-Speed 480 Mbps devices such as 3G modems or USB drives are supported by the AR9331
SO-CALLED USB2.0 or ACTUALLY USB 1.1 Full-Speed 12 Mbps such as almost all cdc-acm devices (including GSM/GPRS modems, FTDI chip-based devices, POTS modems, GPS devices, Arduino boards, etc.) appear to work but in fact feature the strange bugs we found and do not work reliably
SO-CALLED USB2.0 or ACTUALLY USB 1.1 Low-Speed 1.5 MBps such as mice, keyboards, joysticks and Software-based USB AVR implementations do not work at all


Зависит от девайса и от конкретной реализации контроллера, похоже. Можно найти такие, что работают, можно найти такие, что работают некоторое время, а потом перестают. Можно найти такие, которые не работают вовсе — тут дело не в самоделках, а в используемых USB-контроллерах, это особенно хостового контроллера USB у этой SoC.
Я кажется понял в чем дело. Нашел даташит на AR9331 , судя по нему (подробно пока не вчитывался) Low и Full speed устройства все же поддерживаются. Возможно, что для этого нужно будет парочку регистров поменять, интерес представляет как минимум Stream Disable (стр. 255) ну и там далее еще что-то есть связанное с буферизацией ввода вывода и т.п. с упоминанием Low и Full speed устройств (в частности 24 бит в Port/Status Control).

После Нового Года попробую поэксперементировать.
Чудо какое, даташит на Атеросовскую SoC, они же все под NDA вроде)
Где вы его откопали?)
На файлообменнике в Китае. Они там не очень в курсе этих непонятных английских аббревиатур :)
На Народный мониторинг у Вас тоже уже получилось отправлять данные?
Предпочтительнее по telnet-tcp. В каталог поддерживаемых устр-в прям напрашивается.

У самого дома лежит MR3020 в ожидании подключения по UART, но полностью рабочий вариант и реализацию протокола передачи еще доселе примеров небыло, несмотря на вопрос на Хабри и форуме Умного дома.

#!/bin/bash
RES=`./bmcontrol temp yyyyy`
rqstr="ID=xxxxx&yyyyy="
echo $rqstr$RES
wget --post-data "$rqstr$RES" http://narodmon.ru/post.php
А как же запрос опрос серийных номера датчиков 1-wire? Ведь их может быть больше одного и хотелось бы при подключении очередного датчика код не переписывать.
сходу виделся такой вот скрипт
RES=`/home/tarasii/bin/bmcontrol scan`
for rows in "${RES[@]}"
do
    ZRES=`echo "$rows" | cut -c 12-27`.
    echo $ZRES
    /home/tarasii/bin/bmcontrol temp $ZRES
done

но не хочет он выполнять в цикле бмконтрол, выполняет только с первым. Как решение писать скрипт использующий выше указанные который сделает другой скрипт для получения и отправки но без циклов
предыдущий камент — агония, вот такой скрипт работает:
#!/bin/bash
RES1=`/home/tarasii/bin/bmcontrol scan | cut -d' ' -f 3`
RES=( $RES1 )
rqstr="ID=xxxxx"
for rows in "${RES[@]}"
do
    ZRES=`/home/tarasii/bin/bmcontrol temp $rows`
    rqstr=$rqstr"&"$rows"="$ZRES
done
echo $rqstr
wget --post-data "$rqstr" http://narodmon.ru/post.phpdone
MR2030 такими темпами перехватит у Arduino пальму первенства в diy-проектах.
Если кому интересно, есть более простая реализация без необходимости покупки MP707 за 650р, вместо него можно купить на ебее за ~53р (1.7$) USB To RS232 TTL PL2303HX с бесплатной доставкой.

Далее на роутер ставится OpenWRT к примеру с более новой прошивкой и репозитарием cyber-place.ru. Процедура настройки отправки показаний уже описана мною здесь.

Итого суммарно цена решения у меня составила ~1000руб (MR3020+PL2303HX+DS18B20).
Если купить роутер WR703N(или его аналог) на ебее, то можно понизить цену еще на 200-300руб.
Сделал клон оригинального репозитория с версией 1.1, улучшив немного код:
— починил задержки
— починил выход за границы массива
— починил остальные ворнинги от "-Wall" и cppcheck
— сделал код полностью кросс-платформенным (теперь и на венде и на линуксе собирается одним и тем же мейк-файлом)
— перевел из C++ на чистый Си (там C++ не нужен абсолютно), чем уменьшил размер бинаря в 2 раза
— много других мелких улучшений

Получить код можно тут:
code.google.com/r/joeskb7-bmcontrol/source/checkout

Инструкции по сборке в README файле.

Посмотреть коммиты можно тут: code.google.com/r/joeskb7-bmcontrol/source/list

Также интересную инфу можно посмотреть из этой переписки: www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi?az=show_thread&om=9804&forum=vsluhforumID9&omm=0&m=1l
Перезалито на Github: https://github.com/joe-skb7/bmcontrol
Sign up to leave a comment.

Articles