Переделка кассовых аппаратов. Часть 1
Всем добрый день. Несколько лет назад мне в руки случайно попал старый списанный кассовый аппарат. Назывался он «Элвес микро-Ф». Т.к. я увлекаюсь электроникой и программированием, в том числе и построением различных устройств на микроконтроллерах, аппарат решил исследовать. Разобрав его я увидел:
- плату с электронной начинкой и микроконтроллером AT89С52 в панельке
- дисплей
- термопринтер
- аккумулятор
- пленочная клавиатура
- два светодиода
Рис.1 Внешний вид кассы
На тот момент у меня уже был опыт создания простеньких устройств с нуля (часы, реле с управлением от СОМ порта и т.п.). Разбираться в готовом устройстве казалось намного сложнее. Для начала я нашел в сети описание этого аппарата, схему, ремонтную документацию. Как оказалось, схем есть несколько, различаются они довольно сильно, хотя называются при этом аппараты практически одинаково. Но в итоге, нужную схему я нашел. Поглядел на нее и понял что по сути устройство кассы не такое уж и сложное.
Мне надо было разобраться в:
- как полегче программировать микроконтроллер чтобы не тягать его туда сюда, то в программатор, то назад в плату
- как наладить обмен с компьютером
- как работать с оперативной памятью (а там стояла последовательная AT24C08)
- как рисовать что-то на дисплее
- как получать нажатия клавиш
- и самое главное! как выводить что-то осмысленное на термопринтер
В данной статье, я расскажу о начале моих работ. Конечная цель — создать из старой списанной кассы термопринтер.
Вначале я решил отказаться от того микроконтроллера, который стоял в плате. Во-первых, его можно было программировать только на программаторе, которого для этого типа контроллеров у меня еще и не было. Во-вторых, у него было мало внутренней флеш памяти для программ.
Помучавшись с выбором, я остановился на микроконтроллере Winbond w78e58b. Он был в таком же корпусе (plcc44), имел 32Кб памяти программ и больше внутренней статической памяти для хранения переменных, а главное, позволял программировать себя при помощи внутрисхемного программатора, не вынимая его из панельки!
Но и тут была сложность: чтобы начать его программировать, потребовался параллельный программатор для этого типа микроконтроллера, чтобы зашить bootloader, с помощью которого уже потом я бы заливал свои прошивки. Информацию о том, как сделать такой программатор я нашел в интернете, собрал программатор, зашил bootloader!
Далее была еще одна проблема — у данного аппарата не было разъема для подключения к ПК!
Рис.2 Оригинальная плата интерфейса
Хотя как я вычитал в мануалах, платка такая была, причем и заглушки в корпусе аппарата для нее были и разъем на плате, но достать эту платку сопряжения не получалось. На тот момент ее было в продаже нигде, да и денег она стоила нехилых. Тогда я решил изготовить интерфейс самостоятельно. Выломал из корпуса одну заглушку, разобрал розетку от локальной сети с разъемом для RJ45, вырезал этот самый разъем в кусочком платы и вклеил в корпус кассы на термоклей. В результате снаружи стала отлично до щелчка вставляться обычная витая пара! Осталось подключить контакты разъема к микроконтроллеру. Напрямую конечно нельзя, надо через преобразователь уровней, например MAX232. На маленьком кусочке макетной плате разместил саму микросхему, конденсаторы обвязки, припаял проводки. Спаял кабель для подключения к компу из куска витой пары. С одной стороны обычный RJ45 коннектор, с другой DB9 мама для разъема СОМ порта.
Следующая задача была — это найти компилятор, бесплатный и не особо сложный для таких целей. Мне попался keil microvision. Это была какая-то демо версия с ограничением на длину кода. Для моих целей хватало. Первая программа была простая: вывести на комп в терминальную программу просто что-то типа Hello world!
Программу я написал, сложность была только в начальной инициализации портов и служебных регистров. Но поискав в сети примеры, я с этим быстро справился. Далее, я запустил программу
8051IspWriter, которая заливает прошивки. Для того чтобы микроконтроллер перешел в режим залива прошивки, надо было активизировать встроенный bootloader. Как оказалось, это можно сделать, замкнув на землю вывод контроллера перед подачей питания. Какой именно — нашел в даташите на микроконтроллер. Прошивка залилась, после чего я выключил, включил кассу и на экране терминала увидел свой текст! Система работала!
Далее, я решил немного поуправлять самой кассой, а точнее помигать светодиодом. По схеме определил к какой ноге микроконтроллера идет этот светодиод, я написал простейшую мигалку и на кассе стал мигать светодиод! До конечной цели уже стал виден путь!
Как превратить ККМ в чекопечатающую машину?
Если из современной контрольно-кассовой машины убрать электронную контрольную ленту защищенную, она превратиться в чекопечатающую машину. Но насколько законно ее применение на территории России?
Вопрос о том, может ли организация использовать чекопечатающую машину (ЧПМ) для формирования документа, подтверждающего оплату товара (работы, услуги), и выдавать его покупателям по требованию, неоднократно задавался и налоговикам, и представителям Минфина РФ. Однозначный ответ дало управление ФНС России по г. Санкт-Петербургу в своих разъяснениях на сайте ведомства.
Плательщики ЕНВД по закону могут не применять ККТ, и они вправе осуществлять наличные денежные расчеты и (или) расчеты с использованием платежных карт с условием выдачи по требованию покупателя (клиента) документа (товарного чека, квитанции или другого документа), подтверждающего прием денежных средств за соответствующий товар (работу, услугу). А его можно выпустить, применяя чекопечатающую машину.
Не удивительно, что, начиная с северной столицы, центры технического обслуживания повсеместно начали предлагать услугу по удалению ЭКЛЗ из кассового аппарата. При перепрограммировании ККМ превращается в чекопечатающую машину – аппарат, предназначенный для денежных расчетов с населением плательщиков единого вмененного налога.
- позволяет автоматизировать формирование чека (квитанции), выдаваемого покупателям в соответствии с законодательством РФ,
- имеет программно-аппаратный комплекс защиты информации от искажения персоналом,
- формирует контрольную ленту оформленных документов с возможностью вывода на печать или дисплей ЧПМ,
- позволяет загрузить в базу товаров до тысячи штук с учетом цены, наименования, количества и т.п.
То есть ЧПМ — устройство, которое позволит быстро обслужить покупателей (клиентов) и обеспечит контроль и учет товаров (услуг) на предприятии. Это та же ККМ, только без ЭКЛЗ (который не надо будет ежегодно менять) и блока фискальной памяти. И самое главное – она не подлежит постановке на учет в налоговом органе, а вся информация, хранящаяся в энергонезависимой памяти ЧПМ, является собственностью ее владельца.
Единственное но. В законе прописаны обязательные реквизиты документа, который должен выдаваться плательщиками ЕНВД по требованию покупателя, которых нет в чеке. Это — ФИО продавца, наименование проданного товара, печать и подпись.
Чтобы не нарушать закон (а невыдача документа приравнивается к неприменению контрольно-кассовой техники и карается административным штрафом по статье 14.5 Кодекса РФ об административных правонарушениях), есть два варианта
Бухгалтеры отдают старые ККТ детям для игры в магазин
На смену старым ККТ пришли новые современные онлайн-кассы.
А что делать со старыми аппаратами, куда их девать? Этот вопрос стал предметом обсуждения в группе «Красный уголок бухгалтера» на Фейсбуке.
Как следует из обсуждения, на практике у старых ККТ есть три варианта участи:
1) оправиться на свалку;
2) пылиться на складе;
3) стать игрушкой для детей.
К слову, бухгалтеры ностальгируют об ушедших в былое девайсах. Некоторые долго не могли решиться избавиться от старой пишущей машинки, счетов и старинных калькуляторов.
Фрикер Клуб
лежал у меня старый ненужный кассовый аппарат. решил сделать из него принтер конечно не без помощи ардуино. нашел в сети один исходник и доработал его под свой аппарат. точнее ТПГ была одинаковой а шаговый двигатель разный. скорее всего можно таким способом подключить любую ТПГ
и так ардуина управляет принтером всего по 7 проводам, 2 из которых это управление шаговым двигателем, 4 управление ТПГ и 1 подает питание на мотор и головку одновременно.
да я кстати в курсе что разрешение у него низкое и китайский принтер за 1500 руб печатает куда лучше но цели стать владельцем принтера не было а было желание понять как это работает