Собирая паяльную станцию, затормозил на корпусе. Третий месяц не могу себя заставить. Вот решил развлечься сборкой программатора для полевых условий. Давно на него глаз положил.
Задача стояла следующая – быстро собрать и забыть, и заодно попробовать, что такое SMD.
Начитавшись хвалебных отзывов, и увидев более менее систематизированную информацию, первый раз изменил своему правилу – не читал форум, о чем, потом многократно пожалел.
Можно было собрать по печатке автора и не парится, но мне не нравился нестандартный разъём, я не хотел ставить USB B, чтобы в кармане не носить лишний шнурок, и просто хотелось симметрии, поэтому печатку нарисовал свою. Как раз в это время, чисто случайно увидел вот такие симпатичные точилки,

чему был несказанно рад, так как вопрос с корпусом решился на стадии подготовки.
Поскольку не хотелось заморачиваться с исходниками, и чтобы в дальнейшем без проблем заливать новые версии ПО, решил оставить всё как есть. Из-за этого разводка слегка усложнилась, платка получилась двухсторонняя, но совмещение не сложное.

Устройство собрано, скачен последний драйвер FTDI. Кстати FTDI в прошлом году получила сертификат от Microsoft и в Windows 7 этот драйвер установлен по умолчанию.
Сертифицированный драйвер установился просто великолепно, устройство опознано, значит, половина программатора работает. Настало время первой прошивки контроллера. Вот здесь начались пляски с бубном. Ошибок быть не могло, я их просто не допускаю. Оставалось одно – неисправность контроллера. День убил на попытки залить прошивку. Потом обратился к первоисточнику, чтобы скачать avrdude, и увидел недавнее обновление документации и исправление ошибок. Когда я скачивал HowTo.pdf, я уже не помню, но скачав по новой, увидел замену X2-X3 на X2-X4. Перепаял перемычку, и прошивка пошла. Я уже потянулся к пиву, но радость моя была не долгой. Ни в одной из программ программатор не определился, и в терминале молчок. Ещё день бесполезных попыток и тестов. Как я не хотел, но пришлось открыть даташит. И что я там увидел? А то, что фузы стоят неправильно. Та картинка, что приведена в статье, и то как она прокомментирована в первоисточнике – «Как надо выставить фузы, при прошивке через ponyprog», я бы назвал её - «Как не надо выставлять фузы», так как она вводит повторяющих в заблуждение. В документации три разных контроллера, два кварца, плюс народ ставит свои кварцы. Масса комбинаций, а картинка с фузами только для одной. Надо указать к чему она относится, или вообще убрать, и указать, чтобы фузы ставили сами. Ещё одна перепрошивка контроллера. К пиву меня уже не тянуло. Что-то подсказывало мне что это ещё не конец. На этот раз программатор определился во всех программах и в терминале, но при попытке, что нибудь запрограммировать – выдавал ошибку и светодиод начинал постоянно подмигивать. Стало ясно, что прошивка не подходит к разводке. Как я не сопротивлялся, но пришлось перечитать все 65 страниц форума.
И тут выяснилась масса интересных моментов. Про ошибку с перемычками было сказано ещё на 4 странице, но модераторы тормозили, и не давали человеку изменить свой пост. Из-за этого народу споткнулось много. Потом начались обновления, хотя и с опозданием, но порядка от этого не стало. Просто куча стала больше. Вначале у автора была разводка под нестандартный разъём, и соответственно под неё прошивка. Потом, по просьбе телезрителей, разводка была изменена, с соответствующей заменой прошивки. Всё это навалено в кучу, и разобрать что к чему уже невозможно. Про резисторный делитель так же противоречивые сведения. У меня стоит R9 – 100k, хотя в одном из документов указано, что должно быть 47k. Процент успешных повторений оказался не такой большой, как казалось в начале. Получилось у тех, кто сразу повторил за автором по его печатке. Кто сделал шаг в сторону – получил проблемы. Даже подкорректировав исходники, и в третий раз прошив микроконтроллер, я не получил работоспособное устройство. Проблема оказалась в файле gpio.h, который автор совсем недавно подкорректировал для такого же бедолаги как я, и который в неизменном виде лежит в первом посте. Тоже самое, можно сказать об ошибке в командной строке для avrdude, о которой упоминалось ещё в 2008г., и которая до сих пор не изменилась. Только после того как я лично просмотрел все исходники, убрал лишнюю строчку в одном из файлов, заменил gpio.h, в четвёртый раз прошил контроллер, я получил работоспособный программатор. Первый раз в жизни я не получил удовольствия от работы. Горечь и досада, что я убил столько драгоценного времени на такое простое устройство, и в основном не по своей вине.
Подводя итог вышесказанному, хочу отметить, что на данный момент, скачав с первого поста всю документацию, вы не получите гарантированно положительный результат. 50х50. Доводить до совершенства документацию автору уже не интересно, он и так много сделал. Тем кто повторил - тем более. Поэтому: «спасение утопающих – дело рук самих утопающих». Чтобы получилось на все 100% - есть два пути. Первый - повторить чей-то проект. При этом должен быть полный набор документации. А именно: схема, печатка по этой схеме, известен набор микросхем с указанием всех индексов, частота кварца, прошивка под всё это хозяйство, фузы для PonyProg или командная строка для avrdude. Второй – пройти всё самостоятельно. Взять любую схему, нарисовать печатку, откорректировать исходники, разобраться с фузами и делителем на RESET-е.
Кстати насчёт исходников. Я брал за основу 6-ю версию, так как для 7-ой автор исходники не опубликовал.