JustPaste.it

Хакер - Супергетеродин. Как я собрал коротковолновый радиоприемник на STM32 и Si5351

hacker_frei
31e595cb9fab4b666f346243b4146c40.png

 

https://t.me/hacker_frei

Candidum

Содержание статьи

  • Происхождение
  • В чем профит?
  • Почему именно супергетеродин
  • Практика
  • Синтезатор
  • Схема аналоговой части
  • Детали и прочее
  • Настройка
  • Корпус
  • Смеситель
  • Фильтр и УПЧ
  • Входная цепь
  • Антенна
  • Несколько советов напоследок

Да­же в сов­ремен­ном мире радио оста­ется эффектив­ным спо­собом при­ема и переда­чи информа­ции, который поз­воля­ет миновать гра­ницы и лиш­них пос­редни­ков. Прос­той и мак­сималь­но надеж­ный, сиг­нал ради­останций мож­но при­нять вне зависи­мос­ти от наличия вышек сетей 5G в тво­ей мес­тнос­ти. Как соб­рать свой при­емник из рос­сыпи мик­росхем и деталей, ты узна­ешь из это­го матери­ала.

ПРОИСХОЖДЕНИЕ

Ис­тория при­емни­ков прин­ципи­аль­но нового типа началась в 1901 году, ког­да Ред­жинальд Фес­сенден показал воз­можность при­ема сиг­нала на биениях. Суть револю­цион­ного метода зак­лючалась в том, что в при­емник, помимо ради­осиг­нала из антенны, подавал­ся вспо­мога­тель­ный сиг­нал близ­кой час­тоты, в резуль­тате чего на выходе мож­но было обна­ружить биения — сиг­нал с час­тотой, рав­ной раз­ности час­тот при­нима­емо­го сиг­нала и выхода вспо­мога­тель­ного генера­тора. Эти биения были слыш­ны в телефон­ных аппа­ратах, при­чем, как показа­ли нес­коль­ко поз­днее, ампли­туда этих биений ока­залась замет­но выше ампли­туды полез­ного сиг­нала.

Вспо­мога­тель­ный генера­тор иссле­дова­тель наз­вал «гетеро­дином» (от гре­чес­кого ἕτερος — иной или внеш­ний и δύναμις — сила), а сам при­емник «гетеро­дин­ным». На тот момент это был новый спо­соб детек­тирова­ния, который поз­волял при­нимать телег­рафный ради­осиг­нал тоном на слух.

f6ecab599ce72f84323215a73e9ee2b5.jpg

Здесь бук­вой O обоз­начен гетеро­дин, а сам при­емник пред­став­лял собой две индуктив­но свя­зан­ные катуш­ки на общем сер­дечни­ке. При этом сиг­нал биений зас­тавлял колебать­ся метал­личес­кую мем­бра­ну D (надо полагать, диф­фузор). В общем, как ты понима­ешь, все было сурово, впол­не в духе того далеко­го вре­мени. Поз­днее при­емник модер­низиро­вали, повысив чувс­тви­тель­ность.

774398daf107f7e6d119999392440ee0.jpg

Вни­матель­ное изу­чение схе­мы поз­воля­ет заметить здесь крис­талли­чес­кий диод — да, пред­ставь себе, эта шту­ка была сде­лана уже в 1913 году! Одна­ко боль­шого успе­ха эта конс­трук­ция не снис­кала, так как в то вре­мя генера­тор вспо­мога­тель­ного сиг­нала был гро­моз­дкой, слож­ной и очень дорогой в изго­тов­лении шту­кой. Тог­да наиболь­шее рас­простра­нение получи­ли механи­чес­кие генера­торы, а до изоб­ретения пер­вой ради­олам­пы оста­валось еще нес­коль­ко лет.

Сле­дующей ите­раци­ей стал ге­теро­дин­ный при­емник Ген­ри Раун­да, соз­данный в том же 1913 году. В этом устрой­стве генера­тор был уже на элек­трон­ной лам­пе, которая выпол­няла сра­зу три фун­кции: уси­лива­ла при­нима­емый сиг­нал, генери­рова­ла вспо­мога­тель­ный, а так­же работа­ла в качес­тве мик­шера, перем­ножая сиг­налы. Из‑за такой обиль­ной фун­кци­ональ­нос­ти автор дал при­емни­ку наз­вание «авто­дин», намекая, что генера­ция вспо­мога­тель­ного сиг­нала здесь про­исхо­дит в при­емно‑уси­литель­ных цепях.

INFO

К сло­ву, похожее решение я исполь­зовал в статье о лам­повом FM-при­емни­ке.

8982c9c308c88cffc0de534e8ea3dc3f.jpg

А даль­ше слу­чилась вой­на, которая ярко показа­ла, нас­коль­ко ради­освязь полез­на. Но тре­бова­лись надеж­ные, более чувс­тви­тель­ные и селек­тивные при­емни­ки, ведь к тому вре­мени ради­останций ста­ло замет­но боль­ше. У тог­дашних ради­опри­емни­ков было три серь­езные проб­лемы: недос­таточ­ные чувс­тви­тель­ность, что нап­рямую свя­зано с даль­ностью свя­зи, селек­тивность, то есть спо­соб­ность выделить сиг­нал нуж­ной ради­останции из нес­коль­ких при­нятых, и устой­чивость к атмосфер­ным помехам.

Изу­чая эти проб­лемы, три иссле­дова­теля незави­симо друг от дру­га приш­ли к кон­цепту­аль­но похожим решени­ям. Пер­вым с нез­начитель­ным отры­вом был фран­цуз Люсь­ен Леви, который пред­положил, что если в при­емни­ке пре­обра­зовы­вать сиг­нал при­нима­емой стан­ции не сра­зу в зву­ковую час­тоту, а в некото­рую про­межу­точ­ную час­тоту (выше слы­шимой), то на этой про­межу­точ­ной час­тоте будет про­ще изба­вить­ся от атмосфер­ных помех, пос­ле же ее мож­но пре­обра­зовать в слы­шимую (зву­ковую).

Та­кое решение тре­бует вве­дения в конс­трук­цию при­емни­ка допол­нитель­ного гетеро­дина. В резуль­тате получил­ся при­бор, говоря сов­ремен­ным язы­ком, с двой­ным пре­обра­зова­нием час­тоты. Леви наз­вал свой при­емник «супер­гетеро­дин­ным», то есть содер­жащим допол­нитель­ный гетеро­дин. Веро­ятно, имен­но это и объ­ясня­ет про­исхожде­ние столь замыс­ловато­го наз­вания.

Впро­чем, сущес­тву­ет и дру­гая вер­сия, которая пред­полага­ет, что прис­тавка «супер» переко­чева­ла от про­межу­точ­ной час­тоты, которая была выше слы­шимой, или, как было при­нято писать в то вре­мя, supersonic (уль­траз­вук). В любом слу­чае надо понимать, что супер­гетеро­дин­ный при­ем под­разуме­вает наличие про­межу­точ­ной час­тоты.

6e0557f8db941731813533f0d4ac7d4c.jpg

Здесь H1 и H2 — точ­ки под­клю­чения пер­вого и вто­рого гетеро­дина. Нес­коль­ко с дру­гой сто­роны к проб­леме под­сту­пились незави­симо друг от дру­га Эд­вин Армстронг и Валь­тер Шот­тки. Их боль­ше занима­ла идея уве­личе­ния чувс­тви­тель­нос­ти, для чего тре­бовал­ся уси­литель на ради­олам­пах. Одна­ко надо понимать, что ради­олам­пы в 1918 году были несовер­шенны­ми и кап­ризны­ми устрой­ства­ми и пос­тро­ить уси­литель с боль­шим коэф­фици­ентом, спо­соб­ный работать на час­тотах КВ‑диапа­зона (2–30 МГц), было прос­то невоз­можно.

Для решения этой проб­лемы иссле­дова­тели пред­ложили пре­обра­зовать полез­ный сиг­нал высокой час­тоты в про­межу­точ­ную (на которой лам­пы мог­ли эффектив­но работать) и уже на этой час­тоте уси­лить сиг­нал, что тех­нологии того вре­мени впол­не поз­воляли. Более того, авто­ры ука­зыва­ли, что такое пре­обра­зова­ние мож­но выпол­нять в нес­коль­ко эта­пов, что повысит устой­чивость работы уси­лите­ля.

И если изыс­кания нем­ца Шот­тки носили теоре­тичес­кий харак­тер, то инже­нер Армстронг в Аме­рике уже в 1918 году пос­тро­ил работа­ющий про­тотип сво­его супер­гетеро­дина на вось­ми лам­пах (на самом деле безум­ное количес­тво для того вре­мени). Выг­лядело это как‑то так.

e621e4546af1da5e2c8fd555212f77b9.jpg

Тем не менее тог­да супер­гетеро­дины не наш­ли широко­го при­мене­ния, и при­чиной тому была в пер­вую оче­редь высокая цена. В то вре­мя как раз появи­лись ре­гене­ратив­ные при­емни­ки, которые хоть и усту­пали супер­гетеро­динам по сво­им харак­терис­тикам, но зато поз­воляли пос­тро­ить при­емле­мого качес­тва при­емник, исполь­зуя все­го одну или две лам­пы. Любопыт­но, что регене­ратив­ный при­емник был изоб­ретен так­же Армстрон­гом и, что харак­терно, при­нес ему гораз­до боль­ший доход и извес­тность.

По‑нас­тояще­му эпо­ха су­пер­гетеро­дин­ных при­емни­ков началась лишь в 1930-х годах, ког­да лам­пы ста­ли гораз­до дос­тупнее и истек срок соот­ветс­тву­ющих патен­тов. В ито­ге к кон­цу Вто­рой мировой вой­ны супер­гетеро­дины прак­тичес­ки вытес­нили все осталь­ные типы при­емни­ков. В нас­тоящее вре­мя супер­гетеро­дин­ные при­емни­ки счи­тают­ся стан­дартом. Основное же пре­иму­щес­тво супер­гетеро­дина зак­люча­ется в том, что выб­рать при­нима­емый сиг­нал мож­но перес­трой­кой самого гетеро­дина.

При этом про­межу­точ­ная час­тота оста­ется пос­тоян­ной, так что мож­но при­менить высоко­эффектив­ные квар­цевые филь­тры в уси­лите­ле про­межу­точ­ной час­тоты. Это поз­воля­ет лег­ко получить жела­емую изби­ратель­ность по сосед­нему каналу.

Чувствительность, избирательность и полоса пропускания

Сре­ди всех харак­терис­тик любого при­емни­ка полез­но выделять ряд клю­чевых: чувс­тви­тель­ность, изби­ратель­ность и полоса про­пус­кания. Чувс­тви­тель­ность — это минималь­ный уро­вень ради­осиг­нала в мик­роволь­тах, поз­воля­ющий получить на выходе сиг­нал с задан­ным соот­ношени­ем сиг­нал/шум. Или, говоря про­ще, это минималь­ный уро­вень сиг­нала, при котором стан­цию еще мож­но услы­шать. Хорошие сов­ремен­ные при­емни­ки име­ют чувс­тви­тель­ность око­ло 1 мкВ.

Из­биратель­ность по сосед­нему каналу харак­теризу­ет спо­соб­ность при­емни­ка выделять нуж­ный сиг­нал при наличии близ­ко рас­положен­ных меша­ющих сиг­налов, изме­ряет­ся в децибе­лах. Допус­тим, есть две стан­ции рав­ной мощ­ности, отсто­ящие друг от дру­га на 10 кГц (типич­ная ширина канала на вещатель­ных КВ‑диапа­зонах). Изби­ратель­ность будет показы­вать, нас­коль­ко сла­бее будет при­нимать­ся сиг­нал сосед­ней стан­ции при нас­трой­ке на жела­емую.

На­конец, полоса про­пус­кания — это параметр, тес­но свя­зан­ный с изби­ратель­ностью, который показы­вает откло­нение час­тоты сиг­нала от час­тоты нас­трой­ки, ког­да сиг­нал осла­бева­ет на 3 дБ (это при­мер­но 0,7 для нап­ряжения и 0,5 для мощ­ности).

