» »

Структурная схема attiny2313. Подключаем кнопку к микроконтроллеру ATtiny2313, простая программа. Диапазон питающего напряжения

23.01.2020

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


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


Рис. 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: .

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


Характеристики:

  • AVR RISC архитектура
  • AVR - высококачественная и низкопотребляющая RISC архитектура
    120 команд, большинство которых выполняется за один тактовый цикл
    32 8 битных рабочих регистра общего применения
    Полностью статическая архитектура
  • ОЗУ и энергонезависимая память программ и данных
    2 КБ самопрограммируемой в системе Flash памяти программы, способной выдержать 10 000 циклов записи/стирания
    128 Байт программируемой в системе EEPROM памяти данных, способной выдержать 100 000 циклов записи/стирания
    128 Байт встроенной SRAM памяти (статическое ОЗУ)
    Программируемая защита от считывания Flash памяти программы и EEPROM памяти данных
  • Характеристики периферии
    Один 8- разрядный таймер/счетчик с отдельным предделителем
    Один 16-разрядный таймер/счетчик с отдельным предделителем, схемой сравнения, схемой захвата и двумя каналами ШИМ
    Встроенный аналоговый компаратор
    Программируемый сторожевой таймер со встроенным генератором
    USI - универсальный последовательный интерфейс
    Полнодуплексный UART
  • Специальные характеристики микроконтроллера
    Встроенный отладчик debugWIRE
    Внутрисистемное программирование через SPI порт
    Внешние и внутренние источники прерывания
    Режимы пониженного потребления Idle, Power-down и Standby
    Усовершенствованная схема формирования сброса при включении
    Программируемая схема обнаружения кратковременных пропаданий питания
    Встроенный откалиброванный генератор
  • Порты ввода - вывода и корпусное исполнение
    18 программируемых линий ввода - вывода
    20 выводной PDIP, 20 выводной SOIC и 32 контактный MLF корпуса
  • Диапазон напряжения питания
    от 1.8 до 5.5 В
  • Рабочая частота
    0 - 16 МГц
  • Потребление
    Активный режим:
    300 мкА при частоте 1 МГц и напряжении питания 1.8 В
    20 мкА при частоте 32 кГц и напряжении питания 1.8 В
    Режим пониженного потребления
    0.5 мкА при напряжении питания 1.8 В


Общее описание:

ATtiny2313 - низкопотребляющий 8 битный КМОП микроконтроллер с AVR RISC архитектурой. Выполняя команды за один цикл, ATtiny2313 достигает производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.

AVR ядро объединяет богатую систему команд и 32 рабочих регистра общего назначения. Все 32 регистра непосредственно связаны с арифметико-логическим устройством (АЛУ), что позволяет получить доступ к двум независимым регистрам при выполнении одной команды. В результате эта архитектура позволяет обеспечить в десятки раз большую производительность, чем стандартная CISC архитектура.

ATtiny2313 имеет следующие характеристики: 2 КБ программируемой в системе Flash память программы, 128 байтную EEPROM память данных, 128 байтное SRAM (статическое ОЗУ), 18 линий ввода - вывода общего применения, 32 рабочих регистра общего назначения, однопроводный интерфейс для встроенного отладчика, два гибких таймера/счетчика со схемами сравнения, внутренние и внешние источники прерывания, последовательный программируемый USART, универсальный последовательный интерфейс с детектором стартового условия, программируемый сторожевой таймер со встроенным генератором и три программно инициализируемых режима пониженного потребления. В режиме Idle останавливается ядро, но ОЗУ, таймеры/счетчики и система прерываний продолжают функционировать. В режиме Power-down регистры сохраняют свое значение, но генератор останавливается, блокируя все функции прибора до следующего прерывания или аппаратного сброса. В Standby режиме задающий генератор работает, в то время как остальная часть прибора бездействует. Это позволяет очень быстро запустить микропроцессор, сохраняя при этом в режиме бездействия мощность.

Прибор изготовлен по высокоплотной энергонезависимой технологии изготовления памяти компании Atmel. Встроенная ISP Flash позволяет перепрограммировать память программы в системе через последовательный SPI интерфейс или обычным программатором энергонезависимой памяти. Объединив в одном кристалле 8- битное RISC ядро с самопрограммирующейся в системе Flash памятью, ATtiny2313 стал мощным микроконтроллером, который дает большую гибкость разработчика микропроцессорных систем.

ATtiny2313 поддерживается различными программными средствами и интегрированными средствами разработки, такими как компиляторы C, макроассемблеры, программные отладчики/симуляторы, внутрисхемные эмуляторы и ознакомительные наборы.

AVR RISC архитектура:

RISC (Reduced Instruction Set Computer). Данная архитектура обладает большим набором инструкций, основное количество которых исполняются в 1 машинный цикл. Из этого следует, что по сравнению с предшествующими микроконтроллерами на базе CISC архитектуры (например, MCS51), у микроконтроллеров на RISC быстродействие в 12 раз быстрее.

Или если взять за базу определенный уровень быстродействия, то для выполнения данного условия микроконтроллерам на базе RISC (Attiny2313) необходима в 12 раз меньше тактовая частота генератора, что приводит к значительному снижению энергопотребления. В связи с этим возникает возможность конструирование различных устройств на Attiny2313, с использованием батарейного питания.

Оперативно — Запоминающее Устройство (ОЗУ) и энергонезависимая память данных и программ:

  • 2 кБ самостоятельно программируемой в режиме Flash памяти программы, которая может обеспечить 10 000 повторов записи/стирания.
  • 128 Байт записываемой в режиме EEPROM памяти данных, которая может обеспечить 100 000 повторов записи/стирания.
  • 128 Байт SRAM памяти (постоянное ОЗУ).
  • Имеется возможность использовать функцию по защите данных программного кода и EEPROM.

Свойства периферии:

  1. Микроконтроллер Attiny2313 снабжен восьми разрядным таймер-счетчиком с отдельно устанавливаемым предделителем с максимальным коэффициентом 256.
  2. Так же имеется шестнадцати разрядный таймер-счетчик с раздельным предделителем, схемой захвата и сравнения. Тактироваться таймер – счетчик может как от внешнего источника сигнала, так и от внутреннего.
  3. Два канала. Существует режим работы быстрый ШИМ-модуляции и ШИМ с фазовой коррекцией.
  4. Внутренний аналоговый компаратор.
  5. Сторожевой таймер (программируемый) с внутренним генератором.
  6. Последовательный универсальный интерфейс (USI).

Особые технические показатели Attiny2313:


  • Idle — Режим холостого хода. В данном случае прекращает свою работу только центральный процессор. Idle не оказывает влияние на работу SPI, аналоговый компаратор, аналого-цифровой преобразователь, таймер-счетчик, сторожевой таймер и систему прерывания. Фактически, происходит только остановка синхронизация ядра центрального процессора и флэш-памяти. Возврат в нормальный режим работы микроконтроллера Attiny2313 из режима Idle происходит по внешнему либо внутреннему прерыванию.
  • Power-down — Наиболее экономный режим, при котором микроконтроллер Attiny2313 фактически отключается от энергопотребления. В этом состоянии происходит остановка тактового генератора, выключается вся периферия. Активным остается лишь модуль обработки прерываний от внешнего источника. При обнаружении прерывания микроконтроллер Attiny2313 выходит из Power-down и возвращается в нормальный режим работы.
  • Standby – в этот дежурный режим энергопотребления микроконтроллер переходит по команде SLEE. Это аналогично выключению, с той лишь разницей, что тактовый генератор продолжает свою работу.

Порты ввода — вывода микроконтроллера Attiny2313:

Микроконтроллер наделен 18 выводами ввода – вывода, которые можно запрограммировать исходя из потребностей, возникающих при проектировании конкретного устройства. Выходные буферы данных портов выдерживают относительно высокую нагрузку.

  • Port A (PA2 — PA0) – 3 бита. Двунаправленный порт ввода-вывода с программируемыми подтягивающими резисторами.
  • Port B (PB7 — PB0) – 8 бит. Двунаправленный порт ввода-вывода с программируемыми подтягивающими резисторами.
  • Port D (PD6 — PD0) – 7 бит. Двунаправленный порт ввода-вывода с программируемыми подтягивающими резисторами.

Диапазон питающего напряжения:

Микроконтроллер успешно работает при напряжении питания от 1,8 до 5,5 вольт. Ток потребления зависит от режима работы контроллера:

Активный режим:

  • 20 мкА при тактовой частоте 32 кГц и напряжении питания 1,8 вольт.
  • 300 мкА при тактовой частоте 1 МГц и напряжении питания 1,8 вольт.

Режим энергосбережения:

  • 0,5 мкА при напряжении питания 1,8 вольт.

(3,6 Mb, скачано: 5 934)

Как производится программирование микроконтроллеров ATtiny2313? Итак, имеем микроконтроллер ATtiny2313, LPT порт (обязательно железный - никакие USB-2-LPT не работают), несколько проводков (длина не более 10см) и конечно же паяльник. Желательно иметь разъём DB-25M (папа), с ним будет удобней подключать микроконтроллер, но можно обойтись и без него. Припаиваем проводки к выводам 1, 10, 17, 18, 19, 20 микроконтроллера. Получаем нечто вроде того, что на фото:


Я делал без разъёма (в наличии были только мамы...), и вот что получилось:


Правда у меня LPT порт вынесен на стол с помощью кабеля длиной 1,5 метра. Но при этом кабель должен быть экранированный, иначе будут наводки, помехи и ничего не получится. Схема этого устройства программирования микроконтроллера вот такая:


Если быть совсем честным, то желательно собрать "правильный" программатор. И потом будет проще и порт целее. Я пользую STK200/300. Далее используем программу PonyProg2000. После запуска программы она "заржет...." как настоящий пони. Чтобы этого больше не слышать в появившемся окне ставим галочку "Disable sound". Жмём "ОК". Выскакивает окошко которое говорит, что нужно откалибровать программу. Компы бывают же разные и медленные и шустрые. Жмём "ОК". Выскакивает ещё одно окошко - это нам говорит, что нужно настроить интерфейс (какой программатор и куда подключен.). Итак заходим в меню: Setup -> Calibration. В появившемся окне:


Жмём "YES". Проходит пара секунд и программа говорит "Calibration OK". Далее заходим в меню: Setup -> Interface Setup. В появившемся окошке настраиваем как у показано на рисунке.


Теперь заходим в меню: Command -> Program Options. В появившемся окошке настраиваем как показано на рисунке.


Всё готово к программированию!... Итак, последовательность действий:


1. Выбираем из списка "AVR micro"
2. Из другого списка выбираем "ATtiny2313"
3. Загружаем файл прошивки (File -> Open Device File), выбираем нужный файл, например "rm-1_full.hex".
4. Жмём кнопочку "Launch program cycle". Когда программирование завершится прога скажет "Program successful"
5. Ну и напоследок надо запрограммировать так называемые Фьюзы (fuses). Для этого жмём кнопочку "Security and Configuration Bits". В появившемся окне жмём "Read", потом выставляем галочки и жмём "Write".

ВНИМАНИЕ! Если Вы не знаете, что означает тот или иной конфигурационный бит, то не трогайте его. Вот теперь у нас готовый к работе контроллер ATtiny2313! На форуме можно скачать программу PonyProg2000 и оригинал статьи с дополнительными рисунками. Материал для сайта Радиосхемы предоставил Ansel73.

Устройство этой статьи - работа с SD картами. Тема стара и порядочно заезженная, но применение SD карт стоит того, чтобы об этом написать еще раз.
Вообще SD карты (SDC, SD Card) имеют много достоинств и их очень просто и удобно применять в небольших встраиваемых проектах. Этому способствует ряд факторов:
- очень простой интерфейс взаимодействия с картой (реализуется посредством SPI);
- большая скорость работы (микроконтроллер способен перегонять данные с SD карты со скоростью близкой к 10 Мбит/с);
- низкое энергопотребление (буквально пару миллиампер - не больше);
- небольшие размеры;
- доступность и дешевизна.
У SD карт практически нет недостатков (окромя, разве что, процедуры их инициализации:)).

1 Введение.

