Отладочная плата attiny2313 своими руками
Всем привет! В этой статье мы соберем модуль, с помощью которого будет очень удобно программировать микроконтроллеры с 8 ножками семейства ATtiny в DIP-корпусе (ATtiny13, ATtiny25, ATtiny45, ATtiny85) . При этом в качестве программатора по-прежнему будет выступать Arduino UNO, а наш модуль будет размещаться поверх Arduino UNO. И больше нам не придется возиться с проводами, собирая всё на макетной плате.
Для работы нам понадобятся (см. фото ниже):
1. Двухсторонняя монтажная плата 3х7 . Можно взять коричневую плату и подогнать под нужный нам размер.
3. Гребенка контактов .
4. Два 4-х пиновых однорядных гнезда . Это опционально, можно и без них обойтись. Они нужны для того, что бы не вынимая ATtiny , можно было протестировать некоторые скетчи. Например, тот же Blink .
5. Конденсатор на 10мкФ .
Еще я хочу добавить usb-разъем , чтобы можно было запитывать плату от внешнего источника, через usb-кабель. Можно взять разъем мини- или микро-usb. Но я возьму обычный. Его установить будет проще всего, т.к. шаг между его ножками, как раз соответствует шагу отверстий макетной платы.
Отламываем от гребенки 6 и 8 контактов. Можно и по 4, т.к. именно столько пинов Arduino UNO у нас будет задействовано с каждой стороны. Но, на мой взгляд, 6 и 8 более удачное сочетание, т.к. плата удобнее размещается на Ардуино и сложнее ее воткнуть не в те пины.
Вставляем гребенку из 6 контактов в пины с 8 по 13 Ардуино, а гребенку из 8 контактов в противоположные пины, где у нас питание и земля.
Устанавливаем на воткнутые гребенки монтажную плату. Таким образом, чтобы все контакты гребенки у нас разместились по центру каждой из сторон платы. И припаиваем контакты к плате.
Теперь устанавливаем на плату гнездо для ATtiny. С той стороны, где у гнезда небольшая выемка, у нас будут первый и восьмой пин ATtiny. Получается, что выемка у нас смотрит вниз.
Припаиваем гнездо для ATtiny к монтажной плате. А рядом с ним 4-пиновые гнезда с каждой стороны. Размещаем и припаиваем к плате usb-разъем.
Настало время припаять соединительные провода.
Припаиваем вначале три провода, которые у нас будут соединяться с 11, 12 и 13 пинам Ардуино. После этого, пропускаем их в отверстия перед соответствующими пинами и припаиваем к ним.
Далее соединяем первый пин ATtiny с 10 пином Ардуино. А пины номер 8 и 4 ATtiny соединяем с выходами 5В и GND Ардуино. После этого берем конденсатор на 10мкФ и припаиваем к ножкам гребенки, которые замыкают землю и reset Ардуино.
Телефонный звонок:
— Алло, здравствуйте, скажите пожалуйста, есть ли в наличии микросхема XXYY-ZZ ?
— Минуточку… Есть, но к сожалению, они сейчас только в DIP-корпусе…
— Да? Спасибо… а как пройти в дип-корпус ?
Содержание:
Предисловие
Назначение
Конструкция
Пайка
Пайка некоторых узлов далась с трудом (здесь видно, что легче было бы использовать свою печатную плату, разведённую специально под задачу):
Наконец, чтобы защитить макетную плату в эксплуатации от коротких замыканий, плата была покрыта снизу прозрачным пластиком (это позволяет свободно обозревать коммутации и напоминать пользователю разводку макетной платы):
Схема
Макетная плата состоит из нескольких, не соединённых между собой, функциональных блоков. Связи между ними устанавливает сам пользователь, с помощью монтажных проводов — таким образом, достигается гибкость и прозрачность разводки макета. Для подключения проводов, на плате используются цанговые гнёзда, обеспечивающие надёжный контакт. Макетная плата предоставляет всю необходимую стартовую обвязку для работы микроконтроллера.
Применение
Программатор-отладчик
Подключать программатор можно через: 6-пиновый или 10-пиновый штырьковый разъём (как наиболее распространённые стандарты), а затем разводить перемычками, с цанговой панели к гнезду микроконтроллера — при этом, распиновка разъёма программатора не имеет никакого значения! Так что, можно использовать любой программатор, для любого семейства микроконтроллеров…
Внутрисхемная коммутация
Питание схемы
Источниками питания могут служить:
Поэтому, для подключения внешнего питания, предусмотрены разнообразные разъёмы:
Подключение Кварца
Что здесь можно улучшить?
2) Для серийности: вместо сборки устройства на универсальной макетной плате — следует развести свою печатную плату (см. ЛУТ), рационализировав компоновку узлов, и используя некоторые элементы в SMD-исполнении.
Решение: Выпрямительный мост на МОП-транзисторах (мизерное падение напряжения)
Для сравнения, промоделируем аналогичную схему, на классическом диодном мосте:
В этой статье мы сделаем акцент на портах ввода/вывода МК ATtiny2313 и заставим их работать на выход. То есть ножка микроконтроллера (МК) будет выдавать сигнал либо логической единички, либо нуля. Приказывать, что выдавать на ножку, будем мы сами, а точнее, программа, которую мы с вами разработаем.
Все начинали изучать AVR c мигания светодиода. Мы даже делали целую гирлянду из 4 светодиодов в этой статье. Но что, если 4 светодиодов нам мало, и мы хотим чего-то большего? Ну раз хочется, то давайте сделаем!
Выбор микроконтроллера
Долго не думая, находим в интернете на него даташит и смотрим цоколевку
Так как я хочу навесить на него кучу светодиодов и сделать из них что-то подобие бегущей дорожки, для нас важно рассмотреть, какие пины (выводы МК) позволят мне это сделать. Что мне здесь надо найти? Это, конечно же, порты ввода/вывода. В ATtiny2313 их три группы: порт А, порт В и порт D. В группе порта А у нас три пина — это PA0, PA1,PA2. В группе порта В их уже восемь (PB0…PB7) и в группе порта D семь пинов (PD0…PD6). Итого в сумме 18 пинов, на каждый из которых можно навесить по светодиоду. То есть теоретически, наш МК может управлять 18 светодиодами, которые могут светится независимо друг от друга. Про порты ввода/вывода можно подробно прочитать на сайте easyelectronic по этой ссылке.
Характеристики светодиодов
Не забываем, что светодиоды делятся на индикаторные и осветительные. Индикаторные светодиоды обладают слабым свечением и используются для индикации каких-либо процессов, происходящих в электронной цепи. Для них характерно слабое свечение и малый ток потребления
Ну и осветительные светодиоды — это те, которые используются в ваших китайских фонариках, а также в LED-лампах
В нашей статье мы будет использовать индикаторные светодиоды. Светодиод — это токовый прибор, т.е. для его нормальной работы требуется номинальный ток, а не напряжение. При номинальном токе на светодиоде падает некоторое напряжение, которое зависит от типа светодиода (номинальной мощности, цвета, температуры). Ниже табличка, показывающая какое падение напряжения бывает на светодиодах разных цветов свечения при номинальном токе:
Поэтому подключать их напрямую к МК с питанием в 5 Вольт запрещено. Для них это обернется летальных исходом. В первую очередь сгорят те, кто требует для своей работы небольшого напряжения: красные, желтые и оранжевые светодиоды. Сгореть могут как светодиоды, так и выход МК. Чтобы такого не произошло, надо последовательно со светодиодом ставить токоограничивающий резистор. Лучше всего такой резистор подобрать с помощью магазина сопротивления, либо с помощью потенциометра, включенного по схеме реостата. После того, как мы добились умеренного свечения светодиода, замеряем наше сопротивление и ставим постоянный резистор близкий к измеренному номиналу.
Если такой возможности нет, то делаем простейший расчет.Например, у вас в арсенале имеются желтые светодиоды. Питание нашего МК 5 Вольт, следовательно, напряжение логической единички также 5 Вольт. Так как на желтом светодиоде у нас падение напряжения составляет примерно 2 Вольта, значит, на токо-ограничивающем резисторе должно упасть 3 Вольта. Ток через светодиод берем в среднем 15-20 мА. Исходя из закона Ома высчитываем значение сопротивления: I=U/R ——> R=U/I=3/15=0,2 килоома или 200 Ом. На практике, резистора, номиналом в 200-500 Ом, хватает за глаза.
Способы подключения светодиода на порт МК
1) Это прямой способ, при котором включение светодиода происходит при наличии высокого логического уровня, то есть единички на выходе порта МК:
2) Инверсный способ, при котором светодиод загорается только тогда, когда на выходе порта будет низкий логический уровень, то есть ноль.
Индикаторные светодиоды, в зависимости от исполнения (SMD или штырьковые), потребляют при номинальном свечении ток от 2-3 мА и до 20-30 мА. Поэтому, все зависит от того, какие светодиоды мы выберем для нашего эксперимента. Но помните, что сумма токов питания светодиодов не должна превышать максимальное значение МК. В нашем случае это 200 мА. Ну а так для повышения надежности долговременной работы радио-электронной аппаратуры (РЭА) рекомендуется использовать нагрузку по мощности 70% от номинала, а по напряжению и току — 80% от номинала. Поэтому, если номинальный ток светодиода 20 мА, то мы будем его пытать на токе 0.7 * 20 = 14 мА. Применимо к МК — это 160 мА вместо 200 мА.
Управление мощной нагрузкой с помощью МК
Если не терпится и хочется поджигать лампочки накаливания, либо мощные осветительные светодиоды, то можно поставить транзисторные ключи на биполярных транзисторах. В этом случае +Uпит может быть больше, чем напряжение питания МК.
Почти та же схема, но включение происходит при логическом нуле на выходе МК. Здесь обратите внимание на то, что при таком инверсном включении +Uпит не должно превышать напряжение питания МК.
Важный момент применимый к обеим схемам — питание нагрузки. Если питаемся от напряжения МК, то схема примитивна: в базовой цепи один резистор (RБ). Если же нагрузку питаем от внешнего источника питания, например 40 Вольт, то еще добавляем в схему резистор Rбэ . Чаще всего его номинал берут в 1 кОм.
Расчет резистора базы для режима насыщения
Как же рассчитать примерно значение резистора базы? Есть нехитрые формулы. Для того, чтобы их разобрать, рассмотрим вот такую схемку:
Для начала можно найти ток базы:
IБ — это базовый ток, в Амперах
kНАС — коэффициент насыщения. В основном берут в диапазоне от 2-5. Он уже зависит от того, насколько глубоко вы хотите вогнать ваш транзистор в насыщение. Чем больше коэффициент, тем больше режим насыщения.
IK — коллекторный ток, в Амперах
v проще всего измерить с помощью транзисторметра.
Ну а дальше дело за малым
Это самый простой расчет без всяких заморочек. Более подробно читайте в этой статье.
Для управления какой-либо мощной нагрузкой, можно применить схему с транзистором и реле:
О фьюзе RSTDISBL
Пишем программу для чайников
Далее открываем программу Atmel Studio 6 и начинаем писать программу. Эта программа специально написана для новичков, чтобы они уловили суть всего процесса.
Ну вот и пришло время нам соорудить USB программатор. Я долго не мог определиться какой бы программатор нам собрать. Выбирал по критериям простоты конструкции и удобства работы с ними, но ничего не нравилось. Выбрать программатор помог случай. Вернее я его не выбирал вообще – я его случайно собрал сам того не подозревая!
А дело было так. Некоторое количество постов назад мы собрали преобразователь USB to UART на ATtiny2313 (а в прошлой статье мы даже улучшили печатную плату). Еще при выборе схемы преобразователя я планировал на его базе (при помощи заливки различных прошивок) получать устройства различного назначения. Тогда я не подозревал, что данный преобразователь можно использовать шире, чем я планировал. Увидев схему USB программатора – USBtiny на ATtiny2313 я понял, что я уже имею готовый программатор!
Посмотрев на схему, сделанного ранее, преобразователя USB to UART (домашняя страничка )
и схему USB программатора USBTiny
можно увидеть, что это одна и та-же схема. Различия незначительны – отсутствуют сигнальные светодиоды и несколько резисторов. Для того, чтобы преобразователь стал USB программатором нужно просто прошить микроконтроллер новой прошивкой и сделать кабель для подключения.
Теперь все по порядку.
1 Для начала нужно собрать преобразователь (это если Вы его еще не собрали).
Вот рисунок печатной платы преобразователя:
T2313-SMD-2 v2.0 - Рисунок печатной платы UART-USB на ATtiny2313
Для того, чтобы обеспечить все необходимые сигналы для программирования впаиваем защитные резисторы номиналом по 100 Ом в линии ножек 12, 16, 17, 18, 19 (номинал не критичен – можно варьировать).
2 Теперь нужно прошить микроконтроллер.
Линии для программатора выведены на общий разъем платы (кроме сброса – стоит отдельно).
usbtinyisp-T2313.hex v1.04 - Прошивка USBtiny программатора для ATtiny2313
T2313-FuseBit - Фьюз-биты ATtiny2313 для USBtiny
Для Algorithm Builder и UniProf галочки ставятся как на картинке.
Для PonyProg, AVR Studio, SinaProg галочки ставяться инверсно.
3 Далее нам нужен шлейф для того, чтобы соединить программируемое устройство с нашим программатором. Все линии, необходимые для программирования находятся на одном разъеме.
Схема шлейфа проста.
Из особенностей – я вынес индикаторный светодиод и балластный резистор для него за плату на разъем – это для того, чтобы плату без перепайки можно было использовать для других устройств (ну и так прикольней – светодиод мигает прямо в разъеме ). Кроме того, линия Vcc отделена от общего разъема – это на случай если программируемое устройство запитывается не от USB, а от своего источника (что, в принципе, желательно). Сигнальные линии (SCK, MISO, MOSI) желательно экранировать (например чередованием сигнальных и земляных линий в шлейфе). Длину шлейфа не стоит делать большой – до 50 см, не больше. Если нужно программировать удаленное устройство всегда можно применить USB удлинитель – так надежней. Вот мой готовый шнурок:
4 Сам программатор готов, теперь нужно установить драйвер для того, чтобы Винда смогла с ним работать (для Mac OS X & Linux, вродь-как, драйвера вообще не нужно). Тут все просто:
4.1 Скачиваем драйвер, разархивируем его.
usbtinyisp w32 driver v1.12 - Win драйвер для USBtiny программатора
Если у Вас Винда 64 битная, Vista или Windows 7 нужно установить другой драйвер:
usbtinyisp_libusb-win32_1.2.1.0.zip - Драйвер USBtiny для х64, Vista или Windows 7
4.2 Вставляем наш программатор в USB порт.
4.4 Запустится мастер нового оборудования
Винда увидела новое устройство и готова с ним работать.
USBtiny программатор поддерживается AVRDude, а это значит, что многие среды программирования будут с ним работать без проблем. Еще одним достоинством работы с AVRDude является то, что для работы с AVRDude существует множество оболочек GUI из которых можно выбрать подходящую именно для Вас (но об этом в следующей статье).
ДОПОЛНЕНИЯ.
1 Дмитрий Шпак сделал довольно удачную разводку программатора. Программатор получился небольшого размера, имеет стандартный разъем для программирования и, я считаю, будет удобен в работе. Плата двусторонняя.
USBtiny.lay - Разводка USBtiny от Дмитрия Шпака
2 Еще один вариант разводки от Андрея Баранова (Andru_48)
USBtiny.lay - Разводка USBtiny от Андрея Баранова
3 Вариант от mebadboy
Доброе время суток.
Новую печатку я не собирал. Я просто исправил старую - Дмитрий Шпак . Там минимум исправлений – одну дорожку перерезать, кинуть проводок, впаять резистор и диод впаять в другое место.
USB-tiny-mebadboy - Печатка USBtiny от mebadboy
Вот лог dmesg при подключении под linux:
usb 4-2: new low speed USB device using uhci_hcd and address 2
usb 4-2: New USB device found, idVendor=1781, idProduct=0c9f
usb 4-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
usb 4-2: Product: USBtiny
Читайте также: