Учим железки разговаривать, или ESP32 DAC и немного таймера

В ходе разработки одного очень интересного устройства (эх, лишь бы силенок хватило) я решил, что будет неплохо, если устройство это будет говорящим. Как нельзя кстати здесь пригодилось наличие в целевом микроконтроллере, ESP32 компании Espressif Systems, двухканального 8-битного ЦАПа.

В этом туториале (если его можно так назвать) я покажу, как можно быстро и довольно просто организовать проигрывание аудиофайла силами микроконтроллера ESP32. Это копия статьи, опубликованной мной на Хабре — так вышло, что инвайт сюда я получил позже, чем опубликовал статью там. На оригинальность не претендую, Америку не открываю.


Читать дальше
  • +2
  • 15 ноября 2020, 12:49
  • x8973

STM32F4Discovery+LabWindowsCVI. Урок 1. Часть 0. Введение

Для тех, кому лень изучать С++ и С#...

Многие начинающие или даже имеющие за плечами большой опыт программирования программисты микроконтроллеров сталкиваются с проблемой написания более менее рабочего оконного приложения для управления микроконтроллером с ПК и отображения телеметрии. В большинстве случаев для этого нужно изучать языки программирования высокого уровня, такие как С++ и C#. Процесс изучения этих языков может привести программиста, который всю жизнь программировал только на С в ступор, потому что они очень сильно отличаются от обычного С, а изучение этих языков займет у него очень много времени.
Именно для таких людей компания NationalInstruments выпустила программу LabWindowsCVI, в которой весь код пишется на простом С и человек, который программировал только на С очень легко в ней разберется…

В этом топике хочу представить вам цикл уроков по программированию LabWindowsCVI с использованием отладочной платы STM32F4Discovery…

В процессе работы мы напишем простое приложение :

С помощью этого приложения мы сможем:
    -Управлять состоянием светодиодов;
    -Управлять яркостью синего светодиода;
    -Получать значения угловых ускорений со встроенного акселерометра;
    -Изменять значения на выходе ЦАП и изменять его с помощью АЦП.

Видео, демонстрирующее работу приложения представлено ниже:


Спасибо за внимание!

хорошая звуковая карта (192/24) за выходные

После тюнинга плеера остались разные микросхемы, остался трупик старого плеера (умер своей смертью после 3х лет работы).
Решил из того что есть собрать хорошую звуковую карту. fiio E10 на сходной элементной базе превосходит все бытовые карты (включая ASUS Xonar Essence ). Собственно его схему и берем за основу.



Читать дальше

Подключение SPI ЦАП к AVR

Сегодня ради освоения технологии подключил к ATMega16 в составе PinBoard2 через SPI-интерфейс 16-разрядный аудио-ЦАП BU9480F. Использовал аппаратный SPI и прерывание. Писал на С. Исходник выложу позже по причине его плохого оформления. Прикрепил архив проекта.
Пока несколько фото.


Читать дальше

Плата для аудио ЦАПа на DIR9001+PCM1796


Наконец то пришла мне плата для готовящегося ЦАПа.
Два слоя, металлизация, лужение, зеленая маска, односторонняя белая шелкография. Толщина фольги 18 мкм, платы — 1,5 мм.
Кратко о проекте: S/PDIF ЦАП, 24 бита, 96 кГц на связке DIR9001 + PCM1796. В выхлопе AD8065/66 + транзисторный буфер.
Детали все куплены. Скоро можно будет начать сборку.



Читать дальше

Тест точности ЦАП и АЦП на STM32F100

Задумал одну схемку, активно использующую АЦП и ЦАП. Планирую использовать преобразователи, имеющиеся в STM32. И вот задумался, насколько они там точные. В даташите, конечно, есть данные про точность, но понять по ним, насколько результат будет точным на практике, не так просто. Значит будем проверять на практике.


Читать дальше
  • +3
  • 07 октября 2011, 05:32
  • ACE
  • 3

DAC в STM32, аппаратный генератор

По сути эта статья продолжение статьи DAC в STM32
ЦАП stm32 может аппаратно генерировать сигналы. Это может быть либо треугольный сигнал, либо шум.

Генерация возможно только при запуске преобразования ЦАП от события. При возникновении события данные суммируются с DHRx и переносятся в выходной регистр DORx, затем вычисляется следующее значение на протяжении 3 тактов. Можно выбирать амплитуду и смещение сигнала относительно 0. Смещение определяется значением в DHRx, амплитуда битами MAMPx в регистре DAC->CR.


Читать дальше

DAC в STM32

ЦАП (цифро-аналоговый преобразователь) нужен для преобразования числового кода в напряжение. Я опишу работу с ЦАП в stm32f100c4t6, там их целых 2 еще и 12-битных.

Они умеют:
  • Вывод напряжения от 0 до Vref+ (здесь это Vdda)
  • Генератор белого шума
  • Генератор треугольного сигнала
  • По DMA каналу на каждый ЦАП
  • Вывод данных по событию таймера или внешнего события
  • Возможность работы в 8-битном режиме
  • Возможность одновременной загрузки разных данных (через один регистр) в оба ЦАП


Читать дальше

DAC в STM32, интересные наблюдения

Сегодня пытался запустить ЦАП на stm32f100, мучался около часа, испытал много параметров, наконец он заработал и я провел несколько экспериментов с его инициализацией.


Читать дальше