bookingsky.ru

Attiny2313 подключение. Подключаем кнопку к микроконтроллеру ATtiny2313, простая программа. что значит ограничивающие

Сразу после изготовления программатора очень хочется что-то запрограммировать, но советую не спешить, потерпеть чуть-чуть и сделать под выбранный микроконтроллер макетную отладочную плату. Для начала будем работать с , на мой взгляд, идеальный выбор для начала. Относительно дешевый и с множеством функций, освоение которых даст бесценный опыт. Макетную отладочную плату (DEV Board ) предложу делать по схеме:


Начнем разбор схемы с питания. Tiny2313 требует питающего напряжения . Как стабилизатор будем использовать или аналог с обвязкой из конденсаторов. Конденсаторы С11 ,С9 – блокировочные по 0,1мкФ , С8 ,С10 – электролиты 100мкФ и 50мкФ соответственно. Номинал С8 должен быть обязательно больше С10 , чтобы избежать обратного тока через при отключении питающего напряжения. Советую использовать LM7805 в корпусе TO-220 , чтобы можно было от него запитать не только контроллер, но и что-то потребляющее, например подсветку ЖКИ дисплея. Светодиод D1 своим свечением сигнализирует о подаче питания, а светодиод D2 о записи/чтении памяти микроконтроллера, резисторы R2 ,R3 – ограничительные по 500 Ом . Как источник тактирования будем использовать внутренний RC генератор и внешний кварцевый резонатор X1 на 4МГц , конденсаторы С1 ,С2 керамические, 18-22пФ (зависят от частоты кварца). Также снабдим нашу плату кнопкой Reset -a, которая будет замыкать вывод Reset микроконтроллера с землей. Несмотря на то, что современные микроконтроллеры снабжены встроенным супервизором (отслеживает напряжение питания, и включает микроконтроллер тогда, когда напряжения питания достаточно), но он может быть отключен программно. И чтобы сброс происходил корректно, была добавлена RC цепочка R1 ,C7 10k и 0,1мкФ соответственно. Также не забываем снабдить плату ISP разъемом, удобными площадками для подсоединения в портам ввода-вывода (пины 2-3,6-9,11-19), +5В , земли, а также панелькой под микроконтроллер. Ведь макетка – ваш инструмент в изучении микроконтроллеров, чем она будет удобней, тем меньше раздражающих факторов вас будет отвлекать от основного. Например, моя макетная плата под ATTiny2313 выглядит так:

что значит ограничивающие

что значит ограничивающие сопротивления? не дают сгореть диодам и подбираются в соответствии с выбранными диодами?
я правильно понял, что возможен запуск собираемых устройств от внутреннего резонатора, но для этого надо подбирать фьюзы?

В данном случае

В данном случае ограничивающие сопротивления не дают сгореть светодиодам. Подбираются исходя из диода и напряжения питания, чтобы ток через диод не превысил номинальный. Для "обычных" маломощных светодиодов при питании 5В хватает 500-2000 Ом.
Запуск МК возможет от внутреннего RC резонатора. Или от внешнего кварцевого резонатора в зависимости как выставить фьюзы.

Моя Макетная плата для AtTiny2313

А вот моя макеткая для тини 2313


Обозначение:
1 - микроконтроллер AtTiny2313
2 - кварц
3 - разъем ISP для программирования
4 - разъем UART
5 - универсальный разъем для подключения к портам ввода/вывода
6 - кнопка сброса
7 - кнопки для ввода данных, в данном случаи я их повесил на порт В
8 - разъем питания этого добра
9 - конденсатор (очень пригодился когда начал экспериментировать с шаговым двигателем, который ахиренные помехи создает из-за чего микроконтроллер начал давать сбои)
10 - светодиоды, подключены через резисторы номиналом 1кОм, предназначены для отслеживания состояния порта B

