Сторінка 1 з 8

"Народний" Трансивер на базі ESP32-A1S

Додано: Суб вересня 17, 2022 8:57 am
Almaro1741
Доброго дня шановні. Пропоную розглянути питання проектування трансивера на базі ESP32-A1S. Нажаль особисто не маю достатньо знань в напрямку DSP. Можливо хто кине тапком в сторону доступної літератури.  Тема буде доповнюватися.

Re: "Народний" Трансивер на базі ESP32-A1S

Додано: Суб вересня 17, 2022 2:29 pm
UR5FFR
Ви би більш детальніше розповіли про структуру трансівера, що вже зроблено, що планується

Re: "Народний" Трансивер на базі ESP32-A1S

Додано: Пон вересня 19, 2022 1:31 pm
Almaro1741
За основу взяв uSDX, в загальному вигляді схема аналогічна, тільки замість Atmega 328p, підключив esp32. На даний момент реалізував управління синтезатором. Розвів плати ФНЧ і ДПФ на КВ, 6м, 2м. За основу їх взяв схеми трансивера PICaSTAR. Кілька днів тому замовив ESP32-A1S той що з звуковим кодеком на борту. Є заготовки так званого "водопаду". Поки все в зародковому стані. На макетах і на папері. В планах знайти і замовити синтезатор SI5351B-GM або аналогічний з 4 незалежними виходами. Спочатку думав про 5351 на 3 виводи, та щось воно мені не подобається. Квадратурний модулятор працює на х4 частоті, а сішка того не видасть. Є думка використати 2 виходи синтезатора, генерувати на них однакову частоту з зсувом фази на 90 градусів. Тоді можна використати частоту без множника, тим самим отримати можливість приймати на частоті до 160мгц. 2 виходи що залишаються, використати при роботі на передачу. Приймальна частина в загальному виглядає так. З входу антени сигнал поступає на блок ДПФ+аттенюатор, звідти на квадратурний модулятор, отримані сигнали I,Q на підсилювач. З виходу підсилювача на вхід кодека.  

Re: "Народний" Трансивер на базі ESP32-A1S

Додано: Пон вересня 19, 2022 1:48 pm
Almaro1741
З проблем з якими я особисто стикнувся це відсутність поглиблених знань в області цифрової обробки сигналів. В загальному вигляді особисто я це бачу так. З входу кодека отриманий сигнал проходить вибірку даних. Отримані данні пропускаємо через перетворення Фур'є. Значення після перетворення пропускаємо через цифровий фільтр, тим самим обмежуємо смугу пропускання. Отримані значення через зворотнє перетворення відновлюємо до звукового сигналу і подаємо на вихід кодека, звідти на динамік.

Re: "Народний" Трансивер на базі ESP32-A1S

Додано: Пон вересня 19, 2022 1:53 pm
Almaro1741
Можливо хто має лінки на літературу, поділіться будь ласка. Десь моє все з університету пішло по руках 

Re: "Народний" Трансивер на базі ESP32-A1S

Додано: Пон вересня 19, 2022 6:31 pm
UR5FFR
Si5351 без жодних проблем генерує частоту до 225МГц. Ділимо її на 4 і отримуємо 56МГц - це максимальна частота приймача. Можна генерувати на 5351 одразу дві частоти у квадратурі, але даташит не гарантує генерацію нижче 4МГц. На практиці генерація зривається десь нижче 2.5МГц. Тобто 160м викреслюємо.
З 4ма виводами сішка вам не до чого - нормально працює звичайна на 3 виходу.

Я дуже рекомендую "A Software-Defined Radio for  the masses" від Gerald Youngblood, K5SDR
https://sites.google.com/site/thesdrins ... the-Masses
Це мабуть єдиний детальний опис того як працює SDR. Свого часу на основі цих статей я повністю з нуля розробив програму для SDR. Там усе з прикладами коду на VisualBasic.

Стосовно DSP взагалі дуже зрозуміло все описано у The Scientist and Engineer's Guide to Digital Signal Processing By Steven W. Smith. Можна завантажити наприклад тут усю книгу або по розділам на офсайті https://www.dspguide.com/pdfbook.htm

Далі, ESP32 має чудову бібліотеку для DSP https://docs.espressif.com/projects/esp ... index.html
Для обробки семплов з кодеку вам потрібно створити потік який читає данні з I2S, опрацьовує їх, та відправляє назад до I2S
В ESP32 є підтримка FreeRTOS https://docs.espressif.com/projects/esp ... ertos.html
Для I2S я рекомендую пошукати приклад full duplex у гуглі та гітхабі. У себе я використовую кодек WM8731 і мій код вам не підійде.

Для роботи з кодом я рекомендую ставити VisualStudio Code + PlatformIO. Проект створювати з Espressif Arduino framework.
Для початку я думаю досить :)
 

Re: "Народний" Трансивер на базі ESP32-A1S

Додано: Вів вересня 20, 2022 7:57 am
Almaro1741
UR5FFR писав: Пон вересня 19, 2022 6:31 pm Si5351 без жодних проблем генерує частоту до 225МГц. Ділимо її на 4 і отримуємо 56МГц - це максимальна частота приймача. Можна генерувати на 5351 одразу дві частоти у квадратурі, але даташит не гарантує генерацію нижче 4МГц. На практиці генерація зривається десь нижче 2.5МГц. Тобто 160м викреслюємо.
З 4ма виводами сішка вам не до чого - нормально працює звичайна на 3 виходу.

