Вывод звука на STM32 + библиотека

Озадачился выводом звука (мелодий) на stm32 для одной поделки. Стал изучать материалы…
Задача: с минимальными ресурсами по CPU и памяти (а так-же с минимальным объема работ по подключению в коде) — выводить звук.
Итоги изысканий и результат:

Детали под катом…
UPDATE: Суть решения не выводе как таковом, а в формировании первоначального сигнала в коде. Я у себя использовал усилитель D-класса на рассыпухе. Но это не обязательно. Вывод можно делать и через DAC. Можно приделать любой усилитель. Можно использовать внешний DAC. Суть решения в пункте 2 и 3: генерация данных с минимум нагрузки на МК.
З.Ы. А вы обсуждаете первый пункт, который я применил в конкретном месте в конктерных условия, потому что мне так было проще…
З.З.Ы. Удалил часть про PWM, как не главную :)



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

Нанесение паяльной маски и шелкографии

Делюсь опытом.
Маска IMAGECURE XV501-T4, глянец, цвет зеленый и белый. 75-я ракельная резина, сетка трафаретная 49/80. Для рамки использовался деревянный профиль с ближайшего рынка, для основы — ДВП.

Просверлил основу и вкрутил в нее болты которые служат упорами для рамки с сеткой. Это позволило удобно «размазывать» маску ракелем двумя руками (как делают шелкографы). Раньше приходилось держать рамку.

На основе креплю пластиковые упоры для платы равные по толщине плате (можно использовать куски текстолита).

Расстояние от сетки до платы 2-3мм, т.е. сетка не касается платы, а при проходе ракелем она сама отстает от нее. Теперь не приходится приподнимать сетку после прохода.

Основной компонент смешивается с отвердителем в соотношении 2:1. На плату в 1 квадратный дециметр расходуется 2 — 2,5 гр. маски. Сушка маски в духовке 75ºС — 15 минут (использую термопару мультиметра). Засветка матрицей 2 мин. 20 сек. с расстояния 10 см. Проявка кальцинированной содой (раствор остается после проявки фоторезиста). Окончательная сушка 150 градусов — 1 час.

Мультимастер на USI

AVR
Это логическое продолжение предыдущей статьи «USI в двухпроводном режиме».
В этой статье пойдет рассказ о построении системы связи нескольких микроконтроллеров в составе одного устройства, на основе аппаратного модуля USI. Описаны «грабли» и «подводные камни» USI, а так же пути их обхода, на основе реального кода.
Все это реализовано и отлажено на двух микроконтроллерах ATtiny44A, один из которых работал на 8МГц, а другой на 1МГц. Размер кода 408 байт (204 слова).

Читать дальше
  • +2
  • 21 марта 2016, 12:30
  • iva

USI в двухпроводном режиме

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

Присмотревшись к коммуникационным возможностям, аппаратно реализованных в AVR, перепробовав их на зуб, остановился на USI. Вроде бы странный выбор, повсеместно его стараются обойти, ссылаясь на странности поведения, на сложности использования и прочие страшилки…
Согласен, есть такое дело, сам «нашишковал» достаточно, пока догадался разобраться со странностями непосредственно «в железе», благо цифровой осциллограф есть в наличии.

Как выяснилось, причиной «чуднОго поведения USI» является недостаточно полное описание его в документации. Нет, явных ошибок я там не нашел, просто читаю одно, понимаю другое, пишу код… и получаю: «ничего не работает» и «фигня полная».



Читать дальше
  • +5
  • 18 января 2016, 20:09
  • iva

FE1.1, FE2.1 или что нам стоит USB HUB построить

Лирическое отступление

Однажды возникла у меня на работе задача встроить USB HUB в уже имеющееся устройство. Первая мысль была — заказать некоторое кол-во готовых хабов у наших китайских друзей, и лишив их корпуса, впихнуть в корпус собственно конечного устройства. Но этот вариант был отметён по причине абсолютного отсутствия места, да и как то всё таки кривое решение. Тогда было решено встроить USB HUB в уже имеющеюся печатную плату. Благо места на плате для этих действий было достаточно.
Порыскав на предмет того, на основе какой микрухи можно построить USB 2.0 High Speed USB HUB, наткнулся на очень вкусные по цене микрухи FE1.1 и FE2.1, отлчие у которых только в количестве портов хаба — 4 и 7 соответственно.


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

Асинхронное USB аудио на STM32

Для того, чтобы вывести звук из компьютера в микроконтроллер, у современного распространенного компьютера есть четыре подходящих интерфейса: Ethernet, Bluetooth, USB и S/PDIF. В МК, три из них требует использования внешнего железа (S/P DIF вход напрямую стал поддерживаться начиная с STM32F446), а Ethernet, кроме того — еще и специального драйвера на стороне компьютера. Поэтому выбор пал на USB.


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

Зарядное устройство для Li-ion на ТР4056

  Заказал на Ali лот из пяти модулей зарядных устройств на чипе TP4056 для Li-ion аккумуляторов (цена лота 68,70 руб, за модуль 13,74 руб, сентябрь 2015). Пришли на одной печатной плате, разделенные скрайбированием (надрезанием). На печатке логотип kvsun — китайский производитель широкого спектра зарядок Li-ion аккумуляторов различных типоразмеров и применений.



Статья в основном является компиляцией разрозненных данных интернета, с целью собрать все в одном месте.


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

VinxFS - Самая маленькая файловая система FAT32 для AVR

Скачать одним файлом тут: github.com/vinxru/VinxFs/archive/master.zip
Смотреть на GITHUB: github.com/vinxru/VinxFs

Неоднократно читал на форумах, что люди ищут небольшую программу, которая бы позволяла работать с файловой системой FAT16/32. И многие выбирают Petit FatFS, потому что она работает даже на ATTiny. Но понимают через некоторе время, что она не умеет увеличивать размер существующих файлов. Приходится заранее создавать большие пустые файлы. А об удалении, создании, перемещении файлов или папок можно даже не думать.

Я предлагаю (безвозмездно) переработанную версию этой библиотеки. Это самая маленькая файловая система FAT16/FAT32 написанная на Си, умеющая создавать, изменять размер и удалять файлы. А так же переименовывать и переносить файлы и папки.


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

Очень короткое знакомство с WiFi модулем ESP8266 ESP-03

WiFi модуль ESP8266 ESP-03Знакомство действительно вышло очень коротким — буквально через несколько часов после его начала я по ошибке подал 5 Вольт на землю модуля, отчего он немедленно и бесповоротно сдох.


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