111

Сканер штрих-кода, некоторые проблемы и вариант решения

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


Сразу оговорюсь, за спиной диплом специалиста по металлообработке давлением и электротехнику и электронику преподавали ровно столько, чтобы умел читать схемы и не убило током, когда полезу в гидравлический пресс или какую-нибудь роторную машину. Но время идет, интересы меняются и все больше замечаю, что хобби становится работой. А теперь к сути.


Появилась необходимость интегрировать в одну готовую систему небольшой модуль сканера штрих-кода.

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

Начал с поиска документации и спустя пару часов были найдены аналоги, а потом и наш подопытный. Оказалось что на нем реализована возможность общения по USB через FFC шлейф.

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

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

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

Собрав устройство, и протестировав его в разных конфигурациях, было выявлено, что модуль работает стабильно только со шлейфами длиной до 300 мм, со шлейфом 400 мм, устройство начало зависать.


После поочередного исключения возможных причин стало ясно, что модуль зависает только в момент включения устройства и только с шлейфом 400 мм. После включения устройства с шлейфом 400 мм и при последующем отсоединении и присоединении модуля уже к запущенному устройству, модуль включался.


Посидев и подумав о такой капризной работе модуля, было принято решение копать в сторону различий в функционировании при разных условиях. Из устройства был вынут весь обвес модуля, кроме питания. При этих условиях модуль вел себя также, что говорило о непричастности обвеса лампочки, кнопки и USB. Поскольку времени становилось все меньше, то из инструментов было выбрано то, что находилось под рукой: осциллограф, обрезки стеклотекстолита, ЧПУ фрезер и множество различных компонентов. Поэтому для большего понимания процесса, собрал датчик тока до 1А на операционном усилителе по стандартной схеме.

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

Точность измерений большой роли не играло, поэтому не стал искать поверенные датчики тока, зато данную самоделку, можно было подцепить к осциллографу (0,1 А = 1 В) и  получить зависимость потребления тока и напряжения устройством во времени на одном графике.

Проведя небольшую серию экспериментов со шлейфами 50 мм, 150 мм, 300 мм и 400 мм получил графики, отображающие потребление тока в момент включения устройства.

По документации максимальное потребление модулем тока составляет 0,168 А, в ждущем режиме 0,1 А. А по факту...


Желтый график напряжение питания модуля, голубой потребляемый ток.

Включение при использовании 50 мм шлейфа.

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

Включение при использовании 150 мм шлейфа.

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

Включение при использовании 300 мм шлейфа.

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

Включение при использовании 400 мм шлейфа.

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

Как оказалось, само устройство имеет продолжительный переходной процесс выхода питания логики на режим, около 200 мс. Модуль сканера в момент переходного процесса получал ток до 450 мА, а потом, при достижении пороговых значений напряжения включался. Но по каким-то причинам на шлейфах 400 мм модуль зависал намертво. Но при последовательном отключении и подключении шлейфа, при рабочем устройстве, оживал.


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

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

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

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост
Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост
Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост
Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

Яснее не стало... Пассивные элементы без маркировок. Микроконтроллер либо с затертой, либо изначально не нанесенной маркировкой (только номер, скорее всего внутренний номер для производства). Из понятного два резонатора, транзисторы и микросхема память фирмы XMC. Сам элемент считывателя представляет собой CMOS камеру с двумя светодиодами, белым и красным.


Вскрытие ничего не показало...

А значит если причина такого поведения не известна, то надо изменить условия эксплуатации.

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

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

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

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

По факту время задержки практически совпало с расчетным и составило 1,05 с.

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

После проведения повторной серии экспериментов с разными шлейфами, в том числе со шлейфом 400 мм, модуль при включении устройства всегда запускался.


Поскольку оно заработало достаточно стабильно для данного устройства, то решил больше не трогать. Хотя пока не оставляет чувство недоделанного... Непонятна основная причина зависания, так как микроконтроллеры и остальные устройства, работающие от этого же питания запускаются, а данный модуль отказывается. Причем не совсем понятно как влияет 400 мм шлейф и почему с меньшими шлейфами он запускается...


В общем вот такая простыня, может ком-то пригодится, может кто-то скажет что по другому можно решить проблему, а я просто оставлю это здесь.


