Программирование AVR Простой SD/microSD звуковой плеер на 8-выводном микроконтроллере ATtiny85 Fri, November 22 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Простой SD/microSD звуковой плеер на 8-выводном микроконтроллере ATtiny85 Печать
Добавил(а) microsin   

Этот простейший аудиоплеер может воспроизводить WAV-файлы, которые находятся на карте памяти microSD. Микроконтроллеры серии ATtinyX5 (25/45/85) с 8 выводами имеют два выхода fast PWM (быстрый ШИМ) с несущей частотой 250 кГц. Это позволяет выводить звук с хорошим качеством и в широком частотном диапазоне.

micro-sd-8pin

Описываемый аудиоплеер построен на карте памяти SD (SDC) и микроконтроллере ATtiny85. Карта SDC может подключаться только через 6 проводов, из которых два предназначены для питания, и 4 заняты под сигналы управления. Поэтому карту SDC можно легко подключить к 8-выводному микроконтроллеру. Основная программа tiny-микроконтроллера AVR работает как SMPS (Switched Mode Power Supply, ключевой источник питания), используя свою периферию в качестве генератора PWM (ШИМ).

micro-sd-player-ATtiny85

[Hardware]

Самый маленький в мире плеер (он размером почти в карту microSD, так что вполне возможно) сделан по схеме в трех вариантах - моно, стерео, и моно с высоким разрешением (см. картинки).

micro-sd-player-ATtiny85-sch-mono micro-sd-player-ATtiny85-sch-stereo micro-sd-player-ATtiny85-sch-high-resolution

Для сохранения данных звука использовалась карта microSD, однако с таким же успехом можно применить стандартные SD и miniSD с соответствующим сокетом. Динамики подключены напрямую к выходам PWM микроконтроллера AVR. Такая нагрузка может оказаться слишком большой для порта микроконтроллера, однако максимально допустимый ток никогда не превышает установленного предела при напряжении питания 3 V, даже если выходной порт замкнуть на шины питания. При такой схеме подключения звук получается не очень громким, однако он хорошо слышен, если подключить настольные высокоэффективные колонки. Если Вы хотите подключить выход плеера к усилителю, то высокочастотная составляющая ШИМ должна быть отфильтрована фильтром низких частот (ФНЧ, Low Pass Filter, LPF). Не подключайте ШИМ-сигнал напрямую к аналоговому усилителю, потому что это может повредить усилитель или динамики.

[Firmware]

Использование карты памяти в проекте с микроконтроллером означает, что firmware должно уметь работать с файловой системой FAT. В этом плеере используется библиотека Petit-FatFs module [4], которая была сделана как ветвление от библиотеки FatFS [5]. Библиотека Petit-FatFs разработана специально для систем с очень маленькой памятью, у которых доступный объем RAM составляет меньше 512 байт, поэтому она хорошо подходит для AVR и PIC.

Для каждого варианта схемы в архиве [2] есть свой файл прошивки firmware. Значения фьюзов скомбинированы с HEX-файлами (встроены в них), однако некоторые программаторы AVR могут не поддерживать такой формат HEX. В этом случае просто удалите последние 3 строки их HEX-файла. Необходимые значения фьюзов можно найти в файле main.c. Выриант схемы с двумя выходами требует задействования всех ножек ATtiny85, включая ножку RESET. Для этого нужно запрограммировать фьюз RSTDISBL специальным высоковольтным программатором по методу HVSP. Не все программаторы поддерживают такой режим программирования. Для HVSP можно использовать, например, AVR-Doper [6]. После того, как запрограммируете микроконтроллер по методу HVSP, то перепрограммировать его потом можно будет только в том случае, если полностью выпаяете микроконтроллер из схемы.

Монофонические схемы используют только 5 ножек ввода/вывода, и для них не нужно перепрограммировать фьюз RSTDISBL. Поэтому чип ATtiny85 для монофонической схемы можно запрограммировать в режиме ISP, который поддерживается всеми программаторами AVR.

Firmware плеера поддерживает только формат RIFF-WAVE PCM, 8/16-bit, mono/stereo до скорости выборок (sampling rate) 48 кГц. Файл MP3 должен быть переконвертирован в формат WAVE. Воспроизведение начнется, как только будет включено питание или будет в сокет вставлена карта памяти. Если в корневой директории имеется папка "wav", то файлы будут проигрываться из неё в том порядке, как они были записаны на карту. Если папки "wav" нет, то файлы будут проигрываться из корневой (root) директории карты. Нажатие на кнопку будет производить переход к воспроизведению следующего файла.

[Ссылки]

1. Simple SD Audio Player with an 8-pin IC site:elm-chan.org - оригинал статьи на английском языке.
2. Firmware (Source files + HEX files) и демонстрационное видео.
3255-голосный генератор звука PCM на 20-выводном микроконтроллере ATtiny861.
4. Библиотека Petit FatFS: модуль файловой системы FAT.
5. Библиотека FatFS: модуль файловой системы FAT.
6. Программатор AVR-Doper.
7. Пример простейшей обработки WAV-файла.
8. Noiseplug: джек RCA, играющий chiptune-трек.

 

Добавить комментарий


Защитный код
Обновить

Top of Page