Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32 и принтер
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Granadoespada
Помогите пожалуйста! Бьюсь уже не один день. Кто нибудь делал реализацию подключения принтера на прямую к мк из серии STM32 по какому-либо интерфейсу?
1113
Цитата(Granadoespada @ Jan 11 2016, 12:37) *
Бьюсь уже не один день.
над чем, что не работает?
Granadoespada
Много тем уже перечитал, не могу найти точного объяснения как лучше реализовать данное соединение, при соединение по usb пишут что надо создавать собственный драйвер, не совсем понятно как это будет работать, если есть возможность вкратце могли бы объяснить что да как?
scifi
В гугле забанили?
тынц
Granadoespada
Нет, не забанили. Надеюсь что здесь хоть кто то сможет подсказать и разъяснить как сделать.
scifi
Цитата(Granadoespada @ Jan 11 2016, 12:58) *
Нет, не забанили. Надеюсь что здесь хоть кто то сможет подсказать и разъяснить как сделать.

Ты есть по ссылкам, которые вам тут дают, не ходите, и тексты там не читаете принципиально? Ну ладно.
Granadoespada
По ссылкам хожу, извините если туплю. Просто мне бы хотелось если это возможно хоть каких нибудь примеров и разъяснений ели это возможно. Может кто нибудь все таки уже разбирал данный вопрос.
megajohn
Цитата(Granadoespada @ Jan 11 2016, 12:37) *
Кто нибудь делал реализацию подключения принтера на прямую к мк из серии STM32 по какому-либо интерфейсу?
Просто мне бы хотелось если это возможно хоть каких нибудь примеров и разъяснений ели это возможно.


самое простое это по UART / RS232. Такой поддерживают почти все чековые принтеры ( Argox OS-2130D, Brother QL650TD, Меркурий119 ) и не только.
Далее читате что за протокол реализован в вашем принтере. Самые простые это ESC-POS и Datamax (использовал и чуть чего подскажу), epl2 и SLCS ( не приходилось применять )

описание вышеперечисленных протоколовНажмите для просмотра прикрепленного файла

вот пример обмена по Esc POS
CODE
//Initialize ( ESC + @ )
> 1B 40
< none

//Status information request ( ESC + i + S )
> 1B 69 53
< 80 20 42 30 51 30 00 00 00 00 1D 0A 00 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

//Switch command mode = ESC/P standard mode ( ESC + i + a + \x01 )
> 1B 69 61 01
< none

//Print information command = For the starting page of die-cut labels (29 mm ? 90 mm) with priority given to print speed ( ESC + i + z + ... )
> 1B 69 7A 00 0B 1D 5A DF 03 00 00 00 00
< none

//Set each mode = To select Auto Cut ( ESC + i + M + @ )
> 1B 69 4D 40
< none

//Set expanded mode = set Cut at end flag ( ESC + i + K + \x08 )
> 1B 69 4B 08
< none

// Set margin amount
// 0x00 = 0 mm margins ( ESC + i + d + \x00 + \x00 )
// 0x23 = 3 mm margins ( ESC + i + d + \x23 + \x00 )
// how calc: arg * 25,4 / 300 = 35 * 25,4 / 300 = 2,963 mm = ~3mm
> 1B 69 64 00 00
< none

//Compression mode selection ( + )
> 4D 00
< none

//Raster graphics transfer N = 90
cm ar sz 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
> 67 00 5A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
< none
...
> 67 00 5A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
< none

// Print command with feeding
> 1A
< none


Granadoespada
Извините, что туплю очень сильно! А на каком языке приведен код?
Jury093
Цитата(Granadoespada @ Jan 11 2016, 14:48) *
Извините, что туплю очень сильно! А на каком языке приведен код?

в гугле забанили?
https://en.wikipedia.org/wiki/ANSI_escape_code
Granadoespada
Спасибо за ответы. А примеры с использованием Си или Си++???
scifi
Цитата(Granadoespada @ Jan 11 2016, 14:48) *
Извините, что туплю очень сильно!

Вообще-то "тупить" - это нечто иное. "Не знать и не хотеть знать" больше подходит.
Может, лучше в "начинающие" перенести?
hd44780
Принтер и чековый принтер это разные вещи.
Принтеры могут быть с LPT - тогда подключить легко - команды все давно известны, но если USB - имхо нереально. Протоколы у всех разные, даже если и раскурите какой-то один принтер, то только он один и будет работать.

Чековые принтеры, в простонародье кассовые аппараты (КА) гораздо проще. Но опять же если он COM-портовый. Но в любом случае, надо знать протокол.
Я работал (на компе, не на МК) с 3-мя КА, у 2-х из них протокол был один и тот же, у третьего совершенно иной.

Поэтому, Granadoespada, потрудитесь объяснить, "что ты имела в виду"? Лично я ни фига не понял sad.gif .
jcxz
Цитата(hd44780 @ Jan 11 2016, 22:05) *
Принтер и чековый принтер это разные вещи.
Принтеры могут быть с LPT - тогда подключить легко - команды все давно известны, но если USB - имхо нереально. Протоколы у всех разные, даже если и раскурите какой-то один принтер, то только он один и будет работать.

