Часть III
(окончание, см. начало - Часть I и Часть II)
File -> Sketchbook -> Examples -> Digital -> Blink
(окончание, см. начало - Часть I и Часть II)
Итак, микроконтроллер заработал, но нам этого мало: теперь надо сделать интерфейс для COM-порта, чтобы Arduino мог общаться с PC, в первую очередь для заливания sketch-ей.
Глядим в схему, подбираем детали:
Глядим в схему, подбираем детали:
- Разъем DRB9F на плату, угловой - 12,5 руб.
- Транзистор T1 - BC547 - 3,8 руб.
- Транзистор T2 - BC557 - 3,5 руб.
- Два диода D2,D3 1N4148 - 2 x 2,5 = 5 руб.
- Два светодиода LED0, LED1 - 2 x 3,3 = 6,6 руб.
- Резисторы 10K - R5,R8,R7,R10 - 4 x 0,95 = 3,8 руб.
- Резистор 4К7 R9 - 0,95 руб.
- Резисторы 1K R1,R2,R6 - 3 x 0,95 = 2,85 руб.
- Неполярный электролит C9 10 мкФ - 3 руб.
- Штыревой соединитель PLS40 (из него кусачками отделяется три пина для джампера выключения порта, остальные 37 обязательно пригодятся ;) - 13 руб.
- Джамперы (стоит поискать на старых материнках, и только если нет под рукой - покупать) - 8,5 руб.
Самая сложная деталь в оригинальной схеме - это неполярный электролит в выводном исполнении. Вместо него у меня заработал и обычный, как только будет возможность - поменяю.
Придется достать сверло на 4..5 мм и просверлить пару дырок для креплений разъема COM-порта (если только вы не купили чудо-макетку с посадочным местом под разъем DRB9F).
Как говорит автор схемы, "иногда поступающая по COM-порту от PC информация может препятствовать запуску скетча", поэтому предусмотрен джампер JP0. У него три положения - "COM-порт работает" - к VСС, "COM-порт блокирован" - к GND и, если снять его вовсе - получили 2 свободных цифровых входа.
Завершающий штрих: подключение внешнего источника питания, например батарейки "Крона". Продолжаем подбирать компоненты:
- Гнездо питания 2.1 мм на плату - 12 руб.
- Штекер питания 2.1 мм на кабель - 11 руб.
- Разъем для "Кроны" - 16 руб.
- Батарейка "Крона-нежалковыкинуть" - 25 руб.
- Диод 1N4004 D1 (защита от переполюсовки) - 3,5 руб.
- Электролит 100 мкФ (минимум на 16В) С3 - 2,6 руб.
- Керамический конденсатор 100нФ С7 - 2 руб.
- Стабилизатор напряжения L7805CV - 14 руб.
Как и в случае с DRB9F, в плате надо сверлить дополнительные дырки для разъема питания ("плюс" обычно делают в центре). Если подключить выход 7805 к ранее запланированному джамперу (см. Часть II, сборка узла микроконтроллера), то можно переключаться между питанием от батарейки и от USB. Внешний источник может выдавать от +7В до +20В, но больше +16В не рекомендуется, а еще лучше +9В, чтобы не очень сильно грелся собственно стабилизатор.
Вот и все, готово. Перед тем, как приступить к написанию собственных sketch-ей, осуществим финальную проверку:
File -> Sketchbook -> Examples -> Digital -> Blink
Дальше - Verify/Compile (Ctrl-R), после окончания жмите на кнопку сброса на Arduino, затем File -> Upload to I/O board (Ctrl-U). Полюбуйтесь, как весело перемигиваются светодиоды Rx и Tx, подождите 6 секунд и наблюдайте мигание LED13.
Что еще добавить?
- Бюджет разработки, включая программатор не превышает 500 рублей. Цены имеют свойство меняться со временем - может быт, что-то будет дороже, что-то дешевле (некоторые компоненты вообще могут оказаться под рукой или аккуратно демонтированы с ненужных устройств);
- Если мало 8К памяти программ, используйте ATmega168-20PU. Микроконтроллеры имеют различный объем Flash и SRAM, но полностью совместимы по корпусам. Тип платы надо будет переставить на Tools -> Board -> Ardiono NG or older w/ATmega168, прошить соответствующий bootloader. С корректно установленным типом платы ArduinoIDE будет правильно учитывать тип МК при компиляции, а текст скетча при этом никак не изменится. Правда, по стоимости будет чуть дороже;
- Можно попробовать подключить схему автосброса - Arduino умеет ненадолго устанавливать сигнал DTR перед заливанием sketch-а, и если он соединен со схемой сброса, отпадает необходимость нажимать Reset перед каждой загрузкой скетча. Функция имеет побочный эффект - Arduino может быть сброшен в любой момент программой, которая дергает DTR и даже при отключении или подключении кабеля к COM-порту.
- Можно добавить гребенку для непосредственного подключения USB/Serial Converter, если оно у вас есть:
Круто. Хочу сделать ардуино на оригинальной односторонней плате.
ОтветитьУдалитьЗаказал микроконтроллеры. К сожалению ATmega168-20PU сняли с производства. Есть 10 :-(
Поэтому первый вариант будет на ATmega8. Пиши еще! Буду читать!
Приветствую!
ОтветитьУдалитьспаял себе тоже ардуино на оригинальной односторонней
плате для com порта. но что то никак не могу разобраться
с загрузчиком, загрузчик залил PonyProg-ом.Если нажать
кнопку ресет, то светодиод подключенный к 13 выходу бликает раз восем. Когда подключаю к компютеру, то не работает upload, пишет программатор не отвечает.
Или его еще нужно залить с IDE Arduino?
P.S. а фьюзы какие то дополнительные нужно выставлять,
при записи загрузчика, или пойдут те которые
выставлены по умолчанию в ATmega8?
Ну... начнем с самого простого (и обидного ;) - если Arduino без автосброса, перед upload-ом надо нажимать reset.
ОтветитьУдалитьФьюзы для ATmega8: lfuse=0xdf, hfuse=0xca.
Какой программатор-то пользуете? Лучше шить через Arduino IDE, оно и зашьет, и фьюзы правильные установит...
перед upload-ом нажимал reset, перемычку на
ОтветитьУдалитьавтосброс тоже ставил, тогда во время uploada
бликает диод на 13 выходе.
фьюзы lfuse=0xdf hfuse=0xca - это в шестнадцатеричном
коде, а в даташите обычно обозначаются буквами. какие
это?
программатор использую PonyProg(что железо, что софт)
Если это - Arduino Severino, то для проверки перемычку надо снять (разорвать цепь автосброса), и понаблюдать за светодиодами Rx/Tx - как они себя будут вести.
ОтветитьУдалитьЕсли верить доке, фьюзы должны быть такие:
HFUSE (0xCA):
RSTDISBL = 1
WDTON = 1
SPIEN = 0
CKOPT = 0
EESAVE = 1
BOOTSZ1 = 0
BOOTSZ0 = 1
BOOTRST = 0
LFUSE (0xDF):
BODLEVEL = 1
BODEN = 1
SUT1 = 0
SUT0 = 1
CKSEL3 = 1
CKSEL2 = 1
CKSEL1 = 1
CKSEL0 = 1
Самое важное поставить опции внешнего осциллятора верно - по умолчанию включен внутренний калиброванный RC-генератор 1МГц. За это отвечают CKOPT и CKSEL0..3.
Далее, надо установить старт бутлоадера по ресету (BOOTRST = 0) и правильный размер секции бутлоадера - 1К (или 512 слов - BOOTSZ0..1).
ОК! заработало!
ОтветитьУдалитьфьюзы правельно выставил,
спасибо за помощь!
Рад помочь, обращайтесь, если что ;)
ОтветитьУдалить>Неполярный электролит с9 10 мкф
ОтветитьУдалитьна схеме он полярный или я ошибаюсь?
Спасибо за статью, очень понравилось
ОтветитьУдалитьЯ сейчас как раз собираюсь делать плату, надеюсь к вам можно будет обратиться аза помощью?
Можно, но дабы не засорять комменты, сразу открывайте ветку в форуме.
ОтветитьУдалить