Устройство, описанное в этой статье, я назвал SD Card Talking Device. Немного пафосно;) , но зато по названию понятно, что это говорящее устройство. Оно предназначено для озвучивания Ваших проектов. Если кратко, то работает оно следующим образом: на SD карту записываются пронумерованные звуковые файлы, которые устройство проигрывает по Вашей команде. Сфера применения довольно широка - системы оповещения, игрушки, роботы, умный дом и т.д. Габариты устройства довольно скромные (можно и меньше, но я сознательно выбрал микроконтроллер ATtiny2313 который подешевле и полегче достать). Основной упор я пытался делать на простоту и максимальную функциональность.
Забегая вперед, смотрим, что должно получиться в итоге:

Пригодится такое устройство? Тогда собираем!

2 Карта памяти.

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

SD карта прошла довольно длинный путь эволюции и имеет несколько вариантов ее реализации (MMC - как вариант SD карты, SD ver1, SD ver2, SDHC, SDXC). Процедура общения с картой проста и универсальна для всех типов карт, а вот запуск в работу (инициализация карты) довольно неоднозначный и запутанный процесс, с ритуальными «передергиваниями» карты, посылкой пустых «dummy» команд и прочими непонятными вещами (короче, танцы с бубнами обязательны:)). Сама спецификация на SDC протокол описывает процесс инициализации довольно пространно, оно и понятно, производителей карт тьма, у каждого свое железо, со своими особенностями… К чему я это веду? - Я попытался сделать процедуру инициализации максимально универсальной, но будьте готовы к тому, что некоторые карты «не пойдут». Поэтому если у Вас чего-то не ладится с устройством, попробуйте другую карту памяти - может причина в этом.

В данном устройстве поддерживаются SD карты размером до 2 Гб, включительно. Все что выше (SDHC и SDXC) - не поддерживается.
Для устройства нет разницы в каком форм-факторе карта (SD, MiniSD или MicroSD), но Вы должны правильно ее подключить, согласно распиновки карты.

3 Файловая система.

В устройстве работают карты, имеющие файловую систему FAT16. Эта система как нельзя лучше подходит для устройств подобных нашему, так как проста и легко реализуемая (FAT12 и FAT32, в принципе, тоже не сложно реализовать, но это нецелесообразно, в виду отсутствия каких либо достоинств по сравнению с FAT16).

Нет особых требований по форматированию карты - ее можно отформатировать в любом доступном устройстве. Стандартное форматирование Windows вполне подходит для этих целей.

Для корректной работы устройства звуковые файлы, расположенные на SD карте, должны соответствовать определенным требованиям:
а) Формат файла должен быть - несжатым WAV.
Параметры файла следующие:
- Битрейт - частота дискретизации (Frequency) - 32000 Гц;
- Количество каналов (Channels) - 1 (mono);
- Размерность (Sample size) - 8 бит.
Еще возможно такое сокращение - WAV PCM 8U

b) Файл должен быть назван особым образом. Для того чтобы устройство знало какой файл первый, второй, третий и т.д. первый символ имени файла должен быть заглавной буквой латинского алфавита (остальная часть названия, как и расширение файла - игнорируется).
Например, корректными будут следующие названия файлов:
А_Лай_собаки.wav - первый трек
B-Это второй трек.wav - второй трек
С Warning! Error!.wav - третий трек

c) Для использования дополнительных возможностей устройства, файлы могут располагаться в двух папках с именами «1» и «2». Устройство имеет переключатель для выбора активной папки, то есть одна и та-же команда запуска воспроизведения может запускать треки из папки «1» или «2», в зависимости от уровня на переключающем входе (своего рода выбор звуковой схемы - очень полезная вещь!). Если одной из папок (или сразу обеих) не существует, файлы воспроизводятся из корневого каталога.

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

d) Ввиду малого объема SRAM у ATtiny2313 невозможно создать буфер для предварительного чтения данных, поэтому данные из файла напрямую выдаются на воспроизведение. Соответственно, нет возможности (не хватает времени) выполнять поиск фрагментов файла по таблице FAT. Другими словами, файлы, записанные на карту, должны быть не фрагментированы.

