LINUX.ORG.RU

USB -> COM digitemp


0

1

Спаял термометр по схеме: http://habrahabr.ru/blogs/DIY/55780/ использую через переходник: http://www.positronica.ru/cables-adapters/gembird-36803/ В винде с помощью cygwin работает отлично. Ввожу: digitemp_DS9097 -a -s/dev/ttyS3 и вижу температуру. В Ubuntu 9.10 переходник отображается как ttyUSB0, пробую digitemp_DS9097 -a -s/dev/ttyUSB0 показывает только: DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane GNU Public License v2.0 - http://www.digitemp.com

пробовал ttyS0 - ttyS3 выдает ошибку: DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane GNU Public License v2.0 - http://www.digitemp.com Error, serial port '/dev/ttys3' does not exists!

digitemp качал с офф. сайта.

Может кто сталкивался с таким? Даже и не знаю в чем может быть дело.



Последнее исправление: aspire89 (всего исправлений: 1)

>COM

Надоели, это RS232, а с COM на винфак.

linux4ever
()
Ответ на: комментарий от linux4ever

может конечно драйвер для переходника не установлен, но в папке /dev файл ttyUSB0 появляется после подключения

aspire89
() автор топика

Ну и иди на хабр, сюда что пришёл?

Возьми осцилограф, отладчик, посмотри, что где. В чём проблема?

suzuki
()
Ответ на: комментарий от linux4ever

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 002 Device 002: ID 046d:c03e Logitech, Inc. Premium Optical Wheel Mouse

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 004 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

aspire89
() автор топика
Ответ на: комментарий от suzuki

$ ls -l /dev/ttyUSB0 && id

crw-rw---- 1 root dialout 188, 0 2010-01-03 19:48 /dev/ttyUSB0 uid=1000(aspire89) gid=1000(aspire89) группы=4(adm),20(dialout),24(cdrom),46(plugdev),104(lpadmin),115(admin),120(sambashare),1000(aspire89)

aspire89
() автор топика
Ответ на: комментарий от aspire89

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

Делается это командой stty

suzuki
()
Ответ на: комментарий от aspire89

Ещё попробуй запустить программу под strace и посмотреть логи.

И, насколько я понял, «программа с оффициального сайта» открытая и у тебя есть её исходник. Значит ты можешь добавить логов/запустить её под отладчиком и красиво смотреть в исходник.

suzuki
()
Ответ на: комментарий от o2inhal

Модуль загружен, устройство определяется.
Jan 3 13:39:14 aspire89-laptop kernel: [ 1780.591040] USB Serial support registered for pl2303
Jan 3 13:39:14 aspire89-laptop kernel: [ 1780.591073] pl2303 4-1:1.0: pl2303 converter detected
Jan 3 13:39:14 aspire89-laptop kernel: [ 1780.603193] usb 4-1: pl2303 converter now attached to ttyUSB0
Jan 3 13:39:14 aspire89-laptop kernel: [ 1780.603217] usbcore: registered new interface driver pl2303
Jan 3 13:39:14 aspire89-laptop kernel: [ 1780.603220] pl2303: Prolific PL2303 USB to serial adaptor driver

Настройки порта менял, но так и не могу заставить работать.

aspire89
() автор топика
Ответ на: комментарий от aspire89

Подключал как то старую Motorol'у С650, кроме модуля pl2303 понадобился еще модуль cdc-acm. Попробуй его подгрузить.

o2inhal
()

Завтра поклею обои в коридоре и запаяю такую же схему (чисто из любопытства). И прогу вашу за использую (из вредности).
И за себя не ручаюсь если все с пол-пинка заработает. :)

yax123 ★★★★★
()

А вот и снова я.
Только что закончил схему (правда пару стабилитронов пришлось взять немного другими, но это сути не меняет). Поставил DS18B20.
Окружение:
ноут fsc u9200, slackware13, 2.6.29.6-smp.
Все «искаропки».
Единственное что сделал, от рута скомандовал:
# chmod o+rw /dev/ttyUSB0
# chmod o+rw /dev/ttyS0

Скачал digitemp-3.6.0, собрал, запустил:
1) С начала на кошерном RS232C:
$ ./digitemp_DS9097 -s /dev/ttyS0 -i
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Turning off all DS2409 Couplers
.
Searching the 1-Wire LAN
1027B06301080042 : DS1820/DS18S20/DS1920 Temperature Sensor
ROM #0 : 1027B06301080042
Wrote .digitemprc
$ ./digitemp_DS9097 -a
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Jan 08 00:56:44 Sensor 0 C: 26.12 F: 79.03

PROFIT!!!

2) Для чистоты эксперимента воткнул через USB-COM (на базе CP2102):
$ ./digitemp_DS9097 -s /dev/ttyUSB0 -i
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Turning off all DS2409 Couplers
.
Searching the 1-Wire LAN
1027B06301080042 : DS1820/DS18S20/DS1920 Temperature Sensor
ROM #0 : 1027B06301080042
Wrote .digitemprc
$ ./digitemp_DS9097 -a
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Jan 08 00:58:04 Sensor 0 C: 27.12 F: 80.83

PROFIT!!!

Я негодуэ.

yax123 ★★★★★
()
Ответ на: комментарий от yax123