Описан простой эксперимент с подключением кнопки к AVR микроконтроллеру, разобрана не сложная программа на языке Си для обработки нажатий кнопки. Разберемся с особенностями подключения кнопки к портам МК, а также с методами считывания состояний кнопки на языке Си.

В предыдущих статьях были рассмотрены эксперименты со светодиодами, которые подключались к портам микроконтроллера, сконфигурированных на вывод (Output).

В этой статье мы подключим к микроконтроллеру кнопку, контакты которой при нажатии замыкаются, а при отжатии - размыкаются (замыкающая кнопка).

Принципиальная схема эксперимента

Для того чтобы можно было хоть как-то наблюдать и управлять чем-то с помощью кнопки мы подключим к микроконтроллеру еще два светодиода. Схемка очень простая, вот она:

Рис. 1. Принципиальная схема эксперимента с микроконтроллером ATtiny2313 и кнопкой.

Как видим, к двум портам PB0 и PB1 через ограничивающие резисторы подключены два светодиода, а к порту PD2 - кнопка и она также с ограничивающим резистором. Для подключения программатора к МК используется разъем Conn 1 (AVR-ISP), а для подключения схемы к отдельному источнику питания +5В предназначены два контакта - P1 и P2.

Рис. 2. Собранная на беспаечной макетной панели схема эксперимента с микроконтроллером и кнопкой.

Важно заметить что для безопасного использования порта с кнопкой, последовательно ей подключен резистор с сопротивлением на 1 КОм (можно подключить и на другое сопротивление 600 Ом - 2 КОм). Примите это как правило хорошего тона в работе с пинами, которое обережет порт МК от выхода из строя в случае ошибочной подачи на пин высокого уровня и при замкнутой кнопке.

Структура портов ввода-вывода в AVR микроконтроллерах

Пины микроконтроллера являются универсальными GPIO (General Purpose Input Output), к ним можно подключать как исполнительные устройства (индикаторы, силовые ключи), так и разнообразные цифровые датчики (кнопки, переключатели).

Несколько пинов в МК могут быть подключены к АЦП/ЦАП (Аналогово-Цифровой-Преобразователь и наоборот), с их помощью можно выполнять анализ и генерацию аналоговых сигналов. Обычные GPIO не умеют работать с аналоговыми сигналами, у них на входе/выходе может быть только 0 (0В) или 1 (+5В).

К каждому пину GPIO внутри микроконтроллера подключены несколько блоков и электронных компонентов, о которых полезно знать:

  • Между пином порта и каждой из шин питания (GND и VCC) подключено по диоду . Они используются для "гашения" кратковременных помех, скачков напряжения относительно пина и каждой из шин питания;
  • Также между пином и GND включен конденсатор . Точно не знаю зачем он нужен, возможно для защиты от помех, для предотвращения дребезга контактов при использовании кнопок и переключателей подключенных к пину, или еще для чего-то;
  • К каждому пину подключен электронный ключ с резистором - это подтяжка пина к напряжению источника питания (Pull-UP) . Данный электронный ключ включается программно и служит для установки по умолчанию высокого логического уровня 1 (+5В) при работе с пином в режиме ввода (Input);
  • Между пином и каждой из шин питания (GND и VCC) включены еще два электронных ключа (без резисторов), они нужны для установки на пине высокого (+5В) или низкого (0В) логического уровня при работе пина в режиме вывода (Output).

Для программного управления и конфигурирования каждого из портов применяются три специальных регистра, к примеру для порта "B":

  • DDRB - регистр (8 бит) для установки режимов работы пинов - на ввод или вывод. Осуществляется установкой соответствующих бит в регистре;
  • PORTB - регистр для управление состоянием пинов порта в режиме вывода - высокий или низкий уровень. Также используется в режиме ввода, применяется для включения подтягивающих резисторов (Pull-UP) и установки высокого уровня на входе по умолчанию;
  • PINB - регистр, который содержит логические состояния пинов в порте, используется для чтения значений портов, которые сконфигурированы в режиме ввода.