На самом деле это не является большой проблемой, так как любая операционная система всегда пытается записать файл целым куском и пока у Вас на карте есть место то любые действия с файлами (удаление, копирование, переименования) не повлияют на их целостность. Если у Вас карта очень малого объема или Вы заполнили до отказа большую карту, для того, чтобы быть уверенным в целостности файлов, просто скопируйте их на жесткий диск компа, отформатируйте карту и верните файлы назад.

4 Схема. Печатная плата.

Схема устройства максимально проста. Фактически, кроме самого микроконтроллера и SD карты, в ней ничего нет. Для себя я сделал печатку под SMD компоненты, так как планируется применить данный девайс в ограниченном по габаритам месте. Если для Вас габариты не критичны можно собрать схему на макетке в DIP варианте. В случае макетки, сборка устройства займет у Вас, от силы, 15 минут. Допустимое напряжение питания для SD карты от 2.7 до 3.6 вольт. В этом промежутке нормально работает и микроконтроллер, поэтому нет необходимости применять какие либо согласующие компоненты. Я проверял работу всего устройства и при питании в 5 вольт - все работало нормально, но не рекомендую так делать на постоянной основе, так как разные карты могут на превышение напряжения реагировать по разному. В качестве кардхолдера для microSD я использовал адаптер, подпаявшись прямо к его контактам. Если нужны габариты поменьше лучше использовать настоящий кардхолдер для microSD.

Для прошивки микроконтроллера используется тот-же разъем, что и для SD карты, поэтому придется подумать как к нему подключить программатор (я специально сделал переходник).

После того как плата спаяна - можно прошивать микроконтроллер.

Небольшая галерея готового устройства:




Небольшой нюанс по схеме.
При установке SD карты в кардхолдер (подключении карты к источнику питания) создается скачек тока и, соответственно, просадка напряжения в схеме (похоже, в карте в это время заряжаются значительные емкости). Просадка настолько значительная, что происходит сброс микроконтроллера. Я это использую для начала процедуры инициализации карты (установка карты перезапускает микроконтроллер и первое что делает прошивка это поиск и инициализация карты). Если у Вас при установке карты не происходит сброса МК (мощный источник питания или большие сглаживающие емкости), то Вам нужно позаботиться о кнопке сброса в схеме для ручного сброса микроконтроллера (это если планируется «горячая» смена карт).

5 Работа устройства.

Как я уже писал выше, работать с устройством очень просто: копируем на SD карту правильно названые треки, вставляем карту в кардхолдер, устройство автоматически найдет карту, зажжет зеленый светодиод - все, устройство готово воспроизводить треки. Теперь нужно только выбрать-запустить трек на воспроизведение, способом, который Вам больше всего подходит.

5.1 Кнопки устройства, их действие.

Я попытался сделать устройство максимально функциональным, поэтому очень много ножек микроконтроллера задействованы под переключатели режимов работы (от этого устройство напоминает ежика:)). Если Вам какая функция не нужна - просто оставьте «висеть» ногу в «воздухе».
Действие переключателей:
- “Monster” - позволяет замедлить (в 2 раза) воспроизведения трека - создавая эффект низкого голоса. Переключатель работает «на лету» - скорость изменяется по факту переключения;
- “Helium” - ускоряет воспроизведение трека (на 1/3) - создавая эффект высокого голоса. Переключатель работает «на лету»;
- “Repeat” если этот переключатель замкнут на землю, то выбранный трек будет бесконечно (до момента размыкая переключателя) воспроизводиться. Это может быть полезным, например, если нужно создавать определенный звуковой фон - шум дождя, горение костра, журчание ручья…;
- “Select / Play” кнопка запускающая трек на воспроизведение (описание ниже);
- “Select track”- установка номера воспроизводимого трека (описание ниже);
- “Dir1 / Dir2” - выбор звуковой схемы (описание ниже).

5.2 Запуск воспроизведения.