В ЧЕМ ПРОФИТ?

Ко­неч­но, сей­час сбор­ка собс­твен­ного ради­опри­емни­ка лишена эко­номи­чес­кой целесо­образнос­ти. Более того, с раз­вити­ем интерне­та ради­ове­щание сегод­ня уже потеря­ло былую акту­аль­ность. Даже FM-диапа­зон замет­но поредел, не говоря уже о корот­ких вол­нах. И все же ради­опри­ем на корот­ких вол­нах, как сей­час при­нято выражать­ся, дает ощу­щение «теп­лой лам­повос­ти». Более того, сама идея «сво­бод­но» переда­вать информа­цию, минуя гра­ницы и пос­редни­ков, до сих пор выг­лядит весь­ма зло­бод­невно.

Так, фак­тичес­ки не вста­вая со сту­ла, мож­но про­бежать­ся если не по все­му миру, то как минимум по сво­ему матери­ку: тысячи километ­ров для корот­ких волн совер­шенно не проб­лема, даже в круп­ных городах, где ради­оэфир силь­но зашум­лен. Находясь в Мос­кве, мож­но без тру­да услы­шать Китай, Индию, Катар и дру­гие стра­ны. Сущес­тву­ет даже такое явле­ние, как DXing — «охо­та» на даль­ние ради­останции, сво­его рода сос­тязание. При­няв ради­останцию и отпра­вив соот­ветс­тву­ющий ответ, мож­но получить кар­точку QSL с эмбле­мой ради­останции.

В интерне­те на некото­рых форумах есть отдель­ные те­мы, пос­вящен­ные таким кар­точкам. Как пишут учас­тни­ки, китай­цы охот­но отправ­ляют кар­точки. Впро­чем, лич­но меня боль­ше инте­ресу­ет само соз­дание и нас­трой­ка при­емни­ка. Даль­ше я рас­ска­жу об отно­ситель­но нес­ложном при­емни­ке с циф­ровой шка­лой и квар­цевой ста­били­заци­ей час­тоты, впол­не при­год­ном для при­ема сиг­нала с даль­них стан­ций.

Почему именно супергетеродин

Ра­зуме­ется, для при­ема на корот­ких вол­нах мож­но исполь­зовать гораз­до более прос­тые решения. Нап­ример, регене­ратив­ные при­емни­ки, наибо­лее известен из которых, пожалуй, «Могика­нин» MFJ-8100. Его мож­но при­обрести готовым (дол­ларов за сто на популяр­ных онлай­новых пло­щад­ках) или в виде набора для сбор­ки, а мож­но и вов­се соб­рать самому — бла­го схе­ма откры­та. Но регене­ратор — это ско­рее «для баловс­тва», так как, прос­лушивая стан­цию, пос­тоян­но при­дет­ся подс­тра­ивать регене­рацию и атте­нюатор. Это про­исхо­дит из‑за того, что КВ‑сиг­нал прак­тичес­ки пос­тоян­но меня­ет свою интенсив­ность в широких пре­делах. Свя­зано это с атмосфер­ными явле­ниями, вли­яющи­ми на про­хож­дение. И это­го как раз регене­ратор очень не любит.

ПРАКТИКА

Итак, суть работы гетеро­динов в таком при­емни­ке зак­люча­ется в том, что вход­ной «высоко­час­тотный» сиг­нал пре­обра­зует­ся в про­межу­точ­ную час­тоту (мы будем исполь­зовать 455 кГц), на которой будет выпол­нять­ся основная селек­ция и уси­ление сиг­нала. Далее сле­дует детек­тор, выделя­ющий сиг­нал зву­ковой час­тоты, и уси­литель, необ­ходимый для гром­когово­ряще­го при­ема. Рас­смот­рим струк­турную схе­му супер­гетеро­дина.

 

78025cef760555698ef633acf938c793.jpg

Синтезатор

За осно­ву была взя­та конс­трук­ция, которую я уже исполь­зовал в SDR-при­емни­ке, одна­ко в дан­ном слу­чае я пос­читал, что исполь­зование мик­рокон­трол­лера STM32F103 избы­точ­но, и пор­тировал некото­рые кус­ки кода на STM32F030. Пос­ледний сла­бее по харак­терис­тикам, но нес­коль­ко дешев­ле и, кро­ме того, дос­тупен в более удоб­ном для самоде­лок кор­пусе LQFP32. Это один из нем­ногих МК c ядром Cortex-M и шагом меж­ду кон­такта­ми 0,8 мм. Впро­чем, у SI5351 шаг все рав­но 0,5 мм, поэто­му пол­ностью изба­вить­ся от мелочов­ки в про­екте не вый­дет.

Я добавил в схе­му ста­били­затор питания и опе­раци­онный уси­литель для отоб­ражения уров­ня при­нима­емо­го сиг­нала. ОУ работа­ет в режиме пов­торите­ля, а на его выходе сто­ит делитель нап­ряжения, что поз­воля­ет изме­рять нап­ряжение управля­юще­го сиг­нала АРУ (изме­няет­ся в диапа­зоне от 0,5 до 4,7 В). Так как управля­ющее нап­ряжение АРУ близ­ко к нап­ряжению питания, то при­менен rail-to-rail опе­раци­онный уси­литель MV358. Его здесь мож­но заменить на более рас­простра­нен­ный LM358, но тог­да вер­хний пре­дел изме­ряемо­го нап­ряжения сни­зит­ся до 4 В (при питании 5 В).

Так­же в схе­ме заложе­на воз­можность управлять варика­пами для авто­нас­трой­ки вход­ных цепей, одна­ко под­ходящих варика­пов я не нашел, поэто­му такую фун­кцию не реали­зовал. Схе­ма син­тезато­ра пред­став­лена на рисун­ке.

02465ab9ac07fa3b4336aa6e15c7d2d7.jpg

