Блог им. Catethysis - Страница 2 из 13 - Блог по электронике, STM32, и встроенной разработки.
bfabcdec i

BitBanding в ARM Cortex — доступ к отдельным битам регистров

В ядрах ARM Cortex есть удобный способ для доступа к отдельным битам регистров. Каждый бит получает свой виртуальный регистр, в который можно записать 0 или 1. Номера регистров битбэндинга формируются так: 0x42000000 + (регистр – 0x40000000) * 0x20 + номер_бита * 4. Использование битбэндинга Рассмотрим пример. Вам нужно выполнить операцию GPIOC->CRH |= GPIO_CRH_MODE9_0; Эта операция …

BitBanding в ARM Cortex — доступ к отдельным битам регистров Читать далее »

image stmcrc

STM32 → CRC (подсчёт контрольной суммы)

Во всех микроконтроллерах STM32 есть модуль CRC, с помощью которого можно вычислить контрольную сумму любого набора данных. Внутри модуля реализован аппаратный калькулятор контрольной суммы по алгоритму CRC-32, который применяется в том числе в Ethernet, MPEG-2, PNG и POSIX. Любой CRC-калькулятор устроен как сдвиговый регистр из N штук триггеров, охваченный несколькими цепями обратной связи, и его …

STM32 → CRC (подсчёт контрольной суммы) Читать далее »

image Anboxing

Анбоксинг и обзор STM32F746G-Discovery — новой отладочной платы от ST

Итак, у меня есть самая топовая плата STM32F746G-Discovery с процессором новой серии F7, и это — первый в России обзор этой платы. Её пока нет ни у кого больше. Плата приехала в обычном пластмассовом кейсе, как и все другие платы Дискавери. Сбоку есть краткий перечень её фич: Процессор STM32F746NGH6 — TFBGA-216, 216 мегагерц и 462 DMIPS. Самый …

Анбоксинг и обзор STM32F746G-Discovery — новой отладочной платы от ST Читать далее »

image STMElectronics

Блог наладил контакты с ST Microelectronics

28 июля я побывал в московском офисе ST Microelectronics. В первую очередь, конечно, меня интересовали микроконтроллеры STM32, но ещё мы затронули тему MEMS, силовых транзисторов и радиомодулей.

image Consolnyi programmator

Консольный программатор ST-Link_Utility-CLI

В комплекте поставки программатора ST-Link есть не только графическая утилита ST-Link Utility, но и консольная программа ST-LINK_CLI.exe. Она даёт возможность автоматизировать процесс прошивки МК, что крайне полезно если плат много (десятки или сотни). Я написал простейший скрипт. Он принимает путь к файлу прошивки (в параметрах командной строки) и прошивает его в микроконтроллер STM32. После этого …

Консольный программатор ST-Link_Utility-CLI Читать далее »

image RFID reader

RFID-ридер с экранчиком на STM32

Мы уже умеем использовать знакосинтезирующий ЖК-экран WH1602 и RFID-ридер SL-030. Настало время соединить их вместе, и сделать простую и полезную штуку — ридер RFID-карт с экранчиком. У ридера есть специальный выход OUT, на котором появляется ноль всякий раз, когда он обнаруживает карту. Сразу после этого можно послать ему запрос на чтение номера — сделаем это …

RFID-ридер с экранчиком на STM32 Читать далее »

stringintellisense

Функции форматированного ввода/вывода: printf и scanf

Очень многие не знают о существовании в языке C стандартных функций форматированного ввода, и особенно вывода данных. Простейший вывод числа в строчку порой превращается в по-настоящему адовые функции с кромсанием числа на разряды (обычно неэффективно реализованным), выделением памяти под строку и прочими ночными кошмарами. Но всё это реализовано уже очень давно. Страшно сказать, но функция …

Функции форматированного ввода/вывода: printf и scanf Читать далее »

image sjat sjimatel

Сжать сжиматель: codec2 + miniz

