Pull to refresh
42
0
Send message

Хороший вопрос. Возможность приема на "занайквистовых" частотах я постараюсь описать в следующей статье :)

Как было правильно сказано про меня в одном из комментариев "инженер старой школы, который получил в руки все современные технологии :)". То есть я изучал цифровую обработку еще в советское время. Но как-то мне попалась в руки одна интересная книга, которую могу порекомендовать новичкам: Юкио Сато "Без паники! Цифровая обработка сигналов". Книга была переведена на русский язык в 2010 году.

ART акселератор контроллера STM32G содержит очередь предварительной выборки инструкций и кеш ветвлений. Код DSP обработчика ( функция DMA1_CH4_IRQHandler из файла dsp.s) достаточно компактна - код основного цикла обработки занимает 62 байта и скорее всего полностью помещается в кэш.

В главе 2 (базовый проект) аналитически подсчитывается, что количество тактов ядра, затрачиваемых на выполнение цикла while( i ) i--; равно 11 (без тактов ожидания). В главе 3 (подключение внешнего кварцевого резонатора) проводится измерение с помощью осциллографа времени одной итерации цикла на частоте ядра 170 MHz. Оно равно 64,7 нс, или или 64,7/11 = 5,88 нс на такт, что соответствует 170 MHz тактовой частоты. То есть ART акселератор для коротких блоков кода довольно эффективно работает.

Добрый день.

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

  • «RM0440, Reference manual STM32G4 Series advanced Arm ® -based 32-bit MCUs» - подробное описание функциональных блоков контроллеров серии STM32G4.

  •  «DS12589 Rev 2 - Datasheet STM32G431x6, STM32G431x8, STM32G431xB» - описание контроллеров линейки STM32G431x6, STM32G431x8, STM32G431xB.

  • «PM0214 Rev 10 - STM32 Cortex ® -M4 MCUs and MPUs programming manual» - руководство программиста.

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

    Названия документов указаны точно, через googl вы сразу выйдите на ссылки.

Спасибо.

stm32G выбран из соображения цены и качества.  NUCLEO-G431KB самая доступная плата, а статья прежде всего адресована старшеклассникам и "младшекурсникам". Да и хотелось сделать именно "простой" приемник прямого усиления (хотя , на мой взгляд, это DDR).

stm32h750 - лежит у меня на столе. Очень хочется попробовать.

Пытался использовать ОУ на борту в качестве УВЧ. Имеется два недостатка: 1) частота единичного усиления 15 MHz, то есть на 2 MHz усиление не более 7 (7*7 = 49, а нужно 100); 2) очень сильно шумят.

1) В приемнике на выходе перестраиваемого фильтра стоит ФНЧ для сглаживания "буераков". На рисунке 11 - демонстрация "ужасов" промежуточных результатов цифровой обработки.

2) Хорошая идея - перенести критический код в RAM. Попробую.

Спасибо. Именно так и собирался сделать для квадратурного детектора. Таймер уже опробовал в работе.

Пробовал, получается не очень хорошо. Использование 16 бит не обеспечивает достаточный динамический диапазон для качественной работы фильтра. Использование float32 существенно улучшает работу без заметного уменьшения производительности. Когда познакомился с системой команд сопроцессора с плавающей точкой, очень удивился, насколько нерационально написана стандартная библиотека С работы с float (смотрел дизассемблерный код).

Многие команды сопроцессора, такие как сложение, вычитание, умножение и т.д. выполняются за один такт. А DSP команда VMLA.F32 (Floating-point Multiply
and Add Sd <- Sd + Sn × Sm) выполняется за три такта. То есть на ассемблере работа с int и float не сильно отличается по времени.

1) Генерация синуса в тексте статьи приводилась для описания модели элементарного осциллятора и демонстрации работы ЦАП. В макете приемника осциллятор не использовался. Для реализации гетеродинной схемы попробую использовать CORDIC сопроцессор.

2) Аппаратный ускоритель FMAC работает с 16-ти разрядными целыми числами. В реализации приемника используется 32-х битный float, а это уже совершенно другой уровень качества обработки сигнала.

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

Спасибо. Задача была сделать учебный приемник "прямого усиления". Схема с  гетеродинированием в плане для следующей статьи.

Изначально статья задумывалась как учебный материал для новичков. В дальнейшем обязательно доработаю конструкцию и опубликую результаты. Кое-какие наработки уже имеются.

Information

Rating
Does not participate
Registered
Activity