Более детально узнать об устройстве портов для конкретной модели микроконтроллера можно из его даташита, в разделе "I/O-Ports", также там могут быть приведены примеры кода на Си и Ассемблере для работы с портами.

Пин RESET в качестве порта ввода-вывода

Полезно знать что пин "RESET" микросхемы (у нас на схеме это пин под номером 1), который предназначен для сброса выполнения программы микроконтроллера (перезагрузки), также можно использовать для подключения кнопок, светодиодов и других устройств ввода-вывода, то есть он может быть превращен в обычный GPIO.

Это может быть полезно если у микросхемы не хватает пинов для вашей конструкции. Например при сборке какого-то устройства на чипе ATtiny13 (8 выводов, 2шт - питание, 5шт - порты ввода-вывода, 1шт -для RESET) у вас оказалось что не хватает одного пина для светодиода. Здесь может быть несколько вариантов решения проблемы:

  1. Перепрограммирование пина с RESET под порт ввода-вывода;
  2. Подключение светодиода к одному из соседних уже использованных пинов, применив некоторые хистросты в схемном решении и с учетом возможности его общего использования;
  3. Использование другого МК у которого больше пинов, например ATtiny2313.

Что из этих вариантов проще и дешевле по финансам/времени - судите по своему случаю.

Для превращения пина "RESET" в порт ввода-вывода придется изменить специальный фьюз - RSTDISBL (Reset Disable). Но прежде чем это сделать нужно помнить что после данной операции перепрограммировать микроконтроллер станет возможным только с применением высоковольтного программатора (на 12В), обычный USB ISP или другой программатор с питанием от 5В сделать свою работу уже не сможет.

Программа на Си

Итак, у нас есть одна кнопка и два светодиода которые подключены к микроконтроллеру, что же с ними можно сделать? - а сделаем мы вот что (алгоритм):

  1. После включения питания светодиоды будут мигать попеременно и с задержкой в 300 миллисекунд;
  2. При нажатии и удержании кнопки будет светиться только синий светодиод;
  3. После отжатия кнопки синий светодиод мигнет 3 раза с задержкой 500 миллисекунд, после чего светодиоды снова будут мигать поочередно и с задержкой 300 миллисекунд.

Пример реализации такого алгоритма на языке Си под AVR приведен ниже. Создадим новый файл для нашей программы и откроем его для редактирования:

Nano /tmp/avr-switch-test.c

Поместим следующий код в тело файла:

/* Эксперимент с кнопкой на ATtiny2313 * https://сайт */ #define F_CPU 1000000UL // Частота ядра = 1 МГц #include #include // -- Макросы для управления светодиодами -- #define LED_BLUE_ON PORTB |= (1 << PB0) // Засвечиваем синий диод #define LED_BLUE_OFF PORTB &= ~(1 << PB0) // Гасим синий диод #define LED_RED_ON PORTB |= (1 << PB1) // Засвечиваем красный диод #define LED_RED_OFF PORTB &= ~(1 << PB1) // Гасим красный диод // Основная программа void main(void) { DDRD |= (0 << PD2); // Пин 6 - на вход PORTD |= (1 << PD2); // Включаем подтягивающий (Pull-UP) резистор для пина 6 DDRB |= (1 << PB0); // Пин 12 - на вывод DDRB |= (1 << PB1); // пин 13 - на вывод // -- Бесконечный цикл -- while(1) { _delay_ms(300); // Задержка 300 мс LED_BLUE_ON; // Включаем синий диод LED_RED_OFF; // Гасим красный диод _delay_ms(300); LED_RED_ON; // Включаем красный диод LED_BLUE_OFF; // Гасим синий диод if(!(PIND & (1 << PD2))) { // Проверяем нажата ли кнопка _delay_ms(50); // Задержка 50 мс (дребезг контактов) LED_RED_OFF; LED_BLUE_ON; while(!(PIND & (1 << PD2))); // Ждем пока кнопка не будет отпущена _delay_ms(500); // Дальше мигаем синим диодом LED_BLUE_OFF; _delay_ms(500); LED_BLUE_ON; _delay_ms(500); LED_BLUE_OFF; _delay_ms(500); LED_BLUE_ON; _delay_ms(500); LED_BLUE_OFF; _delay_ms(200); } // Конец блока работы с кнопкой } // Конец блока с вечным циклом }

