• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

TB-03F TLSR8253 - кто-нибудь пробовал "звуковые" возможности?

pvvx

Активный участник сообщества
STM32WB55CGU6/STM32WB55 UFQFN48 2 200,90 руб за кусок пластика с песком.
У наших продаванов он будет стоить более дцати тысяч руб или к 10 тысячам, если ждать от 60 недель партию. Это же бедный STM, у которого нет денег на производство чипов после Ковидла!
 

nikolz

Well-known member
STM32WB55CGU6/STM32WB55 UFQFN48 2 200,90 руб за кусок пластика с песком.
У наших продаванов он будет стоить более дцати тысяч руб или к 10 тысячам, если ждать от 60 недель партию. Это же бедный STM, у которого нет денег на производство чипов после Ковидла!
Вам бы лишь бы обосрать.
Я привел эту ссылку чтобы чел мог сравнить качество сигнала.
Цель - доказать что плохое качество у него - это не белый шум исходного сигнала и не ограничение BLE, а банальные ошибки либо в коде либо в схеме.
Так как Вы молчите про ошибки, то полагаю Вы тоже их не нашли.
Может начнете обсуждать проблему, а не писать на каждый столбик.
 

aloika

Active member
аналоговый фильтр я предлагал не на входе, а на выходе.
На выходе фильтр тоже сложно поставить, т.к. сигнал принимал и воспроизводил телефоном.
можете показать картинку с выводов микрофона.
Уже другим тут занялся... охладел я к этой идее. Это всё снова собирать, подключать.

У вас источник питания - батарейка?
С батарейкой тоже пробовал - разницы нет.

вот здесь можете ознакомится с фильтрацией шума после цифрового микрофона.
да, сложно...
 

nikolz

Well-known member
Из идей: надо бы попробовать несжатый звук передать (но хватит ли пропуской способности, не знаю) - проверить, не сжатие ли это влияет.
Еще есть I2S микрофон у меня, его попробовать подключить (пока не знаю, как именно, но вроде что-то такое в SDK есть).
У вас наиболее вероятно, по моему мнению, ошибка либо в коде либо в схеме.
Поэтому перебор всего и вся методом тыка ничего не даст.
-----------------------------
Если хотите решить проблему, то надо проводить тесты и искать источник, а не лепить код вслепую.
===================
Предлагаю Вам проверить качество сигнала с цифрового микрофона и его сравнение с картинкой сигнала на выходе.
-------------------
Надо сделать вот такой тест.
1) в любой доступной Вам точке получения преобразованного сигнала надо получить данные либо в виде файла либо в виде графика.
2) На входе подключаете цифровой микрофон, Сам микрофон помещаете в пенопластовый кубик, а кубик накрываете стеклянным стаканом.
Таким образом создаем тишину.
Сигнал с выводов микрофона Data и clk записываете в логический анализатор, если нет анализатора то хотя бы на картину осциллографа.
--------------------
Если не сможете сами проанализировать адекватность данных , то выложите или пришлите мне.
 

nikolz

Well-known member
На выходе фильтр тоже сложно поставить, т.к. сигнал принимал и воспроизводил телефоном.
Уже другим тут занялся... охладел я к этой идее. Это всё снова собирать, подключать.
да, сложно...
Ну, если главное не решить , а поучаствовать, то тогда конечно.
 

pvvx

Активный участник сообщества
Вам бы лишь бы обосрать.
Я привел эту ссылку чтобы чел мог сравнить качество сигнала.
Цель - доказать что плохое качество у него - это не белый шум исходного сигнала и не ограничение BLE, а банальные ошибки либо в коде либо в схеме.
Чтобы сравнить "качество" с вашей ссылкой требуется купить модули с STM32WB55, получить с них "запись" с имеющегося микрофона и только тогда уже можно что-то сравнить.
Более простой метод проверки всего, включая и микрофон представлен ранее - на STM32F4Discovery или типа.
Так как Вы молчите про ошибки, то полагаю Вы тоже их не нашли.
ADC был проверен ранее - качество для звука вполне удовлетворительное, а цифровой микрофон я не проверял и пока не вижу смысла.
Ваш кодек по ссылке, как и описано было ранее, содержит алгоритм компандирования, что при низкой частоте итогового потока вносит большой шум.
 

pvvx

Активный участник сообщества
Подавал нулевые данные, также пробовал пилу и треугольник (как синусоиду запрограммировать, с ходу не сообразил). Никаких шумов, всё идеально передается.
Включил кое как к модулю, проводах и соплях, но там лезут программные баги и тестировать с правильной разводкой и чистым питанием нет смысла.
К примеру стыки каждого блока (пустил на sps = 32кГц):
1644080440907.png
На 50 Гц:
1644080730540.png
Модулированный пилой синус 1кГц:
1644080631182.png
И в виде wav:
https://disk.yandex.ru/d/8k9bn7Zsh_l-Sg
Всё бьет и прыгает - просто 1 кГц типа...
1644081237759.png

aloika -сначала надо всё поправить, убрать джиттеры и совместить блоки, а потом уже испытывать...
А постоянный шум от неправильного вывода в Sound в том примере в JavaScript...
 

pvvx

Активный участник сообщества
@aloika - В примере от Telink используется диф.вход - два пина. Я подавал сигнал на один вход с амплитудой до 700 мВ p-p и постоянным смещением 350 мВ. Такая у него серединка. От одного входа не полная амплитуда, на втором входе висел китай-железо-контакты-провод и принимал помехи. Но это сейчас не важно.
При включении в битах регистров цифровых усилителей-фильтров автоматического поддержания усиления амплитуда идет в полную шкалу с этого "кодека".
Если всё сделать правильно - для передачи голоса потянет.
 

