Closed Fantonrko closed 1 year ago
Наверное, могу. А в каком месте вопрос?
пт, 22 апр. 2022 г., 15:50 Fantonrko @.***>:
Здравствуйте. Не могли бы вы более подробно объяснить приём данных в вашем коде ?
— Reply to this email directly, view it on GitHub https://github.com/ruprotaf/MDB-UART-converter-from-Atmega644p--Arduino-mega-etc-/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALQB64KKQ4IVA767JQ22PHLVGKOBTANCNFSM5UCHPHAA . You are receiving this because you are subscribed to this thread.Message ID: <ruprotaf/MDB-UART-converter-from-Atmega644p--Arduino-mega-etc-/issues/1@ github.com>
Я пытаюсь подружить ардуинку/еспешку/нрфку по юарту с достаточно применяемыми у нас купюроприемниками CashCode SM / MVU. Я не прям силён в программирование, написал простенькую библиотеку под отправку данных UART | MDB, так как необходимо было устанавливать Parity бит в 1 лишь на первом пакете. Сейчас столкнулся с проблемой что при отправке данных, например для корректного запуска купюроприемника, необходимо ответить ему. Но не совсем разобрался как можно считать приходящие данные.
Имею готовый адаптер под RS232-MDB, там происходит примерно следующая картина:
А, ну если не знаешь как данные принять по UART - то учись, материалов полно.
пт, 22 апр. 2022 г., 18:24 Fantonrko @.***>:
Я пытаюсь подружить ардуинку/еспешку/нрфку по юарту с достаточно применяемыми у нас купюроприемниками CashCode SM / MVU. Я не прям силён в программирование, написал простенькую библиотеку под отправку данных UART | MDB, так как необходимо было устанавливать Parity бит в 1 лишь на первом пакете. Сейчас столкнулся с проблемой что при отправке данных, например для корректного запуска купюроприемника, необходимо ответить ему. Но не совсем разобрался как можно считать приходящие данные.
Имею готовый адаптер под RS232-MDB, там происходит примерно следующая картина: [image: image] https://user-images.githubusercontent.com/86648566/164745273-2a054611-60d1-4ef1-ab65-4cdb9661582b.png
— Reply to this email directly, view it on GitHub https://github.com/ruprotaf/MDB-UART-converter-from-Atmega644p--Arduino-mega-etc-/issues/1#issuecomment-1106622880, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALQB64MBURA4FMSXADJFVCTVGLAD5ANCNFSM5UCHPHAA . You are receiving this because you commented.Message ID: <ruprotaf/MDB-UART-converter-from-Atmega644p--Arduino-mega-etc-/issues/1/1106622880 @github.com>
А, ну если не знаешь как данные принять по UART - то учись, материалов полно. … --- С уважением, Протасов Федор пт, 22 апр. 2022 г., 18:24 Fantonrko @.***>: Я пытаюсь подружить ардуинку/еспешку/нрфку по юарту с достаточно применяемыми у нас купюроприемниками CashCode SM / MVU. Я не прям силён в программирование, написал простенькую библиотеку под отправку данных UART | MDB, так как необходимо было устанавливать Parity бит в 1 лишь на первом пакете. Сейчас столкнулся с проблемой что при отправке данных, например для корректного запуска купюроприемника, необходимо ответить ему. Но не совсем разобрался как можно считать приходящие данные. Имею готовый адаптер под RS232-MDB, там происходит примерно следующая картина: [image: image] https://user-images.githubusercontent.com/86648566/164745273-2a054611-60d1-4ef1-ab65-4cdb9661582b.png — Reply to this email directly, view it on GitHub <#1 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALQB64MBURA4FMSXADJFVCTVGLAD5ANCNFSM5UCHPHAA . You are receiving this because you commented.Message ID: <ruprotaf/MDB-UART-converter-from-Atmega644p--Arduino-mega-etc-/issues/1/1106622880 @github.com>
Не совсем так, в вашем примере не работает приём сигналов, абсолютно никаких, ни прерываний ничего, потому я и спросил как вы принимаете сигнал, если у вас конечно есть работающий вариант или исправленная библиотека. От которой можно оттолкнуться в приёме данных с других купюроприемников
А, ясно. Может не сразу понятно, но код, который находится например, в [ArduinoMDBBill.ino] предназначен для микроконтроллера, подключаемого к "переходнику-преобразователю" с двумя аппаратными uart. Посмотри файл электросхема.pdf Без переходника ничего работать не будет. Ты собрал его и залил туда прошивку? Этот переходник дописывает девятый бит в пакет при передаче в сторону MDB и удаляет 9й бит при приеме. Поэтому у тебя в логическом анализаторе framing error - выбери типа парсера протокола MDB на 9 байт.
Вот как, теперь понял. А в чём состоит основная проблема при использовании микроконтроллеров с одним юартом, без последующей передачи на ПК или иное устройство ? Почему-то не могу найти похожих решений в интернете.
Фото с логического анализатора сделано при слежке с рабочим адаптеров RS232-MDB, он так же принимает в себя 9-й бит, хоть и не использует его. Хочу вот сделать подобный девайс, но без подключения к пк, лишь обработку на самому микроконтроллере, но материалов не хватает. Не могли бы вы подсказать материалы на счёт чтения данных или же подсказать откуда или с какого кода можно оттолкнуться ?
На микроконтроллере с одним уартом не получается писать 9й байт. Аппартаный - программный не успевает. А вот два аппаратных можно обхитрить. MDB_version_4-2.pdf Пожалуй, в этом файле вся исчерпывающая информация. На 29й странице описание 9го бита - бита режима (адрес или данные). Собери конвертер и управляй оборудованием без компьютера. Без конвертера ни с компьютера ни с МК не получится.
Хмм, а с какой периодичностью идёт отправка пакетов ? Я отправляю с программного юарта под 9 бит, каждые 35 миллисекунд, отправка не сбоит, купюроприемник принимает команды, на некоторые ( без дополнительной корректировки ) реагирует. Или у других купюроприемников потребность в скорости приёма данных выше ?
Читай документ, тут все есть. С UART невозможно отправлять 9 бит, то что то путаешь. Меньше - можно, а больше - нет. Там буфер то 8ю ограничен, и принимает только по 8. Вот:
Видимо мне нужно более внимательно читать документацию. Но я всё же отправляю с софтового 9 бит примерно на такой скорости ( первый пакет 0x12 и второй пакет 0x12 ), их купюроприемник распознаёт
Наверное это бит четности? Девятый? Ну, повезло, что совпало)
Да, бит чётности, но не совсем. Я так понимаю что скорость для одного байта должна быть менее 1мс ?
Откуда ты взял это число? Скорость 9600 бод\с или 9600/11бит=872,7 байт\с или 1/872,7=0,001145834 с на один бит.
Так, а почему тогда программный не успевает ? Я вот вроде отправляю команду, читаю, пока всё работает. Разобрался к стати немного с кодом чтения. Теперь интересна процедура распознавания купюр
Не успевает при передаче между программным и аппаратным в конвертере 9го бита. Если у тебя получилось без конвертера прикрутить 9й бит - что же, круто! Не забудь потом рассказать как ;)
Как допишу обработку купюр залью на гитхаб, пока это единственное что осталось
Ну как успехи? Я смотрю у тебя в репозитории есть обсуждаемаая библиотека, но залита до обсуждаемой проблемы.
Таких результатов удалось добиться: https://youtu.be/dupsBAb5Sjs
Так же делаю эмуляцию купюроприемника, монетника и пейпасса в кофейных автоматах :)
Не, ну это не серьезный ответ. То что работает это понятно. Оно и у меня работает, только через 2 микросхемы. Ты с ардуины сделал 9-битный RX/TX? Покажешь?
не с ардуинки, а с esp32 и к счастью без аппаратного uart, так что теперь имеется возможность допрокинуть пару внешних устройств для отправки данных по юарту
А на счёт показать, жду ответа от краундфандинговой платформы, которая бустит опенсоурсные проекты. Смогу придать проекту большей огласки, нежели забытый гитхаб
А... ну это другое дело. Тут то имено идея в arduino IDE - что бы все кто попало вендингом мог заниматься)
Дак я и использую Arduino IDE. Думаю те кто достаточно освоился в ESP-IDF могут достичь большего, но я не из их числа, потому пока сижу тут
Здравствуйте:) поделитесь кодом на ESP !
А нету! ;)
сб, 4 февр. 2023 г. в 15:46, hemchik @.***>:
Здравствуйте:) поделитесь кодом на ESP !
— Reply to this email directly, view it on GitHub https://github.com/ruprotaf/MDB-UART-converter-from-Atmega644p--Arduino-mega-etc-/issues/1#issuecomment-1416756243, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALQB64KZ2T2DHCBPOSJAJULWVZMT7ANCNFSM5UCHPHAA . You are receiving this because you modified the open/close state.Message ID: <ruprotaf/MDB-UART-converter-from-Atmega644p--Arduino-mega-etc-/issues/1/1416756243 @github.com>
Здравствуйте. Не могли бы вы более подробно объяснить приём данных в вашем коде ?