Запустить воспроизведение определенного трека можно тремя способами:
- послав по UART заглавную букву латинского алфавита - сразу начинается воспроизведение файла, содержащего эту букву в начале названия;
- если при помощи “Select track” выбран номер файла (двоичным кодом 0001=”A”, 0010=”В”, и т.д. 1- нога замкнута на землю, 0 - «висит» в «воздухе»), то кнопка “Select / Play” запустит соответствующий файл на воспроизведение;
- если при помощи “Select track” ничего не выбрано (0000 - ноги «висят» в «воздухе»)), то нажимая кнопку “Select / Play” определенное количество раз, запускаем соответствующий трек (1 раз=”A”, 2 раза=”В”, и т.д.).

5.3 Звуковые схемы.

Очень полезной функцией является функция выбора одной из двух звуковых схем. Это значит, что переключателем “Dir1 / Dir2” выбирается папка на карте, из которой будет воспроизводиться трек.

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

Например, Вам нужно, чтобы ваше устройство умело общаться мужским и женским голосом. Реализуется это так:
- создаем два комплекта сообщений, соответственно, в женском и мужском варианте;
- нумерацию файлов для обоих вариантов делаем одинаковую. Не забываем, что устройство «видит» только первую букву в названии файла, поэтому для себя Вы можете имена сделать более понятными, например «С_Ожидаю команду_муж.wav» и «С_Ожидаю команду_жен.wav» вполне корректны;
- комплект мужских сообщений копируем в папку «1», а женских в папку «2».
Теперь в зависимости от состояния переключателя “Dir1 / Dir2” по одной и той-же команде будут воспроизводиться треки из «мужской» или «женской» папки.

5.4 Индикация работы устройства.

Так как у тини2313 очень мало ног, и почти все задействованы на переключатели, мне пришлось пожертвовать нормальной индикацией, а взамен приделать нечто НЕ нормальное. Для индикации разных режимов работы используется всего одна нога микроконтроллера, к которой подключены два светодиода - красный и зеленый (ну или какие Вам больше нравятся). Различные режимы работы устройства отображаются определенным цветовым кодом:
- мигает красный светодиод - отсутствует SD карта или ее тип не поддерживается устройством;
- горит красный светодиод - SD карта поддерживается и удачно проинициализировалась, но карта отформатирована не в FAT16;
- горит зеленый светодиод - SD карта удачно проинициализировалась, найдена нужная файловая система и устройство готово воспроизводить трек - ожидание команды;
- мигает зеленый светодиод - устройство воспроизводит трек;
- горит зеленый, кратковременно загорается красный, опять горит зеленый - не найден трек;
- горит зеленый, кратковременно тухнет и вновь загорается зеленый - нажата клавиша выбора трека.

5.5 Отладочная информация.

Для облегчения поиска проблемных мест (в случае если устройство не хочет работать) я каждый этап инициализации в программе продублировал сообщениями по UART. После каждого успешного шага в UART отправляется соответствующий символ:
- “S” - (Start) периферия микроконтроллера проинициализирована нормально;
- “C” - (Card Init) SD карта проинициализирована нормально и поддерживается;
- “F” - (FAT Init) FAT система поддерживается;
- “1” - (No 1 Dir) нет папки «1» чтение будет осуществляться с корневой директории;
- “2” - (No 2 Dir) нет папки «2» чтение будет осуществляться с корневой директории;
- “R” - (Ready) устройство полностью готово - ожидает команды запука трека;
- Кроме того, при каждом запуске трека, в UART передается заглавная буква имени трека.

6 Треки для озвучивания Ваших устройств.

6.1 Конвертирование треков

Если в библиотеке выше ничего подходящего не нашлось, то заполучить необходимые треки можно в сети (есть много специальных сайтов для музыкантов и видео монтажа, где уже собраны большие библиотеки звуков), в инсталляциях игр (зачастую звуки игрового процесса разделены по трекам и сложены в отдельную папку). Еще можно вырезать звуковые эффекты из фильмов и музыкальных композиций. Найденые треки нужно переконвертировать в формат который поддерживает устройство. Напоминаю, формат файла должен быть - несжатым WAV. 32000 Гц, 1 канал, 8 бит (WAV PCM 8U)
Для конвертации в такой формат подойдет любой музыкальный редактор, или, если нужно просто преконвертировать трек без его правки -