В целом пор­тирова­ние прош­ло доволь­но прос­то, за исклю­чени­ем I2C, с которым вылез­ла одна неожи­дан­ная осо­бен­ность. Основные отли­чия каса­ются ини­циали­зации пор­тов вво­да‑вывода, которая в libopencm3 для семей­ства F0 отли­чает­ся от F1. На мой вкус, в F0 этот про­цесс даже проз­рачнее, но вот c I2C все же приш­лось нем­ножко поковы­рять­ся. Дело в том, что для уско­рения вывода на экран я исполь­зую модифи­циро­ван­ные фун­кции переда­чи, а на уров­не регис­тров работа с I2C в семей­ствах F0 и F1 раз­личная, поэто­му приш­лось пра­вить код биб­лиоте­ки дис­плея. Здесь и далее за осно­ву взя­ты фун­кции libopencm3.

static void wait_i2c(void) {

bool wait = true;

while (wait) {

if (i2c_transmit_int_status(OLEDI2C))wait = false;

while (i2c_nack(OLEDI2C)); /* FIXME Some error */

}

}

void oled_send_cmd2(uint8_t *cmd, uint16_t n) {

i2c_set_7bit_address(OLEDI2C, OLEDADDR);

i2c_set_write_transfer_dir(OLEDI2C);

i2c_set_bytes_to_transfer(OLEDI2C, 2*n);

i2c_enable_autoend(OLEDI2C);

i2c_send_start(OLEDI2C);

for (size_t i = 0; i < n; i++) {

wait_i2c();

i2c_send_data(OLEDI2C, 0x80);

wait_i2c();

i2c_send_data(OLEDI2C, *cmd++);

}

}

void oled_send_data2(uint8_t *data, uint16_t n) {

i2c_set_7bit_address(OLEDI2C, OLEDADDR);

i2c_set_write_transfer_dir(OLEDI2C);

i2c_set_bytes_to_transfer(OLEDI2C, n+1);

i2c_enable_autoend(OLEDI2C);

i2c_send_start(OLEDI2C);

wait_i2c();

i2c_send_data(OLEDI2C, 0x40);

for (size_t i = 0; i < n; i++) {

wait_i2c();

i2c_send_data(OLEDI2C, *data++);

}

}

void oled_send_n_bytes_data(uint8_t byte, uint8_t n) {

i2c_set_7bit_address(OLEDI2C, OLEDADDR);

i2c_set_write_transfer_dir(OLEDI2C);

i2c_set_bytes_to_transfer(OLEDI2C, n+1);

i2c_enable_autoend(OLEDI2C);

i2c_send_start(OLEDI2C);

wait_i2c();

i2c_send_data(OLEDI2C, 0x40);

for (size_t i = 0; i < n; i++) {

//while(!(I2C_ISR(OLEDI2C) & I2C_ISR_TC));

wait_i2c();

i2c_send_data(OLEDI2C, byte);

}

}

Та­кая модифи­кация поз­воля­ет отправ­лять целые мас­сивы команд или дан­ных, при этом необ­ходимые для про­токо­ла управле­ния дис­плея бай­ты добав­ляют­ся в про­цес­се, что сни­жает нак­ладные рас­ходы. Одна­ко на прак­тике ока­залось, что при попыт­ке очис­тить экран такой код «под­вешива­ет» мик­рокон­трол­лер. Пос­ле некото­рого изу­чения проб­лемы выяс­нилось, что дело в аппа­рат­ной реали­зации перифе­рии I2C в семей­стве F0 и ошиб­ка воз­ника­ет при попыт­ке отпра­вить в один заход боль­ше 255 байт.

При­чина в том, что мик­рокон­трол­лер отправ­ляет на шину сиг­нал окон­чания переда­чи пос­ле обну­ления счет­чика передан­ных бай­тов, который отсчи­тыва­ет бай­ты авто­мати­чес­ки, а под этот счет­чик отве­дено ров­но восемь бит в соот­ветс­тву­ющем регис­тре. Поэто­му, если надо отпра­вить боль­ше, чем 255 байт, надо сле­дить за обну­лени­ем это­го счет­чика и сбра­сывать его в нуж­ный момент, реини­циали­зируя переда­чу. Самос­тоятель­но биб­лиоте­ка libopencm3 на такое нес­пособ­на.

По­раз­мыслив над этим, я решил тоже осо­бо не усложнять и прос­то под­пра­вить фун­кцию очис­тки экра­на. В семей­стве F1 отправ­ка стар­тового сиг­нала кон­тро­лиру­ется соф­том, и там этой проб­лемы нет. А вот и ито­говая фун­кция очис­тки экра­на с необ­ходимы­ми исправ­лени­ями:

void oled_clear(void) {

oled_set_col_block(0, 127, 0, 8);

// for (uint16_t i = 0; i < 128*8; i++) oled_send_data(0x00);

// for (uint32_t i = 0; i < 0xFFFF; i++) __asm__("nop");

// oled_send_n_bytes_data(0x00, 128*8);

for (uint8_t i = 0; i < 8; i++) {

oled_send_n_bytes_data(0x00, 128);

}

pos = 0;

}

Дру­гой неп­рият­ностью ста­ли неожи­дан­ные зависа­ния при вра­щении энко­дера. Как выяс­нилось, дело было в ста­били­зато­ре нап­ряжения. Сна­чала я исполь­зовал ста­били­затор с низ­ким падени­ем нап­ряжения RT9193-33, пред­назна­чен­ный для работы с литий‑полимер­ными акку­муля­тора­ми. И хотя по даташи­ту он работа­ет со вход­ным нап­ряжени­ем до 5,5 В, уже при вход­ном нап­ряжении 5 В он почему‑то выда­ет 3,5 В.

Во­обще говоря, судя по даташи­ту на сам F030, мик­рокон­трол­лер дол­жен перева­ривать такое питание (вплоть до 3,6 В). Одна­ко на прак­тике повыше­ние нап­ряжения приш­лось ему не по вку­су — он пери­оди­чес­ки зависал. Замена ста­били­зато­ра (на этот раз я взял 78L33) решила проб­лему, и при нап­ряжении питания 3,3 В прог­рамма наконец зарабо­тала без зависа­ний.

