Интернет журныл о промышленности в Украине

Звуковий PCM генератор на мікроконтролері ATtiny861. Частина 1. Схема

Основним елементом даного пристрою є мікроконтролер   ATtiny861   виробництва компанії   Atmel   , Який має більш швидкий вбудований ШІМ, в порівнянні з   ATtiny85

Основним елементом даного пристрою є мікроконтролер ATtiny861 виробництва компанії Atmel , Який має більш швидкий вбудований ШІМ, в порівнянні з ATtiny85 . Отже, мікроконтролер може генерувати більш чистий звук, в порівнянні з іншими пристроями сімейства AVR.

Для зберігання звукових файлів і конфігураційного файлу використовується карта пам'яті SD (microSD), але можливе використання і карт пам'яті MMC з відповідним слотом.

Додатково, 20-вивідних мікроконтролер має багато доступних ліній введення / виводу, що дозволяє ввести систему управління генератором від зовнішніх сигналів. Завдяки своїм компактним розмірам, простоті виготовлення та управління, цей звуковий генератор може використовуватися в якості звукового модуля для іграшок, музичного дзвінка, розважального пристрою тощо.

апаратна частина

Карта пам'яті (microSD) використовується в якості пристрою зберігання і підключена до мікроконтролеру через інтерфейс SPI з використанням вбудованого апаратного модуля USI (універсальний послідовний інтерфейс). Аудіосигнал генерує вбудований ШІМ, і тому динамік може підключатися безпосередньо до виходу ШІМ. Рівень гучності, звичайно, не дуже високий, але при використанні якісних динаміків його буде цілком достатньо.

Блок-схема мікроконтролера ATtiny861

Натисніть для збільшення
Натисніть для збільшення

При підключенні звукового генератора до підсилювача, слід пам'ятати, що необхідно в цьому випадку використовувати фільтр низьких частот (Low Pass Filter). Підключати вихід ШІМ безпосередньо до підсилювача можна, тому що можна вивести з ладу підсилювач і динамік.

Для живлення генератора потрібно джерело напруги 3.3 В

Принципова схема генератора з різними варіантами конфігурації виходу.

Натисніть для збільшення
Натисніть для збільшення

Як видно по схемі, є три різні варіанти конфігурації вихідного каскаду:

  • режим монофонічного виходу (файл для прошивки sdsg_mo.hex);
  • режим стереофонічного виходу (файл для прошивки sdsg_st.hex);
  • режим монофонічного виходу з високою роздільною здатністю (файл для прошивки sdsg_hr.hex);
  • режим монофонічного виходу з високою роздільною здатністю і підсилювачем (файл для прошивки sdsg_hr.hex).

Слід враховувати, що для кожного варіанта конфігурації виходу є і своє програмне забезпечення, яке необхідно запрограмувати в мікроконтролер (для режиму монофонічного виходу з високою роздільною здатністю і підсилювачем використовується той же ПО, що і для режиму з монофонічним виходом з високою роздільною здатністю).

Також, слід звернути увагу на установку Fuse-бітів при програмуванні мікроконтролера. Установки Fuse-бітів міститися в кожному .hex файлі (sdsg_mo.hex / sdsg_st.hex / sdsg_hr.hex, відповідають конфігурації виходу), однак не всі програматори підтримують такий формат файлів. Тому, в такій ситуації, користувачеві необхідно буде вручну встановити конфігурацію Fuse-бітів, а також необхідно видалити останні три рядки з .hex файлу. Про необхідної конфігурації Fuse-бітів зазначено в тексті вихідного коду в фалі main.c, скачати який можна за посиланням в кінці статті.

Світлодіод, за схемою підключений до порту PB2, є індикатором статусу при відтворенні звукового файлу і індикатором помилок:

  • два спалахи світлодіода свідчать про помилку файлової системи або апаратної помилку;
  • три спалахи світлодіода - звуковий файл не знайдений;
  • чотири спалахи - невірний формат звукового файлу.

В наступній частині : Прошивка мікроконтролера, формати звукових файлів, команди управління і режими роботи.