Вдохновленный освоением ЛУТ ;) я решил потренироваться и развести печатную плату для своего любимого программатора USBasp. Кроме тренировки, я преследовал две цели:
- Разместить в программатор в корпусе Ganita, дабы не сверлить боковухи под разъемы;
- Сделать легкие модификации в схеме.
Вот оригинал:
На гетинаксе это выглядит так:
Внутри добавилась вилка ICSP:
Виды с торцов:
Итак, джамперов там три, напоминаю, что:
Из него я решил исключить R7 и посадить выводы 6 и 7 разъема X2 на землю. Автор собирался сделать поддержку отладки, но за несколько лет как руки у него до этого не дошли. Разводить плату без них проще, тем более, что для Arduino гораздо удобнее иметь 6-ти контактный разъем ICSP в дополнение к 10-контактному. Ну и давно хотел добавить во все решения на USB самовосстанавливающийся предохранитель. Стандартный плавкий 5x20 и места больше занимает, и замены требует при перегорании. Финальная схема:
На гетинаксе это выглядит так:
Предохранитель попался фирмы Bourns, на 300 мА. Специально посмотрел, как это работает - при коротком замыкании за 1-2 секунды ток в цепи питания падает практически до единиц мА, сам элемент ощутимо нагревается. Правда, на выбранном для бесчеловечных экспериментов лаптопе тоже самое происходило и без предохранителя, что указывает на то, что он уже и так установлен и в цепи питания USB-хоста. Тем не менее, пусть будет - так спокойнее:
Внутри добавилась вилка ICSP:
А вот десятиконтактную вилку программирования пришлось взять угловую (BH10R), как и джамперы - чтобы они были доступны с торцов. Вид в корпусе:
Виды с торцов:
Итак, джамперов там три, напоминаю, что:
- JP1 подает питание в разъем программирования (программируемая схема питается от программатора);
- JP2 устанавливается для режима программирования самого программатора при первой прошивке или последующих ее обновлениях;
- JP3 устанавливается для МК, у которых низкая (менее 1,5 МГц) частота тактирования. Например, таковыми являются все чистые МК Arduino - фьюз-биты в них установлены по умолчанию на внутреннюю калиброванную RC-цепочку. Я в этом случае обычно программирую в два приема - сначала с этим джампером ставлю фьюзы для "быстрого" внешнего кварца, затем снимаю джампер и заливаю микропрограмму. Даже ATmega8 шить на пониженной скорости очень тоскливо, а для ATmega328 вообще можно уходить пить чай.
Кстати, одна очевидная деталь, которая обычно ускользает от внимания: чтобы запрограммировать МК этого программатора, надо не только установить JP2, но и позаботиться о питании - например, получить его с разъема программирования, замкнув JP1.
Вот одним таким программатором я прошиваю другой:
В остальном - никаких хитростей, программатор поддерживается avrdude и работает как часы, совместим с Windows и Linux.
Ссылки на Молоток.ру для желающих обзавестись готовым программатором или набором деталей. В отдельной статье я подробно расписал для новичков нюансы работы на этом ресурсе.
Очень хорошая статья. Особенно в силу поддержки ОС Linux. Ксожалению не часто встречаются устройства для любителей с поддержкой чего-то кроме Windows.
ОтветитьУдалитьСпасибо.
Недавно я целиком перелез с Windows Vista на Ubuntu Linux. ArduinoIDE работает без проблем в силу своей java-природы, вместо WinAVR (в составе которого идет avrdude) "родной" avr-gcc.
ОтветитьУдалитьВопрос может показаться дурацким, но в чём смысл использовать два резистора одного номинала R4 и R5, если они оба идут на +5V? Исключить один и чуть схемку изменить, это будет эквивалентно?
ОтветитьУдалитьМаксим, это токоограничительные резисторы для светодиодов. Не думаю, что будет правильным делать так, как Вы предлагаете ;)
ОтветитьУдалитьТочнее - так: у светодиодов будет разная светимость, вместе они будут гореть ярче, чем по-отдельности. Если это нормально - то да, можно заменить R4 и R5 на один, например 1К. По мощности и току - впишемся ;)
ОтветитьУдалитьВ таком случае мне лишний резистор не жалко, оставил как есть:) Уже собрал программатор, работает вроде неплохо, но в 5-ти случаях из 10-ти не прошивает, avrdude пишет что не может опознать МК(Expected signature). Такой довольно большой процент ошибок он только у меня так, или это нормально? Может я где накосячил... плохо пропаял...
ОтветитьУдалитьУ меня тоже такое случается, но, приблизительно, в одном случае из 10. Некоторые экземпляры вообще работают как часы, без сбоев. Полагаю, дело в резисторах - надо ставить 1%-ые в схеме развязки с USB.
ОтветитьУдалитьИ ещё вот что интересно, протестировал процесс прошивки на своём нетбуке, так там вообще все 10/10 успешных попыток, снова попробовал на стационарном - 6/10 успешных. Во дела подумал я, значит успех/не успех ещё и от компьютера зависит:)
ОтветитьУдалитьА вот 10/10 неудач - это уже странно.
ОтветитьУдалитьБыл у меня один USB-хаб... Я его в итоге прекратил использовать, когда посмотрел на то, что у него на выходе на шине USB (полное безобразие)... А до этого тоже на схему грешил, что неправильно собрал и все такое.