Нес­коль­ко слов сле­дует ска­зать и об АЦП, с помощью которо­го изме­ряет­ся уро­вень сиг­нала АРУ. Замора­чивать­ся с филь­тра­цией нап­ряжения питания АЦП я не стал, вмес­то это­го исполь­зовал прог­рам­мное подав­ление помех. Извес­тно, что соот­ношение сиг­нал/шум про­пор­циональ­но квад­ратно­му кор­ню из чис­ла изме­рений. Таким обра­зом, совер­шая вмес­то одно­го изме­рения 4096 изме­рений и усредняя резуль­тат, мы подав­ляем шум АЦП в 64 раза. Это­го в прин­ципе уже хва­тает, что­бы дос­товер­но изме­рять десят­ки мил­ливольт. Что же каса­ется зат­рат вре­мени, то они нас в дан­ном слу­чае не вол­нуют, так как даже такой ско­рос­ти в этой задаче более чем дос­таточ­но.

Кро­ме того, усредне­ние зна­чений мож­но допол­нитель­но уско­рить, если заменить зат­ратную опе­рацию деления на опе­рацию сдви­га. Так, сдвиг впра­во на 12 дво­ичных раз­рядов экви­вален­тен целочис­ленно­му делению на 4096 (ана­логич­но и с умно­жени­ем). Фун­кция изме­рения уров­ня сиг­нала АРУ выг­лядит сле­дующим обра­зом.

uint16_t measure() {

uint32_t temp = 0;

for (uint16_t i = 0; i < 4096; i++) {

adc_start_conversion_regular(ADC1);

while (!(adc_eoc(ADC1)));

temp += ADC_DR(ADC1);

}

temp = temp >> 12;

temp=temp*2*3290/4095;

return (uint16_t)temp;

}

Эта фун­кция ока­залась очень полез­ной, в том чис­ле для нас­трой­ки готово­го устрой­ства. Ори­енти­руясь на уро­вень сиг­нала АРУ, дос­таточ­но прос­то нас­тро­ить кон­туры при­емни­ка, при этом не нуж­но ни тес­тера, ни осциллог­рафа. Алго­ритм работы дос­таточ­но прос­той, в бес­конеч­ном цик­ле ждем изме­нения счет­чика энко­дера, пос­ле чего перес­тра­иваем син­тезатор на нуж­ную час­тоту и отоб­ража­ем новую час­тоту на экра­не с поп­равкой на зна­чение про­межу­точ­ной час­тоты. Затем изме­ряем нап­ряжение АРУ и так­же выводим на экран.

#define IF_FEQ 455

...

