Jump to content

    
Sign in to follow this  
pnp_mechanic

Чековый USB принтер и STM32

Recommended Posts

лет 8-10 назад я был в нехорошей ситуации: У заказчика был станок для резки металла, моща чего-то там - больше 60 Квт.
"Мозги" сей железки были весёлыми: обычная ATX плата + USB клавиатура. В процессе работы USB отваливался и... ну, вы поняли: брак, мат, деньги :(
А так как авторы сего чуда тихо растворились на бескрайних просторах нашей Родины, то пришлось мне изобретать велосипед и делать выносную клавиатуру.
Обошелся RS-232 и какой-то мелкой atmega для создания PS/2 клавиатуры.
За это время больше не обращались...
Ну, вы поняли: "домашний" USB тут нельзя применять!

Share this post


Link to post
Share on other sites
1 час назад, aleksandr-zh сказал:

Ну, вы поняли: "домашний" USB тут нельзя применять!

Кто в теме, уже давно это поняли, ибо усб работает только тогда, когда рядом есть человек, который при глюках всегда может включить\выключить или перезагрузить...

1 час назад, aleksandr-zh сказал:

обычная ATX плата + USB клавиатура.

Не удивлюсь, если и сам станок к компу по усб подключен был :biggrin:

Edited by mantech

Share this post


Link to post
Share on other sites
2 часа назад, aleksandr-zh сказал:

 В процессе работы USB отваливался и... ну, вы поняли: брак, мат, деньги :(
 

Да, сам такое наблюдал, станок плазменной резки + Mach3.

Любой провод длиннее 100 мм., в том числе мышь и кл., работают как антенна.

Не смотря на полную гальваническую развязку PC от станка, мышь и кл. виснут.

Если принтер зависает, всех проблем-то  чека не будет.

Фискальную память для такого случая никто не отменял.

А вот  приёмник  денег конечно важен и он уже имеет RS232 или вообще счётный выход.

Другое дело, что USB становится  все более и более распространённым  интерфейсом.

И рано или поздно USB осваивать нужно....

 

Share this post


Link to post
Share on other sites
2 часа назад, mantech сказал:

Не удивлюсь, если и сам станок к компу по усб подключен был

Врать не буду, не видел. Всё удаленно дела...

 

7 минут назад, pnp_mechanic сказал:

А вот  приёмник  денег конечно важен и он уже имеет RS232 или вообще счётный выход.

ну, тут как раз проще: всегда опрашиваешь и всегда можешь сделать перезапуск или типа того. У меня все купюрники (с хопером) и монетники по МДБ подключены, её можно перезапустить длинным импульсом по шине данных.

 

8 минут назад, pnp_mechanic сказал:

USB становится  все более и более распространённым  интерфейсом.

И рано или поздно USB осваивать нужно

Истину глаголите. К сожалению, с ней (я про usb 3) вообще молчу на 8-битках не поднять...

Share this post


Link to post
Share on other sites
26 минут назад, pnp_mechanic сказал:

Другое дело, что USB становится  все более и более распространённым  интерфейсом.

Да он и так уже распространен больше некуда, другое дело, что его надежность для необслуживаемых применений лучше не стала и не станет...

18 минут назад, aleksandr-zh сказал:

У меня все купюрники (с хопером) и монетники по МДБ подключены

Протокол МДБ писали с нуля или какими исходниками пользовались, если да, не поделитесь случаем?

Share this post


Link to post
Share on other sites
В 16.03.2020 в 01:37, aleksandr-zh сказал:

ну, тут как раз проще: всегда опрашиваешь и всегда можешь сделать перезапуск или типа того. У меня все купюрники (с хопером) и монетники по МДБ подключены, её можно перезапустить длинным импульсом по шине данных.

А кто мешает сделать то же самое с USB-девайсом? Там всё для этого есть.

В 15.03.2020 в 22:45, mantech сказал:

Кто в теме, уже давно это поняли, ибо усб работает только тогда, когда рядом есть человек, который при глюках всегда может включить\выключить или перезагрузить...

В чём проблема передёрнуть USB-устройство программно? Для этого человек не обязателен.

Share this post


Link to post
Share on other sites
16 минут назад, jcxz сказал:

В чём проблема передёрнуть USB-устройство программно?

Проблема в том, что после программного "передергивания" устройство часто не оживает, и требуется уже передергивание питания, а это можно сделать только, если есть аппаратный ключ, а он не на всех платах...

ЗЫ. а в случае ТСа даже оно не поможет, т.к. принтер питается не от усб...

Edited by mantech

Share this post


Link to post
Share on other sites
16 минут назад, mantech сказал:

Проблема в том, что после программного "передергивания" устройство часто не оживает, и требуется уже передергивание питания, а это можно сделать только, если есть аппаратный ключ, а он не на всех платах...

Если такое происходит, то причина этого скорее всего - корявое ПО USB-драйвера/стека этого девайса. Видя как оно реализовано во многих открытых "либах", которые народ обычно и используется для работы с USB, не приходится удивляться.

Программное передёргивание легко обнаруживается нормально работающим USB-драйвером. И по нему можно сделать всё что угодно, вплоть до полной перезагрузки устройства.

Цитата

ЗЫ. а в случае ТСа даже оно не поможет, т.к. принтер питается не от усб...

Какая разница от чего питается? Отключение/подключение хоста должно видеться USB-драйвером. Или Вы о зависании устройства вызванном схемотехническими причинами, из-за реализации неправильной схемотехники USB-канала, при котором и firmware перестаёт работать?

Share this post


Link to post
Share on other sites
5 минут назад, jcxz сказал:

Или Вы о зависании устройства вызванном схемотехническими причинами, из-за реализации неправильной схемотехники USB-канала, при котором и firmware перестаёт работать?

Именно. Сталкивался с этим не раз и самое печальное то, что я ничего не могу с этим сделать кроме, как не использовать данное устройство или искать его аналог. Причем чаще всего, устройство само по себе работает, а порт висит...

Share this post


Link to post
Share on other sites
1 минуту назад, mantech сказал:

Именно. Сталкивался с этим не раз и самое печальное то, что я ничего не могу с этим сделать кроме, как не использовать данное устройство или искать его аналог. Причем чаще всего, устройство само по себе работает, а порт висит...

Ну да - кривая реализация часто бывает не только у ПО, но и у схемотехнических решений. Но такое бывает не только с USB.

А вообще - на прошлой работе мы со своими устройствами с USB проводили полные испытания на устойчивость к ЭМС: и разрядником стреляли и по эфиру.

Share this post


Link to post
Share on other sites
42 минуты назад, jcxz сказал:

кривая реализация часто бывает не только у ПО, но и у схемотехнических решений.

Бывает, раз уж в imx6s пришлось столкнуться с кривизной в УАРТе, то уж усб, который на порядок сложнее, ничему не удивлялся.

 

42 минуты назад, jcxz сказал:

А вообще - на прошлой работе мы со своими устройствами с USB проводили полные испытания на устойчивость к ЭМС: и разрядником стреляли и по эфиру.

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

Когда использовали микрокомпьютеры с виндой, так у них даже драйвера хоста слетали...

 

ЗЫ. Возможно, если делать "свое" устройство, которое подключено к "своему" хосту, сделаны все обработчики ошибок и инита в случае сбоя - то будет все работать, но тогда наига усб? Это можно и с помощью уарта (рс485) сделать, что в разы проще и надежнее, усб именно тем и привлекает, что можно сторонние устройства подключать...

Edited by mantech

Share this post


Link to post
Share on other sites
23 минуты назад, mantech сказал:

Единственное, что стабильно работает - радиомышки, т.е. трансиверы, что в усб втыкаются

во-во! Буквально месяц назад шаманили у приятеля: станочек с Mach3, просто фреза. Но двигатель шпинделя через "частотник" подключен. И всё равно иногда клавиатура и мышь отваливались. Решили проблему заменой на беспроводные.

кум рассказывал лет 10 назад. Для ЖД (не РФ) делали "костыль", который или по таймеру (сколько-то там раз в сутки), или по внешней команде через RS-232 отключал банальной релюшкой И питание USB, и шины данных внешнего "черного ящика" сторонней конторы, который вис при прибытии составов или электрички на станцию.

Простое отключение питания "ящика" не помогало, так как питания с шин данных явно хватало для поддержания неких процессов в этом устройстве. Что за устройство - не спрашивал, дабы не создавать куму проблем :)
но его мат и эмоциональные жесты говорили что "проблема была, решалась трудно и немного рискованно" :biggrin:

Edited by aleksandr-zh

Share this post


Link to post
Share on other sites
29 минут назад, mantech сказал:

Это можно и с помощью уарта (рс485) сделать, что в разы проще и надежнее, усб именно тем и привлекает, что можно сторонние устройства подключать...

Сомневаюсь что сможете по RS485 получить 1 МБ/сек.

Share this post


Link to post
Share on other sites

ну да, "только" 256000 на пару метров :biggrin:

{ФЛУД}
 

Спойлер

 

(как вспомню, как в 2004м делал телеметрию на десятке Бод... А через 10 лет - на 100 Бод.

Зажрались (шучу-шучу!)

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this