pvvx

Активный участник сообщества
Вот в таком виде, прямо на коробке :) :
1644082527879.png
Пока нет ни места ни времени сделать правильный тест.
 

aloika

Active member
А постоянный шум от неправильного вывода в Sound в том примере в JavaScript...
Это-то понятно, js я подправил (если будете смотреть, надо uid характеристики поправить, я у себя сделал отдельную для звука). test - для сжатого звука, testUnc - для несжатого.
Там еще в imaadpcm была вроде как ошибочка, при энкодинге лишняя точка вставлялась (может, это она у вас и видна на стыке), я тоже подправил.

Если всё сделать правильно - для передачи голоса потянет.
Ну так оно и тянет вполне себе, просто не идеально.
 

Вложения

  • 47.8 KB Просмотры: 1

aloika

Active member
вот это - тишина

1644092834757.png1644093121834.png

вот это - "раз, два, три" в микрофон
1644092894741.png

Это я поднес к микрофону пищалку 800 Гц

1644093055044.png

Пищалка-гуделка 300 Гц

1644093260471.png
 

aloika

Active member
А вот - программно заданная пила:

C:
//тест: пила:
                            for (int i=0; i<(TL_MIC_BUFFER_SIZE>>1); i++) {
                                            buffer_mic[i]=i;
                                        };
1644093493074.png

Тут видны искажения adpcm из-за разрыва функции.

А вот - мелкий треугольник:

C:
//тест: треугольный сигнал:
                for (int i=0; i<(TL_MIC_BUFFER_SIZE>>1); i++) {
                                buffer_mic[i]=abs(abs(abs(abs(i-(TL_MIC_BUFFER_SIZE>>2))-(TL_MIC_BUFFER_SIZE>>3))-(TL_MIC_BUFFER_SIZE>>4))-(TL_MIC_BUFFER_SIZE>>5))-(TL_MIC_BUFFER_SIZE>>6);
                            };

1644093669069.png

Как синусоиду сделать программно - не знаю, только таблицей задать в голову приходит.
 

pvvx

Активный участник сообщества
вот это - тишина
Это так PDM микрофон шумит?
вот это - "раз, два, три" в микрофон
Это я поднес к микрофону пищалку 800 Гц
Пищалка-гуделка 300 Гц
Малая амплитуда - усиления не хватает. В примере входная амплитуда для каждого диф. аналогового входа 700 мВ p-p. Пробуйте крутить усиление в PGA или включите автомат (но он вроде умножает значения только в цифровом буфере).
Там было что-то типа: Регистры счетчика через сколько включать добавку/убавку и регистр значения шага добавки/убавки.
 

pvvx

Активный участник сообщества
TLRS8266 на максимальном усилении двух каскадов PGA имеет по аналоговому входу 20 мВ p-p (полный выход 14 бит), при постоянном смещении 650..660 мВ.
На TLRS825x не измерял, но они должны быть похожи.
 

pvvx

Активный участник сообщества
Поднял Vref у ADC до 1.2В, прибавил на входе (PGA) усиление (чтобы было то-же самое по входу) и вышло это:
1644104246122.png
В виде WAV:
 

nikolz

Well-known member
вот это - тишина

Посмотреть вложение 11828Посмотреть вложение 11831

вот это - "раз, два, три" в микрофон
Посмотреть вложение 11829

Это я поднес к микрофону пищалку 800 Гц

Посмотреть вложение 11830

Пищалка-гуделка 300 Гц

Посмотреть вложение 11832
судя по картинкам у Вас качество звука соответствует всего 5 битам вместо 14 , т е сигнал шум как минимум в 100 раз больше, чем разрешение TLSR.
Очевидно, что должно быть существенно лучше.
----------------------
Возможны две причины
1) качество микрофона либо источника питания (в документации указано, что надо ставить два кондера по питанию)
2) ошибка при вводе данных с микрофона
------------------------
Обе причины проверяются указанным выше тестом.
Для этого надо в режиме тишина записать логическим анализатором импульсы с микрофона. По их изменению можно оценить реальный шум с микрофона. Если его величина будет много меньше, чем на вашем графике, то проблема в ошибках ввода данных с микрофона.
 

nikolz

Well-known member
для указанного выше микрофона имеем:
MP34DT01-M имеет точку акустической перегрузки 120 дБ SPL с отношением сигнал/шум 61 дБ и чувствительностью -26 дБФС.
Т е не менее 10 бит.
----------------------------
Что-то явно не так в консерватории.
 

aloika

Active member
Это так PDM микрофон шумит?
Заклеил дырку в микрофоне скотчем, тишина стала потише - но не особо.
1644130712216.png

Подскажите, что это за программа?

Малая амплитуда - усиления не хватает.
Я вроде бы пробовал, тишина становится громче и сигнал тоже.

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

pvvx

Активный участник сообщества
для указанного выше микрофона имеем:
MP34DT01-M имеет точку акустической перегрузки 120 дБ SPL с отношением сигнал/шум 61 дБ и чувствительностью -26 дБФС.
SPM0423HD4H SNR 56 дБ, 1% гармоник
Т е не менее 10 бит.
На графике
Заклеил дырку в микрофоне скотчем, тишина стала потише - но не особо.
Посмотреть вложение 11837
средний размах шума 20 единиц из 65536
 
Сверху Снизу