STM32 Интерфейс I2C. Описание

Этот интерфейс двухпроводный (не считая земли). Он позволяет подключить к одной шине несколько устройств, каждое из которых имеет свой адрес. Ведущее устройство руководит процессом обмена. Любое устройство может захватить шину и стать ведущим.

Где может пригодиться шина I2C? Во-первых, существует ряд микросхем, которые управляются по этой шине. Из наиболее часто используемых в любительских устройствах это: датчики температуры, EEPROM-память. Во-вторых, можно объединить несколько контроллеров  или сделать некоторые автономные модули, каждый из которых выполняет определенную задачу, и объединить их в одну систему.

В этой статье не будет описания самого интерфейса. На просторах интернета достаточно много информации об этом (мне понравилось описание, приведенное здесь).

Какими же возможностями работы с интерфейсом I2C наделили свое детище разработчики  микроконтроллеров STM32 ?

Прочитать остальную часть записи »

STM32 Синтезатор речи “Элиза”. Продолжение

Проведя ряд испытаний понял, что 8-ми разрядный звук – это не самое лучшее решение. При маленькой громкости слышны искажения.

Экспериментально вычислил, что оптимальным будет использование файлов 16-разрядных с частотой дискретизации 22050 Гц. В итоге получится тот же поток данных, что и при 8-ми разрядах и частоте 44100.

Изменения в проигрыватель WAV файлов внёс. Вместо 16-ти разрядов он реально использует 12, но это значительно лучше, чем 8. С частотой 22050 Гц он достойно справляется, а вот 44100 уже не берет.

Если кого заинтересуют исходники, то приведу в порядок и выложу их.

Помимо изменений в программе сделал устройство в “железе”. До этого использовал отладочную плату.

Схема устройства следующая:

Прочитать остальную часть записи »

STM32 Синтезатор речи “Элиза”

Это не совсем синтезатор, т.к. он для воспроизведения речи использует библиотеку слов, которые записаны на карту памяти, но для удобства буду использовать именно это слово.

Почему “Элиза”? Во-первых, потому что произносит слова женским голосом. Во-вторых, Элиза – это первое, что пришло в голову.

Итак, что же умеет делать Элиза.

Её словарный запас определяется библиотекой, которая располагается на карте памяти. Чем больше библиотека, тем больше словарный запас. На данный момент библиотека содержит более четырехсот слов, что на порядок превышает словарный запас Эллочки-Людоедки из произведения Ильфа и Петрова.

Эти четыреста слов занимают примерно 10 мегабайт памяти. Я применил карту памяти на 2 гигабайта, поэтому словарь можно значительно расширить.

Прочитать остальную часть записи »

STM32 Генератор кода. Новая версия

Время показало, что старая версия программы “STM32Generator” является тупиковой, бесперспективной. Тому есть две причины. Во-первых, это среда разработки. Программа написана на Delphi. Это прекрасная среда разработки, но постоянно использовать ее для добавления новых элементов весьма утомительно. Во-вторых, изобилие микроконтроллеров и их периферии. По этой причине сложно сделать в одиночку программу, которая была бы полезна многим.

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

Для работы программы необходима так называемая библиотека компонентов, которая как раз содержит указанную выше информацию. Пополняя библиотеку компонентов, можно расширять возможности программы.

Прочитать остальную часть записи »

STM32 “Конструктор компонентов” для “Генератора кода”

“Генератора кода” позволяет создавать фрагменты программного кода, который используется при написании программ для микроконтроллеров. Возможности “Генератора” определяются компонентами, входящими в состав библиотеки компонентов. Для создания компонентов предназначен “Конструктор компонентов”, о котором и пойдет речь дальше.

Прочитать остальную часть записи »

STM32 Воспроизведение звука. Расширение возможностей программы

В предыдущей статье приводился пример того, как можно воспроизвести звук с помощью STM32. Пришло время расширить возможности этой программы, но прежде давайте определимся: для чего это нужно. Не проще ли купить недорогой китайский mp3-проигрыватель. Его возможности будут больше, да и цена…

Конечно, соревноваться китайпромом бесполезно. Если нужен проигрыватель, то лучше его купить. Но у нас задача другая. Во-первых, сможем ближе познакомиться с возможностями контроллера. Во-вторых, можно будет это устройство использовать там, где обычный проигрыватель сложно применить.

Например, недавно я сделал по заказу GSM-сигнализацию. Работает она исправно, но общается с пользователем через смс-ки, что не всегда удобно. Заказчик хочет, чтобы она могла “говорить”. Сработал датчик –> звонок пользователю –> голосовое сообщение “сработал такой-то датчик”.

Еще одно применение -  сделать небольшой модуль, состоящий из контроллера и карты памяти. Этот модуль можно подключать к устройству по USART, через который передавать команды для воспроизведения слов, фраз, предложений. Таким образом можно озвучить разные устройства.

Не будем забывать о проекте “Умный дом”. Для этого проекта воспроизведение звука желательно необходимо. Поэтому займемся усовершенствованием программы для ее дальнейшего практического применения. Назовем ее “Wave Player”, или сокращенно WP. Соответственно все функции, относящиеся к ней, будут иметь префикс wp.

Прочитать остальную часть записи »

STM32 Воспроизведение звука. Настройка периферии + первый звук

Итак, наша задача  -  воспроизведение WAV-файлов с помощью микроконтроллера STM32. В предыдущих статьях разобрались со структурой  WAV-файлов, с библиотекой FatFs, которая позволяет работать с файловой системой, поигрались с ЦАПом. Приведу ссылки на эти статьи:

  1. Работа с Fat   статья1статья2 ;
  2. Структура WAV-файлов;
  3. Работа с ЦАПом.

Теперь необходимо объединить все это в одно целое, чтобы получить звук на выходе ЦАПа. В начале не будем ставить заоблачные цели, а ограничимся следующими возможностями:

Прочитать остальную часть записи »

Страница 1 из 1112345...10...Последняя »