Первым делом мы задаем константу F_CPU , которая укажет компилятору рабочую частоту ядра микроконтроллера, это нужно чтобы некоторые подпрограммы и функции работали корректно. В нашем примере используется функция задержки по времени - "_delay_ms" из библиотеки "util/delay.h", которая просчитывает время затраченное на холостые такты, опираясь на значение в константе F_CPU.

Посмотреть код библиотеки "delay" для организации задержки по времени и в котором используется константа F_CPU, можно в GNU Linux при помощи любого текстового редактора, к примеру можно выполнить вот такую команду:

Nano /usr/lib/avr/include/util/delay.h

Заводская установленная частота внутреннего RC генератора в микроконтроллере ATtiny2313 равняется 8000000Гц (8МГц), также по умолчанию установлен фьюз деления частоты - CKDIV8 (Clock Divide by 8), поэтому реальная рабочая частота кристалла = 8000000Гц / 8 = 1000000Гц = 1МГц.

Посмотреть какие фьюзы установлены в микроконтроллере можно при помощи avrdude или же графической оболочке к нему под названием AVR8 Burn-O-Mat .

Дальше в программе определены макросы для управления состоянием портов к которым подключены светодиоды: LED_BLUE_ON, LED_BLUE_OFF, LED_RED_ON, LED_RED_OFF. Вызвав подобный макрос в любом месте программы мы очень просто можем зажечь или погасить каждый из светодиодов, не придется повторять его код, что в свою очередь упростит программу и сделает ее более наглядной.

В основной программе "void main(void)" мы начинаем работу с конфигурации портов:

  • DDRD |= (0 << PD2) - установка разряда PD2 регистра DDRD на ввод, к нему подключена кнопка (пин 6);
  • PORTD |= (1 << PD2) - включение подтягивающего резистора для пина к которому привязан разряд PD2 регистра PORTD (пин 6);
  • DDRB |= (1 << PB0) - установка разряда PB0 в регистре DDRB на вывод, к нему подключен СИНИЙ светодиод (пин 12);
  • DDRB |= (1 << PB1) - установка разряда PB1 в регистре DDRB на вывод, к нему подключен КРАСНЫЙ светодиод (пин 13).

Дальше, используя макросы, мы гасим красный светодиод и зажигаем синий. Теперь при помощи еще одного вечного цикла но у же с условием мы выполним ожидание до того момента, пока кнопка не будет отжата: "while(!(PIND & (1 << PD2)));".

При отжатой кнопке на пине 6 появится высокий уровень (это сделает внутренний подтягивающий резистор, который мы включили раньше), а в разряде PD2 регистра PIND будет установлена логическая 1.

После этого выполняется трехразовое мигание (включение-выключение) синего светодиода с задержкой в 0,5 секунды и основной вечный цикл начинает работу по новому - будут поочередно зажигаться два светодиода.

Очень простая программа, но тем не менее, она является хорошим примером и почвой для дальнейших экспериментов.

Настройка Geany под ATtiny2313

В предыдущих публикациях я проводил эксперименты с микроконтроллером ATMega8, здесь же используется менее "нафаршированный" МК - ATTiny2313.

Для компиляции программы и прошивки ее в МК следует немножко перенастроить команды для сборки в интегрированной среде программирования Geany.

Идем в меню Build - Set Build Commands. В команде для компиляции (C commands) нужно изменить модель применяемого чипа: "-mmcu=attiny2313". В команде для прошивки МК нужно изменить тип чипа для avrdude: "-p t2313".

