RS232 серійний Y спліттер до Raspberry Pi (USB) і термопринтер іноді блокує потік на принтер


2

Ми нюхаємо дані з точки продажу в ресторані (RJ45 - DB9) на його термопринтер, використовуючи спліттер RS232 і Raspberry Pi (DB9 до USB на Pi).

Це спрацювало 99% часу, але дуже рідко POS надсилає звичайну команду друку, а принтер не друкує. Потім, якщо відключити USB на Pi, принтер друкує квитанцію, як якщо б вона була в черзі і заблокована Pi якось. Це не має сенсу, чому він може бути заблокований, як я думав, Y кабель створений 2 окремих потоків послідовних даних, взаємовиключні.

Примітка: Це, здається, відбувається лише тоді, коли скрипт послідовного послідовного порту Ruby на Pi не працює, хоча ми зазвичай вимикаємо скрипт і принтер все ще друкує ...

Я не можу повторити це на вимогу, що зробило його ще більш неприємним.

Відповіді:


3

Деякі речі.

  • Хіба це спліттер дублювати лінії управління, крім Tx, Rx і GND? Якщо так, я б фізично від'єднав ці лінії на стороні Serial-to-USB. Ці лінії можуть використовуватися для керування потоком. Навіть шпилька Tx не потрібна для сторони Raspberry Pi, так що ви також можете відключити її. Тільки RX-GND, здається, достатньо для Pi.
  • Порт RS-232 на POS може бути не в змозі забезпечити достатній струм для двох підключених однорангових вузлів, оскільки він не є стандартним. Використання добре захищених & amp; можуть допомогти коротші кабелі. Насправді, здається, вам не потрібно використовувати цей довгий чорний кабель на стороні POS для тестування.
  • Використання індикатора сигналу RS-232 (наприклад: http://cnc-specialty-store.com/rs232-cables/rs-232-mini-tester-with-led-indicators-db-25-male-to-female ) може допомогти проаналізувати проблему.
  • Слідкуйте за напругою ліній Tx / Rx, використовуючи мультиметри, щоб знайти різницю між нормальними умовами та «застряглим» станом.
  • І не забувайте, що сам USB-Serial конвертер може мати проблеми. Я чув так багато дивних проблем, викликаних перетворювачами USB. Отже, якщо можливо, спробуйте те ж саме тестування без використання USB-послідовних перетворювачів, які, ймовірно, потребують іншого обладнання, наприклад, ПК.

Крім того, використання двох USB-послідовних перетворювачів на Raspberry Pi може допомогти дійсно дублювати дані між принтером і POS, як [Printer] - RS232 - [Raspberry Pi] - RS232 - [POS]. Це, ймовірно, вимагає нової програми на Pi, щоб фактично дублювати послідовні дані, але, принаймні, це не порушить правило RS-232, яке не гарантовано буде працювати на з'єднаннях 1: n. Однак, ця конфігурація може бути також ризикованою, оскільки вона може запровадити питання про терміни, особливо з не-ПК обладнанням. Ви можете спробувати це, якщо нічого не залишилося, щоб спробувати.


+1 для переліку контрольних точок, через які я можу пройти. Дякую. Для перевірки всіх цих параметрів ...
Micah

Ми видалили всі контакти, крім RX, GND, як це було запропоновано в першій кулі, що, здавалося, вирішило проблему. Вирішено!
Micah

Озираючись назад, ми фактично видалили всі контакти, крім Rx і GND, на кінці сплітера, який підключається до послідовного - & gt; USB - & gt; Pi. Ми не мали проблем з тих пір, але тепер я здивований, чому цей кінець спліттера DB9 все ще може передавати дані в послідовний - & gt; USB, якщо він має тільки Rx. Я збентежений, як це все ще може працювати. Будь-яке розуміння? (Повторне читання відповіді, здається, ми повинні були видалити Tx і т.д. шпильки з послідовного - & gt; USB, що має сенс для мене.)
Micah

1
Я вважаю, що спліттер - це просто фізичний роз'єм і взагалі нічого не знає про RS-232 або послідовних комунікаціях - він просто з'єднує все, як якщо б ви поставили перемичку на кожній лінії за допомогою проводки. І, як я вже сказав, підключення спліттера до існуючого RS-232 фактично порушує правило RS-232, яке розраховане на підключення від 1 до 1. Так що ваша конфігурація в принципі не гарантується. Тому я запропонував, щоб ми звели до мінімуму вплив на існуюче з'єднання RS-232.
Scott Rhee
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.