Попробовал зупустил liveCD Ubuntu - не работает, попробовал liveCd Fedora - не работает, попробовал на другом ноутбуке liveCD Ubuntu - не работает. Месяц ждал этих праздников, чтоб спаять, а оно не работает, пойду самоубьюся(((

aspire89
() автор топика
Ответ на: комментарий от yax123

Пробовал качать и .deb пакет и собирать вручную, результат один и тот же:

aspire89@laptop:~/digitemp$ ./digitemp_DS9097 -s/dev/ttyUSB0 -i
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Turning off all DS2409 Couplers

Searching the 1-Wire LAN

Если запустить под strace то появляется: http://pastebin.com/m3e07af10
и в самом вверху уже отсутствует файл: access(«/etc/ld.so.nohwcap», F_OK) = -1 ENOENT (No such file or directory)
проверьте пожалуйста, как у вас с этим файлом дела обстоят.

aspire89
() автор топика
Ответ на: комментарий от aspire89

Это неважно, так и надо.
Не работает вот здесь
#write(3, «\360», 1) = 1
#select(4, [3], NULL, NULL, {5, 0}) = 0 (Timeout)

То есть в порт пишут байт 0360, и в теории ждут ответа. А ничего не приходит. Все это на скорости 9600 (выше по трейсу видно).

anonymous
()
Ответ на: комментарий от anonymous

напишите пожалуйста свои настройки порта или как их сбросить, а то я уже наверно все испортил:

aspire89@laptop:~/digitemp$ stty
speed 38400 baud; line = 0;
eol = M-^?; eol2 = M-^?; swtch = M-^?;
ixany iutf8

aspire89
() автор топика
Ответ на: комментарий от aspire89

Не в том дело. 9600 ставит сама программа и это видно по стрейс. Но девайс не отвечает. Так что дело точно в настройках порта.

Я ничего подсказать не могу, потому что у меня девайса нет, я так, из общих соображений.

И кстати stty - покажет настройки ТЕКУЩЕГО терминала, то есть консоли.

stty -F /dev/ttyUSB0 покажет настройки для /dev/ttyUSB0.

Но все это не суть важно, проблема в чем-то другом. Скорее всего все таки в железке.

anonymous
()
Ответ на: комментарий от aspire89

А под виртуалкой есть виндовс? Если есть - можно было б глянуть еще варианты

1. Прокинуть USB девайс на котором ком-порт висит, если не заработает - тогда таки железка.

2. Подключить /dev/ttyUSB0 как виртуальный компорт. Если не заработает - проблема в драйвере pl2303.

На всех этапах можно проснифить юсб-трафик при помощи usbmon. Обмен с пл2303 несложный, там можно все понять. И в теории можно увидеть, что такого делается из под виндовс, чего не делается из под линукс. Вобщем такой мой обычный алгоритм разбора полетов с разными «непонятными» устройствами.

anonymous
()
Ответ на: комментарий от anonymous

В VBox с Windows xp пробовал, но что то не получилось подключить.
Попробовал запустить liveCD дистрибутив crunchbang на основе Ubuntu 9.04 и все заработало, как говорят из каробки. Списал все настройки через stty -F /dev/ttyUSB0 -a и забил в ubuntu 9.10 но все равно не работает. Посмотрел версии stty, разные, но думаю это не должно влиять.

aspire89
() автор топика
Ответ на: комментарий от aspire89

stty вообще ни при чем. Пока что 2 варианта: драйвер pl2303 сломали в новом ядре либо digitemp как-то не так собран. Ты digitemp с репов ставишь или сам собираешь?

anonymous
()
Ответ на: комментарий от aspire89

Предлагаю для начала озаботится проверкой работоспособности связки преобразователя-драйвера-ядра-«программы клиента».
Для чего рекомендую сделать «заглушку» для rs232c, воткнуть ее в ваш USB->RS232C и в minicom-е проверить работоспособность.
Заглушку делаем так:
Берем DB9 и напаиваем на него перемычки по такой схеме:
соединяем между собой контакты: 1-4-6
отдельным проводом соединяем: 7-8
отдельным проводом соединяем: 2-3

После чего все это втыкаем в переходник и в комп.
Настраиваем права(если нужно) и делаем ссылку:
# ln -s /dev/ttyUSB0 /dev/modem

потом запускаем minicom. Отключаем «локальное эхо».
Набираем на «клаве» произвольный текст, он должен отображаться на мониторе. Так же должен быть установлен статус «на линии» (у меня тут все по-русски пишется почему-то).
Если все так, значит высокая вероятность того что все работает верно.

Значит проблема в вашем преобразователе 1-wire->RS232c.
Почему это работает в винде и не работает в линухе пока не понятно.
Думаю, у вас там какая-нидь ошибка на «железном» уровне, которая взаимоисправляется с особенностями работы драйвера в винде, но не происходит того же самого в линуксе.
Например запаялись на другую ногу или КЗ с другой ногой. В винде там по умолчанию один уровень держиться, а в линуксе другой.

yax123 ★★★★★
()
Ответ на: комментарий от yax123

Вот что-то такое, да. Как-то очень уж хитро оно подключено. И тем более, что работает на предыдущем ядре, а на этом нет. У меня у самого pl2303, что в 9.04, что в 9.10 проблем не было. Но у меня и не было такой хитрой железки, как digitemp. Но всякие другие железки вполне себе работают.

anonymous
()
Ответ на: комментарий от aspire89

Проблему решил следующим образом:

sudo modprobe -r ds2490
sudo gedit /etc/modprobe.d/blacklist.conf
=at bottom=>
#To get digitemp to work
blacklist ds2490

Решение нашел здесь здесь

aspire89
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.