Кодек codec2, про который я писал недавно, обладает одной приятной особенностью: он прекрасно сжимается архиватором! Это может показаться странным, но похоже что код на его выходе имеет высокую степень похожести, которая даёт архиватору простор для выделения повторяющихся элементов. Я обнаружил это, когда просто из любопытства попытался сжать полученный в прошлой статье *.c2-файл стандартным линуксовым gzip: voice.c2 …

Сжать сжиматель: codec2 + miniz Читать далее »

Сжатие голоса

Сжатие голоса — гласные звуки

Чем меньше битрейт потока данных, тем дальше можно его передать. Если получится сжать голос до 1-2 кБ/с, можно будет общаться на расстоянии до 25км (с использованием трансивера CC1125). Давайте попробуем разработать голосовой кодек самостоятельно, без использования готовых решений вроде codec2. Как устроен голос? В нём можно выделить несколько элементов: гласные звуки согласные — шумовые — …

Сжатие голоса — гласные звуки Читать далее »

video

Использование codec2 для сжатия звука

Кодек codec2, про который я писал в одном из прошлых постов, предоставляет удобное API для потокового сжатия звука. Я написал простую тестовую программу для демонстрации его использования в реальной жизни. Codec2 использует разные параметры дискретизации для достижения разной степени сжатия — в частности, длину чанка (количество семплов на фрейм) и длину сжатого фрейма. Поэтому сначала …

Использование codec2 для сжатия звука Читать далее »

image STM и экран WH

STM32 и ЖК-экран WH1602

Самый распространённый и наглядный способ вывода информации из микроконтроллера — это ЖК-экран, самый популярный это WH1602 и подобные экраны компании Winstar. Все они построены на одном контроллере HD44780, и отличаются лишь количеством строк и символов в строке, а также типом подсветки.

hpBnyPzrK d MEHrJnVcFBfbPfOXlnftWFT

Бот для telegram на node.js

В мессенджере Telegram появилась возможность создать бота — с его помощью вы можете отвечать на сообщения в телеграме, рассылать уведомления, добавлять к сообщениям картинки и так далее. Пользователи node.js уже подготовили npm-пакет, с которым всё становится ещё проще. Сначала создаём бота. Стучимся к @botfather, говорим ему /newbot, пишем имя бота и его юзернейм (он должен …

Бот для telegram на node.js Читать далее »

hpBnyPzrK d MEHrJnVcFBfbPfOXlnftWFT

Фотография с вебкамеры MacBook в Node.js

Существует модуль imagesnap.js, который включает вебкамеру MacBook, делает с неё фотографию и сохраняет её в файл. Он является враппером над imagesnap, и конечно работает только в OSX. Использование очень простое: var imagesnapjs = require(‘imagesnapjs’), fs = require(‘fs’); var filename = ‘/Users/catethysis/webcam/webcam.jpg’; fs.exists(filename, function (exists) { if(exists) fs.unlinkSync(filename); imagesnapjs.capture(filename, { cliflags: ‘-w 2’}, function(err) { console.log(err ? err …

Фотография с вебкамеры MacBook в Node.js Читать далее »

stm i razrabotka elektroniki pod osx scaled

STM32 и разработка электроники под OSX

Это самая короткая из моих статей. Просто. Установите. Parallels Desktop (думаю, найдёте его) с Win7. И не мучайтесь. Всё равно в маке Альтиума нет и не будет, а так ещё и IAR можно поставить. И всё просто работает (с).

ubuntu  version

Связь по SPI между двумя микроконтроллерами

Это простейший пример передачи данных между двумя модулями SPI в STM32F4. Я использую плату STM32F4Discovery, на ней запущены модули SPI1 и SPI2 в обычном режиме: полнодуплексная связь, длина пакета данных — 8 бит, отрицательная полярность (CPOL = 0), синхронизация по первому тактовому импульсу (CPHA = 0). Для начала сделаем всё самым простым способом — без использования …

Связь по SPI между двумя микроконтроллерами Читать далее »

Пролистать наверх