Рис. 3. Перенастройка Geany для работы с микроконтроллером ATTiny2313.

Все команды приведены для ОС GNU Linux, если у вас Windows то возможно придется прописать полные пути к бинарным файлам "avr-gcc.exe", "avr-objcopy.exe", "avrdude.exe".

Более подробно о том как настроить Geany в GNU Linux я рассматривал в одной из предыдущих статей цикла.

Компиляция и прошивка программы в МК

Компиляцию, сборку и прошивку программы можно выполнить нажав в среде Geany поочередно три кнопки: "Compile", "Build" и "Run". Также все эти операции можно выполнить из консоли, вот команды для данных действий (выполнять последовательно):

Avr-gcc -mmcu=attiny2313 -Os /tmp/avr-switch-test.c -o /tmp/avr-switch-test.o avr-objcopy -j .text -j .data -O ihex /tmp/avr-switch-test.o /tmp/avr-switch-test.hex avrdude -c usbasp -p t2313 -P usb -U flash:w:/tmp/avr-switch-test.hex

Все команды почти полностью (за исключением подстановок имен файлов) идентичны тем, которые мы исправляли в настройках Geany.

Заключение

Несмотря на простоту эксперимента я также постарался осветить некоторые очень важные технические моменты работы с портами, приведенные знания и опыт будут полезны в дальнейшем изучении и работе с микроконтроллерами ATMEL.

Еще один простой пример изготовления отладочной платы, но на этот раз для устройств с применением микроконтроллера ATTiny2313. Расположение ножек для программирования у ATTiny2313 идентичное ATTiny13. Соответственно и платы выйдут похожими. Отличием от будет наличие внешнего задающего генератора (кварца). По умолчанию, с завода ATTiny2313 поставляется с включенным внутренним генератором, поэтому если работа микроконтроллера не планируется от внешнего генератора его можно не устанавливать. Разъем питания дублируем на случай подключения к плате программатора с питанием от схемы (на один разъем подаем питание, с другого питаем программатор).


Для изготовления отладочной платы устройств на ATTiny2313 нам нужно:


Собираем отладочную плату по рисунку:

1 припаиваем в панельку под микросхему и штырьки (как на рисунке);
2 как показано на рисунке (красная линия) делаем перемычку с лицевой стороны платы. Еще одну перемычку делаем с другой стороны;
3 перемычками-«соплями» соединяем штырьки и ножки панельки (места пайки обведены зеленым).

Наша отладочная плата готова!

Заключение.

— Ставим метки на GND, SCK для правильного подключения питания и программатора;
— Все остальное на отладочную плату будет допаиваться в согласно выбранной схемы устройства. (как вариант можно допаять штырьки к каждой ножке микроконтроллера для подключения других плат и периферии);
— Для более надежной работы в условиях повышенных помех очень желательно дополнить схему, подтягивающим к питанию ножку сброса, резистором (внутренний подтягивающий резистор имеет сопротивление около 10 кОм – этого бывает мало) и фильтрующим керамическим конденсатором на ножках питания (в пределах 0.1 мкФ);
-Теперь вставляем в панельку микроконтроллер и при помощи прошиваем ATTiny2313 нужной прошивкой.

(Visited 16 038 times, 1 visits today)

Раздел: Метки: ,

Навигация по записям

