Доброго времени суток.
Есть плата от 3D принтера
↓ спойлер ↓
33877169-dc614bf4-df27-11e7-8166-282fd7446d55.png
Под
USB разъёмом вместо обычного преобразователя
USB-UART у неё стоит цельный микроконтроллер
mega16U.
При подключении по
USB плата представляется следующим образом:
ID 2341:0042 Arduino SA Mega 2560 R3 (CDC ACM)
Судя по всему 16-я мега абсолютна прозрачна и по дорожкам подключена только к
USB и
UART интерфейсу меги
2560Вопросы:
Какую цель по вашему мнению преследовал производитель так усложняя и удорожая плату?
Может ли этот микроконтроллер заниматься чем-то ещё кроме как конвертировать интерфейсы?
Если как-то поможет, прилагаю её прошивку в hex виде.
Ну так раньше даже у простой ардуины уно так было.
Вопрос "что она делает" интересный, но вот объяснять "зачем производитель так сделал" - это нужно производителя и спрашивать. Захотел и сделал... Мост USB<->Serial на деле не так-то прост в силу сложности самого протокола USB. Да, сейчас есть много микросхем-мостов, но были ли они тогда, когда проектировали данный девайс? Вообще, Mega16 не особо дорога по сравнению с Мегой256 - просто маленький контроллер (да, сейчас цены взлетели, тем не менее это так).
Что касается .hex, то есть только один путь - разобрать его и посмотреть, что он делает.
Вот, здесь (https://microsin.net/programming/avr-troubleshooting-faq/how-to-disassemble-binary-avr-code.html) неплохой вариант.
Можно руками разобрать .hex на байты и дизассемблировать, руками же. Объём там небольшой.
Структура .hex достаточно проста, вот здесь (https://cxem.net/mc/book26.php) написано вкратце, ещё здесь поподробнее (https://spd.net.ru/Article/Intel-HEX), ну и на wiki конечно есть: https://ru.wikipedia.org/wiki/Intel_HEX
А зачем hex разбирать, исходники оптибута вроде доступны
https://github.com/Optiboot/optiboot/tree/master/optiboot/bootloaders/optiboot
А как понять, это этого хекса исходники, или ещё чего?
Тут две части, чуть меньше, чем четыре тысячи команд. Всего ничего... Заодно и ASM прокачается :)
Благодарю, попробую разобраться.
Ну и куда пошёл? ??? HEX будем разбирать или как? ::)