POS терминал Verifone подключение по RS232 через UART к микроконтроллеру (STM32)
В качестве подопытного используется терминал Verifone VX520. Подклчение будет производится к STM32, но оно одинаковое и для Arduino, TI, Microchip...
Устройство имеет два возможных выхода, которые могут быть нами использованы (не считая разъем USB-A для внешней клавиатуры (PIN-PAD)), это разъем miniUSB и разъем RJ45.
Купить на Aliexpress
?️ RS232 Micro Converter (MAX3232) (1?/5pcs): https://ali.ski/WjFskT
?️ USB TO TTL RS232 (MAX3232) (0.48?): https://ali.ski/Nkk81
?️ More RS232-UART converters ➡️ https://ali.ski/gu7pT
?️ STM32F401 Module (3.50?): https://ali.ski/T9_RBe
?️ STM32F401 Black Pill USB C (3.88?): https://ali.ski/wvygW
?️ STM32F401 DevBoard Type-C (3.46?): https://ali.ski/SvrJ8d
Подключение к интернету
Подключить этот терминал к сети интернет можно через:
- Dial-up link
- Ethernet
- GPRS
Самым стабильным конечно же будет Ethernet, подключаемый по кабелю в разъем RJ45. Способ связи может быть только один, в настройках его нужно выбрать и терминал перезагрузится.
Проверка связи: ГЛАВНОЕ МЕНЮ -> ТЕСТЫ -> ХОСТ, транзакция должна пройти успешно.
Режим трассировки
Для того, чтобы проверить корректность подключения можно включить режим трассировки, для этого нажать на правую сиреневую кнопку и ввести функцию номер 56 (может быть другой номер), терминал перезагрузится. Теперь выполняемые операции будут слаться в виде текста и через miniUSB и через RS232:
После проверки, для дальнейшего использования этот режим нужно выключить!
Выбор способа связи с кассой (микроконтроллером)
Но, чтобы общаться с кассой нужно выбирать только один вариант (miniUSB или RJ45-RS232), для этого вводим функцию и выбираем нужное, мне нужен RS232, значит ставлю COM1 порт, далее терминал перезагрузится:
Используя USB кабель через miniUSB
можно подключиться к ПК или телефону, скорость при этом устанавливаем 9600 бод/с, устройство определится как COM-порт.
Преобразователь
Для нас интереснее использовать именно RS232, его выход на разъеме RJ45 (не путать с интернетовским, они подписаны!), для дальнейшего использования с микроконтроллером понадобится преобразователь RS232-UART (у меня самый простенький на микросхеме MAX2323).
Подключение должно быть надежным и правильным, прозвоните после обжимки:
Первоначально можно подключить дополнительно обычный USB-TTL преобразователь для общения через ПК/телефон, что гораздо удобнее на первичных этапах проверки команды оплаты.
Если вы точно не знаете какой вывод за что отвечает, то сначала ищите землю, а далее осликом cмотрите на каком из выводов высокий уровень - это будет TX, а RX рядом с ним (для rs232 щупы подключать в обратной полярности, если не поддерживается отрицательное напряжение).
Также это удобно будет сделать методом научного тыка в режиме отладки (TRACE).
Теперь уже можно это подключать к МК (не забываем вырубить трассировку)
Hi! Ну так чем дело то кончилось? Про преобразователи интерфейсов все знают.
Когда будем делать свою кассу на stm32? Лайк точно поставлю
Знают, но в сети инфы применительно именно к терминалам почти нет (не было) даже о просто подключении, а дальше...
А дальше там идут вообщем-то просто запрос-ответ с контрольной суммой через UART на 115200 бод/с, документация на сколько я понимаю будет отличаться, её обычно предоставляют там, где покупается/берется в аренду терминал.
Протоколом не поделитесь?
Не могу предоставить документ, который мне был предоставлен, в любом случае он скорее всего не подошел бы к вашему терминалу. Но скидываю очень похожий (из открытых источников):
pos-2-ecr-en-v03-00-rev07.pdf
В любом случае документацию (и поддержку, т.к., например, изменение типа связи интернет (с GPRS на ETHERNET) у меня происходило через них) именно под ваш терминал предоставит продавец.