Понадобился МК с двумя UART'ами. Посмотрел цены на Али, выбор пал на Atmega64A. Заказал, получил, впаял. И, сразу же, срочно, нужно его программировать. Подключил USBASP, оболочка AVRDUDE_PROG - моя любимая связка. Давай программировать, но не тут то было - ошибка. Первый ляп с подключением программатора. Аппаратный SPI и SPI для программирования - это не одно и то же, выводы разные. Ну, с этим быстро разобрался, подключил как надо - контроллер увиделся. Давай программировать. Новый ляп, запись происходит успешно, но при верификации выскакивает ошибка: "Ошибка верификации. Возможно установлены Лок биты". Но никаких lockbits не установлено.
Причем фьюзы прошиваются, меняются, читаются.
Написал ногодрыг на все порты, чтобы проверить работает ли прошивка. Не работает. Но ведь прошивка и записывается и считывается. Считал то, что залил в МК и сравнил с образцом, отличия существенные. Слева считанная прошивка, справа оригинал.
В сети ничего похожего не нашел, подумал, что есть еще какая-то тонкость в программировании, полез в даташит разбираться. Ну да, мы в документацию лезем только когда что-то не работает. В общем решения проблемы так и не нашел, убил два дня на поиск ответов. А потом пришла мысль попробовать другую оболочку Дудки. Установлен у меня еще SinaProg, попробовал его. И, о чудо, все получилось, программа прошилась, верификация прошла успешно. Залил ногодрыг, светодиодом проверил работу - программа работает. Тут же на радостях залил Bootloader, проверил его, тоже работает. Впечатлила скорость программирования, Дудка с USBASP'ом нервно курят в сторонке. Проблема решена, но непонятки остались. Дудка одна, разные только оболочки, и вот такой глюк. Эта тема скорее не вопрос, а совет тем, кто столкнется с похожим. Теперь сижу перевожу даташит на МК, чтобы с UART'ами подобных ляпов не случилось.