Главная » Микроконтроллеры
Призовой фонд
на январь 2017 г.
1. 1000 руб.
Radio-Sale
2. Регулируемый паяльник 60 Вт
Паяльник
3. 600 руб.
От пользователей
4. Тестер компонентов LCR-T4
Паяльник

SD WAV плеер с управлением по UART

Давно я хотел заиметь модуль который мог бы воспроизводить WAV файлы с SD или microSD карты и имел управление по UART. И вот свершилось! В результате я собрал небольшой модуль на макетной плате, основой является микроконтроллер Atmega32. Устройство может воспроизводить WAV файлы с частотой дискретизации 11025 Гц, 8 бит, моно. Управление устройством осуществляется посредством UART на скорости 9600 бод. Плеер поддерживает SD, miniSD и microSD карты с файловой системой FAT, FAT16 и размером не более 2 ГБ. Внешний кварц можно использовать с частотой только 8 МГц. Питание: 3.0 - 3.7 вольт.

Принципиальная схема:

Схема плеера

Вот что получилось в итоге:

mc219_photo.jpg

При включении устройства оно пошлет по UART сообщение "Starting device", после чего попытается инициализировать SD карту. Если инициализация проидёт успешно, то придёт сообщение "SD card detect", если нет то "SD card not detect". Когда устройство пришлёт "WAV file name:", вводите полное имя WAV файла (с расширением) на SD карте. Во время воспроизведения устройство пришлёт "Play " и имя файла. Пару слов о качестве звука: я бы не рекомендовал устройство в качестве домашнего проигрывателя музыки но для дверного звонка, речи робота и т.п. оно вполне сойдёт.

После прошивки незабудте установить следующие фьюз-биты:

fuse(12).png

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
U1 МК AVR 8-бит
ATmega32
1 Поиск в FivelВ блокнот
C1, C2 Конденсатор22 пФ2 Поиск в FivelВ блокнот
C3, С5 Электролитический конденсатор100 мкФ2 Поиск в FivelВ блокнот
С4 Конденсатор100 нФ1 Поиск в FivelВ блокнот
Х1 Кварцевый резонатор8 МГц1 Поиск в FivelВ блокнот
R1 Резистор
10 кОм
1 Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 1
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (20) | Я собрал (0) | Подписаться

0
Василий #
А почему бы вам не выложить и этот код?
"Config_MMC.bas"
"Config_AVR-DOS.BAS"
Без него не скомпилируется, если вдруг захочется переделать.
Ответить
0

[Автор]
alex98y #
Этот код - это библиотека AVRDOS, она идёт в комплекте с BASCOM-AVR. Просто скопируйте эти файлы из директории баскома SAMPLES\AVRDOS в директорию проекта и всё будет ок.
Ответить
0
анатолий #
А больше 2х гигов можно сделать?
Ответить
0

[Автор]
alex98y #
Больше 2х гигов уже FAT не потянет, нужно FAT32. Теоретически сделать можно, но будет нужно перелопатить код библиотеки AVRDOS для работы с FAT32.
Ответить
0
uh9cae #
Со стандартным "Config_AVR-DOS.BAS" пишет Out of SRAM space, in File : Config_AVR-DOS.BAS
Ответить
0
Дима #
При компиляции ругается на библиотеку "Config_AVR-DOS.BAS"
Строка:
121 Dim Abfilehandles(c_filehandlessize) As Byte
Если можно, дайте ваши библиотеки с чем вы работали или может дело в версиях Bascom-avr?
Ответить
0
Дима #
Если можно дайте ваши библиотеки с чем вы работали или может дело в версиях Bascom.avr
Ответить
0
Влад #
У меня такая же ошибка выходит, в чем может быть дело?
Ответить
0
Юрий #
А почему написано что кварц можно только 8МГц?
Ответить
0
Алексей #
Задумка классная, но не компилится, падает с ошибкой нехватки памяти. Напишите, пожалуйста, версии Баскома и библиотек. Пробовал на 1.11.9.8, 2050, 2071.
Хочется в своей конструкции использовать.
Ответить
+1
Алексей #
Поскольку автор не отвечает, поделюсь своими наработками. Библиотеки CONFIG_AVR-DOS.bas и Config_MMC.bas должны лежать в одной папке с вашей программой. Чтобы при компиляции баском не ругался на память, нужно внести изменения в библиотеку Config_AVR-DOS.BAS:
Const Cfilehandles = 1 ' [default = 2]
Const Csepfathandle = 0 ' [default = 1]

Далее в библиотеке Config_MMC.bas в строках:
' define Chip-Select Pin
Config Pinb.4 = Output ' define here Pin for CS of MMC/SD Card
Mmc_cs Alias Portb.4
Set Mmc_cs

' Define here SS Pin of HW-SPI of the CPU (f.e. Pinb.0 on M128)
Config Pinb.4 = Output ' define here Pin of SPI SS
Spi_ss Alias Portb.4
Set Spi_ss ' Set SPI-SS to Output and High por Proper work of
' SPI as Master

нужно указать вывод SS микроконтроллера (в меге32 это pinb.4)

У меня после всех этих коррекций всё заработало.
Ответить
0
Roman #
Звук выводится... но такое ощущение что подтормаживает.... в чем может быть дело? Кто сталкивался с такой проблемой?
Ответить
0
Андрей #
Кварц точно на 8 МГц использовали, в прошивку вмешательств не было?
Ответить
0
ven100 #
Уже много чего испробовал, но карты не читаются.
Ответить
0
sbhidden #
Попробуйте HSC-003 в поиске. Хотя бы вот это
Будет не только WAV, но и MP3
Надо дешевле, и помучаться - здесь
Ответить
0
Сергей #
А не подскажете, как управлять этой штуковиной HSC-003? В сети практически ничего нет про него.
Ответить
0
sbhidden #
купите - спросите у продавца...
они высылают даташит...
там посылки 4-6 байт
вкратце -
старт( 1 байт ),
длина( 1 байт ),
команда( 1-3 байт),
стоп( 1 байт ).
Ответить
0
samego #
Да я заказал сегодня.
Думал, может у Вас пример какой-нибудь есть. Готовый.
Ответить
0
sbhidden #
У меня, может и есть пример, но нестандартный. Точнее проект на этих микросхемах. Модуль на Pascal Вас устроит?
Ответить
0
ven100 #
"WTV020" пробовал с мегой 8, код писал в баскоме, из 5-ти флешек только одна запустилась (флехи рабочие)
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Конструктор: DDS генератор сигналов Модуль радиореле на 4 канала
вверх