Простая отладочная плата для устройств AVR ATTiny2313 с кварцем. : 70 комментариев


  1. GetChiper Автор записи

    Фьюзы трогали?
    На другой тини2313 проверяли?

  2. Toxa12345

    я долго мучался о том: «КАКОЙ жэ мк выбрать» остановился на тиньке 2313 по тому, что она дешевле атмег, и не настолько кострирована как тинька 13 так жэ изза наличия линий RxD и TxD что позволяет осуществить связь по ЮАРТ
    З.Ы. у нас в Курске купить МК не проблема. тинька 2313-стоит 130 руб. а атмега8 аж 200руб про тиньку 13 не узнавал


  3. GetChiper Автор записи

    А может ATmega88 или ATmega48?

  4. Andrey1979

    Доброго времени.
    Собрал я плату по предложенной схеме, подключил к USBasp, подключил 2313, подал 5 в. Extreme Burner выдает Incorrect Chip Found. Соответственно ничего не прошить не считать нельзя. При замене тиньки то же самое.
    Кто нибудь сталкивался с подобным?
    Возможно это связано с помехами?

    «– Для более надежной работы в условиях повышенных помех очень желательно дополнить схему, подтягивающим к питанию ножку сброса, резистором (внутренний подтягивающий резистор имеет сопротивление около 10 кОм – этого бывает мало) и фильтрующим керамическим конденсатором на ножках питания (в пределах 0.1 мкФ);»

    а еще, специально для чайников, можно ли отразить данные действия в виде схемы.


  5. GetChiper Автор записи

    Чего там отображать.
    Конденсатор ставится параллельно питанию (т.е. между ножками 10 и 20)
    Резистор 10 кОм ставится между Vcc и сбросом (т.е. между ножками 1 и 20)

  6. Andrey1979

    Спасибо за ответ. Поставил 4,7 КОм и 220пФ. Стало немного веселее. extreme burner пишет то же что и было. А вот khazama через раз сообщает The chip signature is 0x1e000. MISMATCH Expected signature for ATTiny 2313 is 1e 91 0a. В остальных случаях также пишет ошибку соединения.

    Использую беспаечную макетную плату, так что проблем с грязной пайкой быть не должно. Где еще можно поискать?


  7. GetChiper Автор записи

    220пФ маловато. Нужно 0.1 мкФ — керамический (не полярный) и 10-100 мкФ электролитический (полярный) поставить в параллель.

  8. Dederik

    добрый день))) я ненашел кварц 20,000 вместо него толька смог найти кварц 4,000. если я поставлю кварц 4,000 то у меня будет тормозит микро-р? и конденсаторы то же надо ли менять для кварца 4,000? я живу в самарканде с радио запчастями у нас проблема(((даже и незнаю где найти панельку под микрокон-р(((можна ли самому сделать панельку под микро-р?

  9. Dederik

    ответе хоть кто нибудь)))


  10. GetChiper Автор записи

    Спокойно — были выходные 🙂

    Кварц можно поставить любой если Вы планируете на этой платке учиться и делать свои устройства (конденсаторы под кварц менять не нужно). А можно вообще не ставить кварц — пользоваться встроенным RC-генератором.

    Насчет сделать панельку — может просто насмерть припаять МК в макетке?

  11. Dederik

    спасибо за помощь))) у меня еще один к вам вопрос, но не по теме не знаю где и задать(((сегодня ко мне принесли электронный счетчик на ремонт Holley DDS28. я там покопалься и нашел там микро-р Fudan FM24C02 которая отвечает за показания счетчика. в микро-ре храниться вся запись. не подскажете как сделать под него программатор чтоб можно было считывать и редактировать данные микро-ра??? и как к вам на прямую писать???


  12. GetChiper Автор записи

    FM24C02 — это последовательная энергонезависимая память (EEPROM)
    я думаю найдется много шнурков и программ для этого дела (если поисковик поспрашивать) — вот первое попавшееся http://www.msplata.ru/teleprog.html

  13. Dederik

    Спасибо за помощь:-)

  14. kosmogon

Статьи была описана сборка важной части нашей отладочной платы - схемы питания. Стоит сказать, что блок питания не всегда обязательно должен быть на любой отладочной или макетной плате. Если уже имеется готовый блок питания в виде готовой конструкции, то можно использовать и его. Широкое распространение получили и так называемые "лабораторные" блоки питания, имеющие одно или несколько стандартных выходных напряжений, часто регулируемых. Подобный блок питания также можно собрать самому или приобрести готовый. Тогда не потребуется каждый раз собирать схему питания для тестовых конструкций.


Продолжим собирать нашу отладочную плату. На этот раз мы установим на неё микроконтроллер, подключим несколько светодиодов и запустим на ней первую программу.
Первым делом подготовим необходимые детали:


Рис. 1. Основные детали.

В качестве основы возмём AVR-микроконтроллер ATtiny2313 . Не смотря на свой скромный вид и название, этот микроконтроллер способен решать очень многие задачи. Можно также применить и любой другой микроконтроллер. С примером использования AVR-микроконтроллера ATmega8 на нашей отладочной плате можно ознакомиться в другом варианте этого текста по ссылке: .

Первым делом после выбора детали, нужно ознакомиться с расположением её выводов и основными характеристиками. Вся необходимая информация для ATtiny2313 содержится в её . Помните, почти все выводы микроконтроллера могут иметь несколько функций. Эти функции можно выбирать при написании программы для µC. И на это следует обращать внимание уже на этапе составления принципиальной схемы. Кроме того, уже в процессе составления схемы удобно использовать условное обозначение деталей с "живой" распиновкой, то есть, при обозначении детали на схеме, чертить выводы так, как они расположены на самом деле. Тогда размещение компонентов и на схеме, и на плате будет происходить проще, понятнее и с меньшим количеством ошибок. (Почти во всех редакторах схем есть возможность нарисовать своё собственное условное обозначение детали.)

Начертим схему:


Рис. 2. Схема с микроконтроллером ATtiny2313 .


Кварцевый резонатор Q1 с конденсаторами С1 и С2 образуют источник тактового сигнала для микроконтроллера µC1. Это очень чувствительная к помехам часть схемы, поэтому проводники для нее следует выбирать минимальной длины, а к проводнику между С1, С2 и десятой ножкой µC1 (утолщённая линия на схеме) ничего больше не присоединять. Резистор R1 и конденсатор С3 образуют цепочку сброса для микроконтроллера. Резисторы R2-R5 необходимы для ограничения тока через светодиоды LED1 -LED4 . В цепи питания стоит блокировочный конденсатор С4. В качестве источника питания используем стабилизатор, собранный в первой части статьи. (Список всех возможных замен расположен в конце этой страницы.)


Рис. 3. Распространённая распиновка ISP-вилки.

Проводники для программирования следует подключить к одноимённым проводникам программатора. Эти проводники удобно подключить к ответной части разъёма имеющегося программатора с помощью стандартной вилки для установки на плату IDC-10MS (Рис. 3). Точное расположение выводов на этой вилке необходимо обязательно сверить с имеющимся программатором!



Рис. 4. Верх платы.

Расположим все детали на будущей отладочной плате в соответствии со схемой. Сначала одну за другой установим детали в отверстия, откусим бокорезами или кусачками излишнюю длину выводов у элементов и запаяем. После этого можно провести соединения проводами. В той части схемы, которая не будет меняться в дальнейшем, соединения лучше производить с нижней стороны платы. Панельку (ещё говорят "кроватку") для микроконтроллера можно запаять пустой, а потом вставить в неё микроконтроллер. При этом нужно не забывать о "ключе" панельки и самого микроконтроллера. В нашей схеме, например, соединения кварца, соединения с программатором и соединение микроконтроллера с питанием изменяться в будущем не будут. А соединения со светодиодами мы, скорее всего, будем изменять для разных экспериментов.


Рис. 5. Низ платы.

Проводники питания лучше всего взять какого то другого цвета: для плюсового провода можно взять красный, для минуса - синий или чёрный цвет. При разведении соединяющих проводников с обратной стороны платы не забываем о "зеркальности"!
Ровненько установить светодиоды можно следующим образом: продев небольшую полоску картона между выводами светодиодов, установить в отверстия платы, с обратной стороны отрезать лишнюю длину выводов и запаять их. После пайки ножек полоску картона можно вынуть, Рис. 6.


Рис. 6. Установка светодиодов.


Перед включением ещё раз проверим правильность соединений, а самое главное - правильность подсоединения проводников питания к микроконтроллеру!
Если при подключении питания зелёный сигнальный светодиод в схеме стабилизатора светится и ничего не нагревается, значит схема собрана правильно.
Теперь можно себя поздравить, мы только что получили собранную своими руками настоящую отладочную плату!
Сразу же загрузим в микроконтроллер простейшую программу мигания светодиодами: . После загрузки прошивки в микроконтроллер светодиоды начнут поочерёдно мигать. Время свечения и паузы будут приблизительно равны одной секунде:

Видео 1. Работа тестовой прошивки.

Применять такую отладочную плату можно не только для тестирования конструкций или программных алгоритмов. Иногда электронные схемы, собранные на макетных платах, применяют для построения законченных устройств даже профессиональные электронщики.
В будущем я приведу несколько примеров, как на основе этой отладочной платы можно собрать простой автомат световых эффектов, музыкальный звонок, таймер со светодиодной индикацией, и даже основной модуль простого робота.


Возможные замены в схеме с микроконтроллером ATtiny2313 Рис. 2:

  • Кварцевый резонатор Q1 можно применить на частоту от 2 до 8 Мегагерц. Тестовая прошивка (мигание светодиодами) будет работать медленнее или быстрее.
  • Конденсаторы С1 и С2 должны быть одинаковой емкости от 18 пФ до 27 пФ.
  • Ёмкость конденсаторов С3 и С4 может быть от 0,01мкФ до 0,5 мкФ.
  • Резистор R1 может быть заменён на другой, сопротивлением от 10 до 50 кОм.
  • Токоограничительные резисторы R2-R5 могут иметь сопротивление от 680 Ом до 1 кОм.
  • Светодиоды LED1 -LED4 могут быть любого цвета и размера.
  • Основной микроконтроллер может иметь следующие обозначения: ATtiny2313V -10PI, ATtiny2313V -10PU, ATtiny2313 -20PI, ATtiny2313 -20PU. Главное, чтобы он был в корпусе DIP или PDIP.


Дополнения:

  • ZIP: Тестовая прошивка мигания светодиодами .
  • URL: .

Смелых и Удачных Экспериментов!!!


Данная плата контроллера появилась во время разработки некоего устройства на заказ. Требовался микроконтроллер ATtiny2313 с минимальной обвязкой, возможностью подключения ко всем портам и возможностью подключения внутрисхемного программатора. Платка оказалась вполне удачной и после «облагораживания» было решено опубликовать данный материал на сайте.


Схема очень проста и представляет собой минимальное количество компонентов обвязки микроконтроллера. Тактирование МК осуществляется от внешнего керамического резонатора (3-х ногая версия со встроенными конденсаторами). Вывод сброса подтянут через резистор 10к к питанию (кнопки «Сброс» нет). Так как в схеме отсутствует стабилизатор питания, то напряжение должно подаваться от внешнего стабилизированного источника. Программирование микроконтроллера осуществляется любым внутрисхемным программатором (разъем для программирования присутствует).

Напряжение питания микроконтроллера зависит от используемой версии ATtiny2313:

- ATtiny2313V - 1.8-5.5V.

- ATtiny2313 - 2.7-5.5V .

От номинала питания так же зависит и максимально возможная частота тактирования:

- ATtiny2313V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
- ATtiny2313: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V

Более подробную информацию о микроконтроллере ATtiny2313 можно узнать из даташита или на сайте фирмы-производителя ATMEL.

Печатная плата контроллера имеет небольшие размеры (34х52 мм.) и выполнена в одностороннем варианте с тремя перемычками. Дополнительно на плате установлен сигнальный светодиод, который инициирует наличие питания в схеме.

Схема в формате sPlan 6.0 (rus) и разводка платы в формате Sprint Layout 5.0 вы можете скачать ниже.

Загрузка...