майже всі з моїх знайомих говорять що 160 вже на грані вимирання...
як варіант обдумати можливість перемикання з парної квадратурної на одинарну х4.
UR5FFR писав: Пон вересня 19, 2022 6:31 pm Я дуже рекомендую "A Software-Defined Radio for  the masses" від Gerald Youngblood, K5SDR
https://sites.google.com/site/thesdrins ... the-Masses
Це мабуть єдиний детальний опис того як працює SDR. Свого часу на основі цих статей я повністю з нуля розробив програму для SDR. Там усе з прикладами коду на VisualBasic.

Стосовно DSP взагалі дуже зрозуміло все описано у The Scientist and Engineer's Guide to Digital Signal Processing By Steven W. Smith. Можна завантажити наприклад тут усю книгу або по розділам на офсайті https://www.dspguide.com/pdfbook.htm

Далі, ESP32 має чудову бібліотеку для DSP https://docs.espressif.com/projects/esp ... index.html
Для обробки семплов з кодеку вам потрібно створити потік який читає данні з I2S, опрацьовує їх, та відправляє назад до I2S
В ESP32 є підтримка FreeRTOS https://docs.espressif.com/projects/esp ... ertos.html
Для I2S я рекомендую пошукати приклад full duplex у гуглі та гітхабі. У себе я використовую кодек WM8731 і мій код вам не підійде.
 
Дякую за лінки. босить інформативні та корисні посиланняю
UR5FFR писав: Пон вересня 19, 2022 6:31 pm Для роботи з кодом я рекомендую ставити VisualStudio Code + PlatformIO. Проект створювати з Espressif Arduino framework.
Для початку я думаю досить :)
 
Саме такою збіркою й користуюсь вже кілька років. після Anduino ide набагато зручніше працювати над різними проектами і платформами в одній програмі
 

Re: "Народний" Трансивер на базі ESP32-A1S

Додано: Вів вересня 20, 2022 8:04 am
Almaro1741
UR5FFR писав: Пон вересня 19, 2022 6:31 pm Si5351 без жодних проблем генерує частоту до 225МГц. Ділимо її на 4 і отримуємо 56МГц - це максимальна частота приймача. Можна генерувати на 5351 одразу дві частоти у квадратурі, але даташит не гарантує генерацію нижче 4МГц. На практиці генерація зривається десь нижче 2.5МГц. Тобто 160м викреслюємо.
З 4ма виводами сішка вам не до чого - нормально працює звичайна на 3 виходу.


 
https://www.qsl.net/py2ohh/trx/si5351qu ... ature.html

https://gist.github.com/la3pna/258a6f309f1482bd165b

Лінк. в людини вдалось отримати частоти від 333кгц до 220 мгц. Наскільки я розумію він проводить маніпуляції з базовим генератором, змінюючи базову тактову частоту... в квадратурному генераторі верхня межа 110мгц... незнаю кому те потрібно. 
2.5 мгц\4 = 750 кгц в теорії можна навіть середні хвилі слухати). 
 
 
 

Re: "Народний" Трансивер на базі ESP32-A1S

Додано: Чет вересня 22, 2022 1:10 pm
Almaro1741
SDR трансивер отримує сигнал через квадратурний демодулятор. так і на передачу також працює через квадратурний сигнал. питання. що оптимальніше. використати 1 вихід синтезатора на х4 частоті для прийому, 1 вихід синтезатора на х4 частоті для передачі. або 2 виходи синтезатора з квадратурним сигналом на прийом, і 1 вихід на х4 частоті на передачу?

Re: "Народний" Трансивер на базі ESP32-A1S

Додано: Чет вересня 22, 2022 5:12 pm
UR5FFR
Якщо ви уважно читали мій аналіз архітектур то то я там навів недоліки тракту з квадратурними каналами. Основна проблема це розбалансування каналів по амплітуді та фазі. І якщо амплітудний баланс легко виправити, то з фазовим є проблеми.
Квадратурний формувач на 74LVC74 має велику похибку яка зростає із зростанням частоти. Краще тут веде себе 74LVC574 (тут можна почитати детальніше). Але навіть 74LVC574 має похибку на частоті 30МГц. Тому усі нормальні приймачі мають у себе блок корекції амплітудно-фазовогу дисбалансу. І це не примітивні алгоритми, бо фазовий дисбаланс залежить від частоти не тільки прийому, а й на панорамі.
Si5351 теж не є ідеальним джерелом квадратури. Але даташит не визначає ії похибку.
Якщо ми прийняли рішення що коригуємо дисбаланс програмно  то не має різниці з якою похибкою працює наш тракт - це зовсім не принципово. Я бачив як алгоритм повністю компенсує дисбаланс до 10-20 градусів по фазі. І це все дуже добре працює у приймачі. А от у передавачі ми маємо проблему бо ми не можемо компенсувати дисбаланс.
Тому перевірене рішення - 74LVC574. Якщо є змога та час на експерименти, то можна попробувати взяти сигнал напряму з SI5351