Я думаю - не всё так мрачно.
Вот передо мной лежит девайс разработки N-летней давности сделанный на каком-то стареньком МК от ST (ещё 8-битном). Он имеет USB-разъём для подключения принтера. В РЭ есть список совместимых принтеров разных производителей.
Попробуйте погуглить по словам: USB, PictBridge.
megajohn
Цитата(hd44780 @ Jan 11 2016, 19:05) *
Принтер и чековый принтер это разные вещи.


дануна ! ( древнерусская богиня удивления=) )

Цитата(hd44780 @ Jan 11 2016, 19:05) *
Принтеры могут быть с LPT - тогда подключить легко - команды все давно известны, но если USB - имхо нереально


что последовательный порт, что параллельный - в итоге то команды управления
вот пожалуйста, Чековый принтер с параллельным портом
страница 9
Эдди
Принтер принтеру рознь! Если всякие говна вроде HP, EPSON и прочих кэнонов даже к компьютеру фиг подсоединишь, чтобы работали, как их подсоединять к мелкоконтроллеру? Спецификаций протокола ведь нет!
Вот постскрипт-принтер, работающий на LPT — да, реально.

А вот если говорить о чековых принтерах, то там все намного проще обычно, т.к. они и рассчитываются на работу с мелкоконтроллерами.
Granadoespada
Я имел ввиду, что есть stm32 микроконтроллер с USB входом и есть задача по подключению USB принтера к данному микроконтроллеру, хотелось бы узнать возможно ли это сделать, это напрямую соединяя c помощью USB интерфейса, либо возможно использование другого интерфейса с помощью каких либо преобразователей интерфейсов, и соответственно печать на принтере данных с микроконтроллера.


Уважаемый scifi, если бы я не хотел разобраться с данным вопросом, и не хотел знать чего то, то не сидел на данном форуме и не задавал вопросы. Да я признаю что возможно моих знаний в каких то вопросах не хватает, и я задаю глупые вопросы. Но я бы хотел увеличить свои знания и если вы мне с этим поможете, то я буду Вам только благодарен. И да я признаю что я новичок в работе с микроконтроллерами, но еще раз повторю хотел бы развить свои знания.
mantech
Цитата(Granadoespada @ Jan 12 2016, 10:42) *
Я имел ввиду, что есть stm32 микроконтроллер с USB входом и есть задача по подключению USB принтера к данному микроконтроллеру, хотелось бы узнать возможно ли это сделать, это напрямую соединяя c помощью USB интерфейса, либо возможно использование другого интерфейса с помощью каких либо преобразователей интерфейсов, и соответственно печать на принтере данных с микроконтроллера.


Если новичек - не потянуть вам этого, тут все куда более "запущено".

Во первых нужен драйвер принтера (в винде он видится, как DOT4), как на самом деле он зовется - хз, делает эмуляцию LPT порта под усб. Затем драйвер самого принтера, если повезет, он окажется PCL5(6) совместимый, тогда сделать парсер языка PCL или PS, после этого можно работать.
Другое дело, что в открытом виде нужно либо расколупывать линукс (это что-то с чем-то даже для профессионалов), либо очень долго и нудно искать.
Так что вот, такой расклад wacko.gif
ЗЫ. Но как правило принтаки попадаются с RAW протоколом, т.е. проприентарный, без доков, да и многие поддерживают USB HS-ONLY, т.е. в СТМ только через костыль USB3300.
Granadoespada
Спасибо за ответ!
jcxz
Цитата(Granadoespada @ Jan 12 2016, 13:42) *
Я имел ввиду, что есть stm32 микроконтроллер с USB входом и есть задача по подключению USB принтера к данному микроконтроллеру, хотелось бы узнать возможно ли это сделать, это напрямую соединяя c помощью USB интерфейса, либо возможно использование другого интерфейса с помощью каких либо преобразователей интерфейсов, и соответственно печать на принтере данных с микроконтроллера.

Вам уже ответили. Читать умеете???

Цитата(mantech @ Jan 12 2016, 14:45) *
Другое дело, что в открытом виде нужно либо расколупывать линукс (это что-то с чем-то даже для профессионалов), либо очень долго и нудно искать.
Так что вот, такой расклад wacko.gif

Гуглить: PictBridge
Granadoespada
Люди попросили более конкретно написать что мне требуется. Вот я и расписал. Читать умею.
mantech
Цитата(jcxz @ Jan 12 2016, 13:25) *
Гуглить: PictBridge


Как вариант интересно, тут хоть какой-то общий стандарт, но опять-же линукс-онли, плюс только поддерживающие PictBridge принтеры.
jcxz
Цитата(mantech @ Jan 12 2016, 18:56) *
Как вариант интересно, тут хоть какой-то общий стандарт, но опять-же линукс-онли, плюс только поддерживающие PictBridge принтеры.

Причём тут линух???
Там вроде-бы как раз наоборот пишут что: "PictBridge cannot be implemented as free software or open source software"
т.е. похоже придётся что-то подписывать чтобы получить доку по нему. Ну или реверсить готовое.

PS: Ещё, как вариант, полазить по РЭ различных фото-мыльниц (и не мыльниц) - бывает в них описывают возможность прямой печати фоток без использования компа, путём подключения принтера напрямую к USB мыльницы. Такие принтеры должны поддерживать какие-то стандартные протоколы работы.
scifi
Цитата(jcxz @ Jan 12 2016, 17:01) *
Там вроде-бы как раз наоборот пишут что: "PictBridge cannot be implemented as free software or open source software"

Это не значит, что нельзя скоммуниздить laughing.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.