Всем кота)

Сканер штрих-кода, некоторые проблемы и вариант решения Штрихкод, Ремонт, Электроника, Ремонт техники, Исследование, Длиннопост

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

Найдены дубликаты

+7

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

+5
Вообще ничего не понял, но мне понравилось.
+5

Вспомнилось. Как-то тоже боролся с переходным процессом, только техника была немного мощнее. Работал тогда в городском парке. Получили новый аттракцион от полуразвалившегося на тот момент Ейского завода "Аттракцион". Там было 11 асинхронных двигателей, каждый киловатта по 4 или около того (а может по 8 - не помню). И при запуске аттракциона все они включались одновременно. От их пускового тока у нас в парке заметно проседала трансформаторная подстанция - свет пригасал прям очень заметно, что вообще неправильно, а кроме того могло приводить к сбоям в работе других аттракционов. Вот и пришлось сочинять-паять схему поочерёдного включения двигателей. По условиям аттракциона три двигателя должны включаться сразу (на них исходно стоит поезд), а остальные 8 я разнёс по времени на 1 секунду - то есть последний двигатель включался на 8-й секунде.

+5

У меня на ноутбуке Panasonic CF-U1 накопитель глючил на алюминиевом шлейфе FFC ,а вот на лавсановой ленте с медными проводниками работал как часики...хотя длина была сантиметров 10 всего...На китайский шлейф поставил ферритовое кольцо- пока работает без сбоев....Так и не понял в чем причина была.

+5
Возможно, модуль очень чувствителен по напряжению своей логики. На замерах со шлейфом 400мм по осциллографу максимальный вольтаж - 3.54 в, а отклонение на + 200 мВ может быть критическим для данной микросхемы без маркировки.
Вообще, схема с оптопарой- очень правильное решение проблемы, т. к. развязывает вход со шлейфа и питание на МК. Сколько раз уже сталкивался с некорректной работой устройств по USB при очень большой длине кабеля или при низком его качестве. Причин может быть много, вплоть до высокочастотных наводок со стороны.
Возможно, требовался некий стабилизатор по току, который получился при укорачивании питающей линии через развязку оптопарой.
На правильность размышлений не претендую, тыкы пишу в 7 утра после ночной смены)
+3

А не смущает тот факт, что в usb используется технология дифференциальной передачи данных? То есть диф сопротивление/импеданс витой пары в кабеле 90 Ом +-20% и плоский длинный шлейф для этого совсем не подходит.  Даже на печатной плате, где выдержан импеданс, и с учётом прохождения на внутренних слоях - полуметровая линия usb вызывает стойкое беспокойство.

раскрыть ветку 2
+1

так история в том, что из модуля USB выходит, но на ответной плате обвязка убрана (на время тестов, тоесть по шлейфу только питание шло, а цепь USB разорвана... я сперва тоже думал, что дело в кривом сигнале. Но на деле оказалось, что сам модуль не включается и зависает. На графиках с тестом шлейфов видно, что когда модуль заработал и сигнал пошел то потребление поднимается до 160 мА, потом ждет на 100 мА, а потом уходит в сон. Когда зависает, то потребление постоянно 100 мА и не уходит в сон. А когда длинный шлейф перетыкаешь "нагорячюю" то сигнал проходит, даже USB. Проверял до того как обвязку выпаять...

раскрыть ветку 1
+2

Я человек простой, вижу проблемы по питанию, делаю толще проводник и добавляю конденсаторов)) Моя теория такова - потери напряжения на участке провода u= I*R, в начальный момент времени переходной процесс, т.е. сильный бросок тока. Активное и реактивное сопротивление провода растет с его длинной, вот и напряжение выходит за допустимую границу. Серьезные контроллеры отслеживают такую ситуацию внутренним АЦП и самостоятельно вешают ресет, ну или тупо провисают. Главное помнить, что земляной провод это тоже часть цепи питания и на нем точно такие же потери как и на проводе питания.

+3

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

+1

Костыль

раскрыть ветку 1
0

Фича! Раздельное питание через оптопару помагает в 98% случаев проблем отвала по питанию

Похожие посты
Возможно, вас заинтересуют другие посты по тегам: