Обновить
64K+
192

Embedded SW/Firmware Engineer

55,2
Рейтинг
494
Подписчики
Отправить сообщение

Там был MCU nrf5340.
От своего PLL он не мог дать на I2S ровно 48kHz.
Поэтому пришлось работать с наиболее приближенной частотой к 48kHz. Это было значение 53.591 kHz

а то они сразу в академики пойдут.

Да. Автор теоремы Котельникова - Владимир Александрович как раз был академиком.

Если читать из таблицы то ДМА будет очень в тему в этом случае, кстати!

Да. Я так и делал, когда тестировал аудиокодеки.
Обзор Aппаратного Aудио кодека MAX9860 (2x ADC+DAC)
https://habr.com/ru/articles/758140/

"
Как отладить I2S сейчас? Можно воспроизвести статический синус. Именно статический чтобы исключить ошибки в динамическом выделении памяти. Если выбрать частоту, например, 1kHz, то получится, что надо рассчитать всего 48 PCM отсчетов, чтобы синтезировать гармонический сигнал. В прошивке достаточно зарезервировать 48*2*2=192 байт.

Прямо в прошивке расчитать 1 период для синуса 1kHz, амплитудой 3333 PCM, частоты дискретизации 48kHz и проигрывать его в цикле по DMA.

Look Up Table предварительно рассчитанного синуса для FS: 48kHz
Look Up Table предварительно рассчитанного синуса для FS: 48kHz

На шине I2S должен появится такой цифровой сигнал. На проводе BCLK 1.724 MHz, LRCLK 53.591 kHz, OUTN 1.118 kHz
....
"

Да. Можно добавить второй DMA канал на отправку в DAC прямо из того же массива куда пишет DMA от ADC.

DDS-ом один раз сгенерировать массив предварительно рассчитанного 1го периода синуса в RAM память. (Чем меньше частота синуса, тем длиннее массив).

И уже третьим каналом DMA из предварительно рассчитанного одного периода синтезированного синуса в RAM памяти отправлять семплы в DAC.

Тогда для CPU вообще не остается никакой работы.

Вторая fifo (для dac) нужна только для отладки факта корректной записи adc модулем. Из приложения я ее конечно же исключу.

TxFifo выступает в роли строительных лесов.

Интересно, зачем нужно измерять в произвольные моменты?

Частота дискретизации.
https://ru.wikipedia.org/wiki/Частота_дискретизации

А еще как он сделает на Марсе искусственную гравитацию?

Почему в ARM Cortex-M4 микропроцессорах 24битный SysTick таймер сделали DownCounting? Это же контр интуитивно. Какой выигрыш от аппаратного таймера, который уменьшается, а не возрастает? Вот DWT таймер сделали UpCounting.

Как на STM32 понять от какого порта поступило внешнее прерывание по номеру EXTI1_IRQHandler? От PA1 PB1 PC1 PD1 PE1 PF1 PG1?

Я тоже пробовал сделать RC-ровер.

Электрическая УАЗ Буханка на Телеуправлении
https://habr.com/ru/articles/957754/

Я делал аппаратно. Выходы двух каналов TIM подаем на входы микросхемы "2 исключающее или-не". На выходе будет 1 только когда на выходах каналах 0 и 1. Регулируя скважность обоих каналов можно получить импульс нужной длительности в любом месте периода PWM. Но нужна дополнительная микросхема...

Гениально! В самом деле это красивое и простое решение. Спасибо.
"исключающее или-не" это же то же что сложение по модулю два. Так?

Формат DBC. Это прошло мимо меня :-) 

Вы не один. Это прошло мимо свей России. При этом весь мир уже этим пользуется.

Раньше BLE занимался

Я тоже.
Разбор примера BLE Audio от Nordic Semiconductor (или переходник I2S->BLE-Audio)
https://habr.com/ru/articles/705506/

BLE стек - самая Vendor lock технология во всем embedded. Мегатонны кода от вендоров, который непонятно как отлаживать.

Зачем конкретно подводной лодке из 196х нужна была ЭВМ?

Боевая Информационно-Управляющая Система. Единая вычислительная система корабля, надводного или подводного, комплексно решающая широкий круг задач управления боевой деятельностью корабля и всех видов его оружия

Я ещё понимаю ,что в артиллерии баллистические вычислители применяются, чтобы понять на какой угол над горизонтом ствол поднять, чтобы попасть на желаемое расстояние , но под водой что считать - не ясно.

На Хабре по embedded в принципе не то чтобы много статей, и заинтересованных читателей соответственно, да и тот круг сужается,

А на каком тогда сайте больше статей про embedded ? И где больше заинтересованных читателей?

Для арфы вообще модуляция не нужна. Просто монотонным лазером cветить в фоторезистор присоединенный через делитель напряжения на ADC. Срабатывать по компаратору.

Если частота модуляции равна 10 МГц, то измеряемое расстояние может доходить до 15 метров, и при изменении расстояния от 0 до 15 метров разность фаз будет меняться от 0 до 360 градусов.

До какой предельной частоты можно повышать модуляцию в отправляемом лазерном луче?

Зачем в авионике используют интерфейс ARINC если есть CAN?

Существуют ли ASIC микросхемы, которые делают квадратурный смеситель полностью аппаратно (Analog Front End )?

Чтобы внутри Tuner-а был управляемый гетеродин NCO фазу (0…360 градусов) и частоту (0 до 10MHz) которого можно менять по SPI в широком диапазоне. Или вовсе задавать несущую частоту извне подавая на пин.

Чтобы на входе был один аналоговый пин для подключения микрофона (или фотодиода), а на выходе аналоговые значения I и Q. Чтобы работать не только с радио сигналом , а так же с сигналом от фото датчиков и микрофонов.

Что-н типа RT2832, SI4703  , AD9684,AD6674 только подешевле и для акустических частот несущей.

Желательно чтобы там еще внутри был Costas-loop для снятия с несущей BPSK модулированных сигнал.

Есть ли возможность ещё написать принцип работы лазерного гироскопа?

Информация

В рейтинге
149-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Инженер встраиваемых систем, DevOps-инженер
Старший
Git
Bash
CI/CD
C
Встраиваемая система
Программирование микроконтроллеров
Разработка программного обеспечения
Алгоритмы и структуры данных
Системное программирование
Разработка драйверов