while(1) {

if (encoder != old_enc) {

si5351_set_freq(encoder*100000ULL, SI5351_CLK0);

old_enc = encoder;

o_printf_at(0,0,1,0,"CNT=%d",count++);

o_printf_at(0,1,3,0,"%dKHz",encoder-IF_FEQ);

o_printf_at(0,4,1,0,"F=%dKHz",encoder);

}

if (!gpio_get(GPIOA, GPIO6)) {

while(!gpio_get(GPIOA, GPIO6));

coef *= 10;

if (coef > 10) coef = 1;

o_printf_at(0, 0, 1, 0, "coef=>>>%d<<<", coef);

}

if (!gpio_get(GPIOA, GPIO5)) {

while(!gpio_get(GPIOA, GPIO5));

next_band();

}

for (uint32_t i = 0; i < 0xFFFF; i++) __asm__("nop");

gpio_toggle(GPIOA, GPIO4);

uint16_t temp2 = measure();

o_printf_at(0, 5, 1, 0, "V_AGC=%4dmV", temp2);

Зна­чение про­межу­точ­ной час­тоты зависит от исполь­зован­ного филь­тра, в дан­ном слу­чае это 455 кГц. Осталь­ной код, схе­му и фай­лы печат­ной пла­ты мож­но най­ти на GitHub.

Схема аналоговой части

Здесь все как на струк­турной схе­ме выше. На вхо­де сто­ит перес­тра­иваемый филь­тр из двух кон­туров. Если огра­ничить­ся одним диапа­зоном, то мож­но перемен­ный кон­денса­тор заменить пос­тоян­ным. Нап­ример, при емкости кон­денса­торов 150 пФ и дан­ных номина­лах катушек при­емник нас­тро­ен на диапа­зон 41 м. Одна­ко один фик­сирован­ный диапа­зон — это неудоб­но, поэто­му ста­вим перемен­ный кон­денса­тор и дела­ем помет­ки положе­ния движ­ка для раз­ных диапа­зонов.

 

daf39a73d568575ba6b3037d5d10f145.jpg

Сле­дом за филь­тром идет сме­ситель на спе­циали­зиро­ван­ной мик­росхе­ме SA612. Вооб­ще, я поп­робовал нес­коль­ко раз­ных вари­антов сме­сите­лей, но вари­ант с SA612 с точ­ки зре­ния нас­трой­ки ока­зал­ся самым прос­тым, все зарабо­тало сра­зу же. Далее идет УПЧ — в дан­ной конс­трук­ции, пожалуй, самый слож­ный узел, как с точ­ки зре­ния схе­мотех­ники, так и с точ­ки зре­ния отладки.

Впро­чем, все не так страш­но, дос­таточ­но подоб­рать номинал резис­тора R9 таким обра­зом, что­бы на кол­лекто­ре тран­зисто­ра Q5 была при­мер­но полови­на нап­ряжения питания, пос­ле чего дос­таточ­но подс­тро­ить катуш­ку кон­тура ПЧ по мак­симуму сиг­нала. Сле­дом за УПЧ идет детек­тор, соб­ранный по клас­сичес­кой схе­ме с удво­ением.

Уро­вень сиг­нала на выходе детек­тора отсле­жива­ется тран­зисто­ром Q4, управля­ющим сме­щени­ем тран­зисто­ра Q2. Ког­да на выходе детек­тора рас­тет нап­ряжение, тран­зистор Q4 откры­вает­ся, сни­жая ток сме­щения на базе тран­зисто­ра Q2, тем самым умень­шая его коэф­фици­енты уси­ления, что, в свою оче­редь, умень­шает общее уси­ление УПЧ. Так в дан­ном слу­чае реали­зова­на АРУ. От АРУ, конеч­но, мож­но отка­зать­ся, упростив схе­му, одна­ко, пос­коль­ку сиг­нал стан­ций на корот­ких вол­нах нес­табилен, слу­шать при­емник с АРУ гораз­до при­ятнее. И не нуж­но пос­тоян­но кру­тить руч­ку гром­кости.

В УПЧ при­мене­ны квар­цевые филь­тры SFU455, их полоса про­пус­кания, пря­мо ска­жем, широко­вата для наших задач (15 кГц), но если взять пароч­ку, то получа­ется более‑менее, да и сто­ят они уж сов­сем дешево.

В завер­шение зву­ковой сиг­нал уси­лива­ется УЗЧ на доволь­но извес­тной мик­росхе­ме LM386. Собс­твен­но, в таком виде при­емник был соб­ран сна­чала на макете, а потом перене­сен на печат­ную пла­ту.

b42c57c2548a905ab902e122048602a7.jpg

Детали и прочее

Из дру­гих ком­понен­тов сто­ит обсу­дить катуш­ки. Все они намота­ны на кар­касах диамет­ром 5 мм с подс­тро­ечни­ками из фер­рита. Такие кар­касы мож­но недоро­го купить в Китае. А мож­но и на барахол­ке или выковы­рять из какого‑нибудь донора. Вход­ные кон­туры содер­жат по 20 вит­ков (виток к вит­ку) про­вода 0,2 мм, катуш­ка свя­зи содер­жит пять вит­ков того же про­вода и мота­ется поверх кон­турной. Кон­тур ПЧ содер­жит 90 вит­ков про­вода 0,12 мм с отво­дом от середи­ны намотан­ных вна­вал.

Ка­туш­ка свя­зи содер­жит 25 вит­ков того же про­вода и мота­ется вна­вал на пер­вичную (не очень кра­сиво, зато прос­то и, глав­ное, работа­ет). Для такой катуш­ки, что­бы попасть в 455 кГц, нужен кон­денса­тор от 1000 до 1500 пФ, а даль­ше уже мож­но подс­тро­ить сер­дечни­ком. Если под­ходящих кар­касов нет, их мож­но скле­ить из бумаги или исполь­зовать под­ходящую плас­тиковую труб­ку, а точ­ную подс­трой­ку делать емкостью.

Мож­но и вов­се оста­вить лишь один кон­тур, но этот вари­ант хуже. Разуме­ется, при сме­не кар­каса нуж­ное чис­ло вит­ков при­дет­ся подоб­рать. Это чис­ло вит­ков мож­но рас­счи­тать, исполь­зуя извес­тные фор­мулы или даже онлайн‑каль­кулято­ры, то же каса­ется и час­тоты резонан­са кон­тура. Помимо это­го, есть дос­таточ­но прос­той спо­соб оце­нить час­тоту резонан­са с помощью осциллог­рафа. Кон­тур под­клю­чает­ся к щупу осциллог­рафа, а через неболь­шую емкость на него пода­ется тес­товый сиг­нал с того же осциллог­рафа (меандр 1 кГц, 5 В). В резуль­тате на экра­не мож­но видеть затуха­ющие колеба­ния в момент вос­ходяще­го и нис­ходяще­го фрон­тов с час­тотой резонан­са кон­тура.

Настройка

Нас­тра­ивать при­емник на печат­ной пла­те, в прин­ципе, нес­ложно, осо­бен­но если под рукой есть генера­тор сиг­налов. Пос­ле того как под­бором резис­тора R9 на кол­лекто­ре тран­зисто­ра Q5 уста­нов­лено нап­ряжение око­ло 2,5 В, на генера­торе выс­тавля­ем сиг­нал, ска­жем час­тотой 7200 кГц, вклю­чаем ампли­туд­ную модуля­цию сиг­налом в 1 кГц и уста­нав­лива­ем ампли­туду, нап­ример 10 мВ, чтоб уж навер­няка. Сиг­нал пода­ем на вход при­емни­ка и с помощью син­тезато­ра нас­тра­иваем­ся на эту час­тоту.

За­тем подс­тра­иваем вход­ной кон­тур так, что­бы гром­кость была мак­сималь­на. Если сиг­нал слиш­ком силь­ный, сле­дует под­кру­тить атте­нюатор, что­бы нап­ряжение АРУ было в рай­оне 3000 мВ. Теперь подс­тра­иваем с помощью сер­дечни­ков вход­ные кон­туры, добива­ясь миниму­ма нап­ряжения АРУ, что экви­вален­тно мак­симуму сиг­нала. Далее то же про­делы­ваем с кон­туром ПЧ. Все, нас­трой­ка закон­чена, про­ще, чем кажет­ся на пер­вый взгляд.

Как показа­ла прак­тика, при­емник не очень чувс­тви­телен к расс­трой­ке кон­туров, поэто­му увес­ти его далеко от опти­маль­ного зна­чения слож­но, что, безус­ловно, при­ятно.

Корпус

Я хотел сде­лать кор­пус из алю­миния, но в пос­ледний момент мне ста­ло лень пилить/свер­лить, поэто­му я вос­поль­зовал­ся ста­рым про­верен­ным вари­антом — орг­стек­лом. Кор­пус выпол­нен из лис­тового орг­стек­ла тол­щиной 3 мм как под­дон с крыш­кой. Сам под­дон пред­став­ляет собой изог­нутую бук­вой П плас­тину орг­стек­ла, к которой прик­леены боковые стен­ки. Изги­бание орг­стек­ла поз­воля­ет получать нес­коль­ко более сим­патич­ные фор­мы, нежели прос­тая склей­ка. Гнуть орг­стек­ло мож­но как на спе­циаль­ном стан­ке, так и прос­то при помощи паяль­ного фена.

Для это­го орг­стек­ло кла­дет­ся на край под­ходящей деревяш­ки и гре­ется в мес­те сги­ба до раз­мягче­ния, пос­ле чего при­жима­ется к деревяш­ке и удер­жива­ется до зат­верде­вания. Тут надо при­лов­чить­ся, но ничего осо­бо слож­ного нет. Тем­перату­ру на фене мож­но выс­тавлять гра­дусов в 250–300 и прог­ревать деталь обсто­ятель­но.

На перед­нюю панель кор­пуса выводят­ся руч­ки атте­нюато­ра, гром­кости, нас­трой­ки и перек­лючения диапа­зонов, так­же на ней зак­репля­ется экран. В боковой стен­ке есть про­резь для колеса кон­денса­тора перемен­ной емкости. На зад­нюю стен­ку выведен разъ­ем антенны. Свер­ху на крыш­ке зак­реплен динамик, под который сде­ланы фигур­ные про­пилы.

Для склей­ки орг­стек­ла хорошо под­ходит рас­твор орг­стек­ла в дих­лорэта­не, орг­стек­ло рас­тво­ряет­ся в нем дос­таточ­но хорошо, но не быс­тро, поэто­му при­дет­ся нем­ного подож­дать.

WARNING

Дих­лорэтан — суб­стан­ция дос­таточ­но ток­сичная, и дышать его парами не рекомен­дует­ся. Говорят, от нее даже часы могут оста­новить­ся на полови­не шес­того. Так что будь вни­мате­лен и соб­людай меры пре­дос­торож­ности.

Го­товое устрой­ство выг­лядит так.

0815d00657ea9b87ea3ae40f2bdeb20e.jpg
3c64510111cc74f2a15584c955f5a5bd.jpg
7d58632bb76fbb5d63e640b5c36b2f9c.jpg
b63130faba1757073d7085d298c65f1d.jpg

Смеситель

Сме­ситель, пожалуй, самый инте­рес­ный узел при­емни­ка, и от качес­тва его работы во мно­гом зависят ито­говые харак­терис­тики все­го устрой­ства. Так как же работа­ет сме­ситель? Отчасти мы уже касались это­го воп­роса в статье о SDR-при­емни­ке, где говори­ли, что задача сме­сите­ля — перем­ножение двух сиг­налов.

Ес­ли вспом­нить школь­ную три­гоно­мет­рию, то лег­ко уви­деть, что

Acosa ⋅ Bcosb = AB(cos(a + b) + cos(a – b))/2

Здесь A и B — ампли­туды сиг­налов с час­тотами а и b. Таким обра­зом, перем­ножение двух косину­сов дает косину­сы сум­мы и раз­ности исходных час­тот, при­чем их ампли­туда оче­вид­но про­пор­циональ­на про­изве­дению ампли­туд исходных фун­кций. Более того, мы получи­ли новые сиг­налы с час­тотой биений a + b и a – b, а их ампли­туда боль­ше ампли­туды мень­шего из вход­ных сиг­налов. То есть мы получи­ли еще и некото­рое уси­ление за счет перерас­пре­деле­ния энер­гии. Собс­твен­но, Фес­сенден в свое вре­мя как раз и обра­тил на это вни­мание.

Хо­рошо, а как же перем­ножить сиг­налы? С сум­мой все прос­то, а с умно­жени­ем хит­рее. Пред­ста­вим, что у нас есть эле­мент с квад­ратич­ной харак­терис­тикой: если на его вход подать нап­ряжение U, то на выходе будет нап­ряжение, про­пор­циональ­ное U2. Это, нап­ример, диод и полевой тран­зистор. Теперь если заменить одно нап­ряжение U на сум­му, то выход­ное нап­ряжение будет про­пор­циональ­но квад­рату сум­мы вход­ных.

95c69016fdb7a2567c69d3f4bb048fde.jpg

За­тем, вспо­миная раз­ложение квад­рата сум­мы, мы видим, что на выходе появит­ся про­изве­дение двух вход­ных сиг­налов, а заод­но и гар­моники (сиг­налы крат­ной час­тоты) вход­ных сиг­налов.

(sina + sinb)2 = (sina)2 + 2sina ⋅ sinb + (sinb)2

Та­ким обра­зом мы переш­ли от сло­жения к умно­жению! Пред­став­ленные фор­мулы спра­вед­ливы для квад­ратич­ной харак­терис­тики, одна­ко похожая ситу­ация будет и на дру­гих нелиней­ных эле­мен­тах, нап­ример тран­зисто­рах с экспо­нен­циаль­ной харак­терис­тикой. Так, экспо­нен­ту мож­но пред­ста­вить как ряд Тей­лора, и у нас уже появ­ляет­ся квад­ратич­ный член. Впро­чем, это работа­ет не толь­ко для квад­ратов.

expx = 1 + x + x2/2! + x3/3! + ...

Это, разуме­ется, не стро­гое матема­тичес­кое объ­ясне­ние, но оно дает понима­ние того, что про­исхо­дит на самом деле.

Что же каса­ется прак­тичес­кой реали­зации сме­сите­ля, то здесь есть уйма вари­антов: это и диод­ные сме­сите­ли, и сме­сите­ли на тран­зисто­рах и дву­зат­ворных полевых тран­зисто­рах. Одна­ко из сооб­ражений прос­тоты и по резуль­татам нес­коль­ких экспе­римен­тов я оста­новил­ся на спе­циали­зиро­ван­ной мик­росхе­ме SA612. Сто­ит она недоро­го, работа­ет хорошо и не тре­бует нас­трой­ки. Так­же вмес­то SA612 мож­но исполь­зовать SA602.

Фильтр и УПЧ

В при­емни­ке УПЧ соб­ран на дис­крет­ных эле­мен­тах и содер­жит три кас­када уси­ления и сис­тему АРУ. Все это при­дет­ся нас­тро­ить, что упи­рает­ся в под­бор единс­твен­ного резис­тора и подс­трой­ку кон­тура по мак­симуму сиг­нала. К сло­ву ска­зать, точ­ная нас­трой­ка кон­тура ПЧ ока­залась не так кри­тич­на для работы.

Я пораз­мышлял, как упростить схе­му, и при­шел в ито­ге к исполь­зованию мик­росхе­мы TA7642, содер­жащей уси­литель ПЧ, детек­тор и АРУ, при этом тре­бующей все­го пяток внеш­них эле­мен­тов. А исполь­зование более под­ходяще­го квар­цевого филь­тра LT455HTW поз­волило отка­зать­ся от кон­тура ПЧ и огра­ничить­ся одним филь­тром.

В резуль­тате схе­ма сущес­твен­но упрости­лась, а селек­тивность при­емни­ка улуч­шилась. Прав­да, этот вари­ант при­емни­ка так и остался на макете.

44c2d6c2362b46dfbcf9bf7320ddc11e.jpg
7b9efb12ef657fd9f359f5340d2cabb1.jpg

Крас­ный све­тоди­од исполь­зован как ста­били­затор нап­ряжения. Работа­ет эта схе­ма не хуже уси­лите­ля на дис­крет­ных эле­мен­тах, при этом не тре­бует нас­трой­ки и не склон­на к самовоз­бужде­нию.

Входная цепь

Вход­ная цепь пред­став­ляет собой два свя­зан­ных кон­тура, перес­тра­иваемых с помощью сдво­енно­го перемен­ного кон­денса­тора. На вход­ной кон­тур через катуш­ку свя­зи пода­ется сиг­нал с атте­нюато­ра, выпол­ненно­го на перемен­ном резис­торе. Наличие атте­нюато­ра здесь поз­воля­ет избе­жать перег­рузки УПЧ при при­еме мощ­ных стан­ций и дела­ет работу с при­емни­ком более ком­фор­тной. Так, в хороший день на 16 мет­рах мож­но при­нимать пару стан­ций, даже не под­клю­чая антенну!

В слу­чае же сла­бых стан­ций помога­ет точ­ная подс­трой­ка кон­туров. Конеч­но, перес­тра­иваемые вруч­ную кон­туры вход­ного филь­тра не очень удоб­ны и тре­буют нас­трой­ки при сме­не диапа­зона, но это ком­про­мисс меж­ду прос­тотой и эффектив­ностью. Впро­чем, если очень хочет­ся, то один кон­тур мож­но выкинуть. Работать будет нес­коль­ко хуже, зато нас­тра­ивать про­ще.

А вот исполь­зование варика­пов во вход­ном кон­туре уже не так эффектив­но, осо­бен­но учи­тывая, что управлять ими с помощью ШИМ проб­лематич­но из‑за помех. Поэто­му если хочет­ся пол­ностью авто­мати­чес­кой перес­трой­ки, то сто­ит задумать­ся о перек­люча­емых полосо­вых филь­трах, которые мож­но ком­мутиро­вать с помощью реле, как в про­фес­сиональ­ной аппа­рату­ре. Это, конеч­но, замет­но усложнит конс­трук­цию, зато мож­но будет отка­зать­ся от полево­го тран­зисто­ра на вхо­де.

К авто­мати­зации мож­но подой­ти и с дру­гой сто­роны, добавив еще один пре­обра­зова­тель час­тоты с дос­таточ­но высокой ПЧ (ска­жем, 10,7 МГц), что поз­волит заменить полосо­вые филь­тры на ФНЧ. Но это уже дру­гая исто­рия, которая выходит за рам­ки сегод­няшней статьи.

Антенна

Хо­тя фор­маль­но антенна и не часть при­емни­ка, но имен­но от нее зависит 90 про­цен­тов успе­ха, осо­бен­но если речь идет о круп­ном городе. Нес­коль­ко мет­ров про­вода, натяну­тых в ком­нате, — пло­хой вари­ант, пос­коль­ку поз­волит при­нять лишь самые мощ­ные стан­ции (и то если звез­ды сой­дут­ся). Уве­рен­ные резуль­таты при миниму­ме зат­рат мож­но получить, исполь­зуя про­вод, про­тяну­тый от окна к бли­жай­шему дереву мет­ров на пять‑десять. Под­клю­чать такую антенну луч­ше через сог­ласу­ющий тран­сфор­матор.

 

9a8a8f32c4e97c508e073fd9a27953cb.jpg

Тран­сфор­матор мота­ется на фер­ритовой труб­ке от кабеля монито­ра, антенная обмотка содер­жит десять вит­ков, катуш­ка свя­зи два вит­ка. Вто­рой конец антенной катуш­ки зазем­ляет­ся. Всег­да луч­ше исполь­зовать нор­маль­ное зазем­ление, но на худой конец сой­дет и батарея. Выход тран­сфор­матора соеди­няют со вхо­дом при­емни­ка коак­сиаль­ным кабелем. Это, безус­ловно, сур­рогат­ная антенна, но на нее уже что‑то мож­но ловить, вплоть до ави­адиапа­зона.

Ес­ли есть воз­можность натянуть пол­ноцен­ный диполь, надо, конеч­но, так и сде­лать, резуль­тат будет луч­ше. А если воз­можнос­ти натянуть даже сур­рогат­ную антенну нет, мож­но сде­лать ра­моч­ную и помес­тить ее, ска­жем, на бал­кон. Работа­ет она очень даже неп­лохо, если не забирать­ся выше 40 м.

НЕСКОЛЬКО СОВЕТОВ НАПОСЛЕДОК

Прис­тупая к изу­чению КВ‑эфи­ра, сле­дует пом­нить, что качес­тво ради­опри­ема силь­но зависит от сос­тояния ионос­феры, а зна­чит, и от вре­мени суток, вре­мени года и сол­нечной активнос­ти. Так, днем хорошо слыш­но на 25 м и выше, вечером ожи­вают диапа­зоны 31 и 41 м, бли­же к ночи 49 м, а ночью мож­но услы­шать и сред­ние вол­ны.

Пред­став­ленная конс­трук­ция работа­ет в диапа­зоне 5800–20 000 кГц, одна­ко это обус­ловле­но лишь вход­ным филь­тром. Нич­то не меша­ет под­клю­чить к ней маг­нитную антенну и спус­тить­ся на длин­ные вол­ны или, нап­ротив, под­клю­чить соот­ветс­тву­ющий кон­тур и слу­шать ави­адиапа­зон. При этом даже схе­мотех­нику менять не понадо­бит­ся.

Читайте ещё больше платных статей бесплатно: https://t.me/hacker_frei