LINUX.ORG.RU
ФорумTalks

Кнопка на com-порте. Какие два контакта RS-232 DE-9 надо замкнуть?

 , , ,


1

2

Запустил

stty -F /dev/ttyS0 300
cat /dev/ttyS0
Ничего не выводит. Замыкал по очереди со 2 контактом все остальные.

Какие контакты порта замкнуть что бы принять много единичек? Задача запускать скрипт по нажатию кнопки.

И как настроить com-порт для этого?

☆☆☆

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

Ответ на: комментарий от n_play

а в чем суть? хочешь тупо замкнуть rx и tx?

Да. Мне нужна большая зелёная кнопка (на самом деле маленькая серая) которая будет запускать небольшой скрипт.

rezedent12 ☆☆☆
() автор топика

Какие контакты порта замкнуть что бы принять много единичек?

поидее тот, который будет сконфирурирован в «единичку». лучше замыкай через резистор, порядков пары (десятков) кОм.

n_play
()

очень трудно нагуглить спецификацию протокола и распиновку разъёма?

Harald ★★★★★
()

Замыкай 2 и 3. Это можно джампером сделать.

И в stty выключи всевозможные echo, иначе повторения бесконечные пойдут.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 3)

Какие контакты порта замкнуть что бы принять много единичек? Задача запускать скрипт по нажатию кнопки.

Зачем тебе единички? Подавай на передачу какое-нибудь кодовое слово. Если ты по закольцованному джамперу его же и получишь, то джампер замкнут. Если не получишь - разомкнут. Только событийности не будет, ты как бы опрашивать кнопку должен в демоне.

В одном окне слушаем:

cat /dev/ttyS0

В другом - отправляем

echo "test" > /dev/ttyS0

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 2)
Ответ на: комментарий от Zubok

Замыкай 2 и 3. Это можно джампером сделать.

Пробовал. Ничего не выводит.

rezedent12 ☆☆☆
() автор топика

а настройки порта какие? если вкл. проверка чётности либо нечётности, то ваш тест всегда будет фейлить.

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

И в stty выключи всевозможные echo, иначе повторения бесконечные пойдут.

Выключил. Только почему то после тестовой строки целых 3 пустые строки.

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

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

UPD: О! вот нашел рафинированный пример. http://stackoverflow.com/a/5905076

Ты можешь подавать на входы (не на выходы!) напряжения и смотреть их состоние. Это у нас CTS, DSR, RI, DCD. Можно, например, замкнуть RTS и CTS кнопкой. Или DTR с DSR. Выставляешь RTS, ловишь сигнал с CTS.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от rezedent12

Выключил. Только почему то после тестовой строки целых 3 пустые строки.

С опциями stty поиграйся. Там типа raw и пр. Я не помню точно. Там есть опции, чтобы шаманить с переводом строк, но я подробностей не помню. Могу, конечно, проверить, если у тебя ничего не победится.

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

Ты можешь подавать на входы (не на выходы!) напряжения и смотреть их состоние. Это у нас CTS, DSR, RI, DCD. Можно, например, замкнуть RTS и CTS кнопкой. Или DTR с DSR. Выставляешь RTS, ловишь сигнал с CTS.

Только про дребезг контактов кнопки нельзя забывать, чтобы избежать множественного срабатывания. Можно кондёр повесить. Если сигналы изменились (кнопка нажата), то из цикла ожидания вываливаештся, проверяется входной сигнал, запускается скрипт. После отработки скрипта опять в цикл.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

Сделал немного иначе. Взял устройство с usb портом, в USB-кабеле подключил к кнопке разрыв красного провода. Для проверки нажатия кнопки использую

lsusb | grep 0665:5161

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

Извращенец. Достаточно было бы тупо подтягивать к питанию D+ через полуторакилоомный резистор.

2й и 3й контакт при замыкании через имеющуюся у меня кнопку работали как детектор погоды на Марсе.

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

Достаточно было бы тупо подтягивать к питанию D+ через полуторакилоомный резистор.

(Йа нуб) И что бы получалось?

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

Windows обнаруживал бы новое устройство. И не смог бы установить для него драйвер (я так думаю).

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

Ты получил бы сообщение о появлении неопознанного устройства:

Jan 23 08:30:52 ishtar kernel: [2150828.341313] usb 3-2: new full-speed USB device number 15 using uhci_hcd
Jan 23 08:30:52 ishtar kernel: [2150828.871258] usb 3-2: new full-speed USB device number 16 using uhci_hcd
Jan 23 08:30:53 ishtar kernel: [2150829.401521] usb 3-2: new full-speed USB device number 17 using uhci_hcd
Jan 23 08:30:53 ishtar kernel: [2150829.913442] usb 3-2: new full-speed USB device number 18 using uhci_hcd
Jan 23 08:31:25 ishtar kernel: [2150862.030213] usb 3-2: new full-speed USB device number 19 using uhci_hcd
Jan 23 08:31:26 ishtar kernel: [2150862.761373] usb 3-2: new full-speed USB device number 20 using uhci_hcd
Jan 23 08:31:27 ishtar kernel: [2150863.291416] usb 3-2: new full-speed USB device number 21 using uhci_hcd
Jan 23 08:31:27 ishtar kernel: [2150863.803403] usb 3-2: new full-speed USB device number 22 using uhci_hcd
(это я как раз подтянул полуторакилоомным резистором D+)

Кстати, если на STM32F042 (кажись, эти самые дешевые — около 30 центов за 20-ножечный чип оптом, около бакса-двух в розницу) собрать минимальную платку и подключить к USB, то можно будет сделать более интересные вещи (скажем, нацепить туда толпу клавиш + индикаторов)

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

Кстати, если на STM32F042 (кажись, эти самые дешевые — около 30 центов за 20-ножечный чип оптом, около бакса-двух в розницу) собрать минимальную платку и подключить к USB, то можно будет сделать более интересные вещи (скажем, нацепить туда толпу клавиш + индикаторов)

Ну те же яйца и на меге делаются.

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