Пять способов генерации случайного сигнала на stm32

Микроконтроллеры stm32 могут генерировать псевдослучайные и случайные сигналы различными методами, избавляя от необходимости в дополнительных компонентах для задач, вроде построения АЧХ или генерации шума для аудио. Встроенный цифро-аналоговый преобразователь (ЦАП) способен выдавать псевдослучайный сигнал, используя 12-битный РСЛОС, однако, из-за короткого периода последовательности, такой сигнал имеет тональные составляющие. Модуль CRC, при подаче в него нулей и подходящем полиноме, может работать как 32-битный РСЛОС, генерируя псевдослучайную последовательность большой длины, что дает равномерный спектр, близкий к белому шуму. Этот метод требует использования DMA и ограничивает использование выводов порта GPIO.
Пять способов генерации случайного сигнала на stm32
Изображение носит иллюстративный характер

АЦП, настроенный на быстрые измерения и работу с DMA, также позволяет генерировать шум, используя «дрожание» младшего бита измерений, хотя этот метод может зависеть от конкретной модели микроконтроллера и также ограничивает использование порта GPIO. Альтернативно, можно программно реализовать РСЛОС в прерывании таймера, переключая выходной вывод в зависимости от значения регистра, однако, это требует процессорных ресурсов и может создавать неравномерности в спектре при низкой частоте прерываний.

Для более требовательных задач подойдет настоящий генератор случайных чисел (RNG), доступный в старших моделях stm32. Он выдает действительно случайные числа, которые можно вывести на порт GPIO через DMA. Хотя все эти аппаратные методы, кроме программного РСЛОС, требуют использования DMA и ограничивают функциональность порта GPIO, они могут упростить конструкцию устройств, где необходима генерация случайного шума.


Новое на сайте

19741Что скрывается подо льдами Антарктиды и почему страны могут начать за это бороться? 19740ДНК моркови и красного коралла на туринской плащанице 19739Что нового нашёл телескоп NASA в остатках сверхновой, которую китайские астрономы... 19738Куда исчезла минойская цивилизация 1973736 вредоносных npm-пакетов под видом плагинов Strapi: охота на криптовалютную платформу 19736Fortinet экстренно латает критическую дыру в FortiClient EMS, которую уже вовсю... 19735Что за существо, похожее на червя из «дюны», обнаружили в Китае задолго до кембрийского... 19734Может ли старый препарат для трансплантации отсрочить диабет 1 типа? 19733Викторина для любителей осьминогов: что вы знаете о головоногих? 19732Почти сто пусков за плечами, но Artemis II оказался чем-то совершенно другим 19731Как китайский смог оказался связан с арктическими штормами, а мыши избавились от диабета? 19730Почему аллергия передаётся по наследству не так просто, как кажется? 19729Веб-шеллы на PHP, управляемые через куки: как злоумышленники закрепляются на серверах... 19728Как учёным впервые удалось составить полную карту нервов клитора? 19727Homo habilis: самый древний «человек», который, возможно, им не является
Ссылка