Stand alone SDR (Software Define Radio) Receiver experiment #1

Posting ini adalah satu dari beberapa bagian eksperiment saya dengan SDR (Software Define Radio) dengan beberapa spesifikasi minimum, khususnya standa alone SDR. Saya mencoba membuat “stand alone SDR” dengan chips microcontroller yang murah dan minim fitur untuk¬† menghindari biaya yang tinggi bila menggunakan IC FPGA (Field Programmable Gate Array) atau IC DSP (Digital Signal Processing). Untuk teman-teman yang sudah pernah melakukan atau bergerak ke arah ini mohon masukan dan sharing nya ūüôā

Sekilas mengenai SDR

SDR adalah suatu system radio dimana komponen-komponennya yang biasanya di bangun oleh perangkat keras (mixer, filter, modulator, demodulator amplifier dll) digantikan fungsinya oleh perangkat lunak dalam hal ini PC (personal computer) atau embedded system (microcontroller, DSP dll).

SDR basic #1

Penerapan SDR bisa dilakukan dengan banyak cara dan kombinasi, pada blok diagramn diatas bisa di jelaskan sbb:

  • freq carrief fc yang telah melalui band pass filter (BPF) di umpankan ke parallel mixer (quadrature mixer).
  • pada mixer sebelah bawah sinyal sinus dari oscillator lokal dicampurkan dengan fc
  • pada mixer sebelah atas sinyal cosinus (sinyal sinus dari osilator lokal dengan delay 90′) dicampurkan dengan fc
  • sinyal hasil mixer dilewatkan low pass filer (LPF) sebelum diconversi oleh analog to digital converter (ADC)
  • keluaran mixer sebelah atas menghasilkan in-phase (It)
  • keluaran mixer sebelah bawah menghasilkan quadrature (Qt)

Pada SDR yang menggunakan PC LPF dan ADC sudah tercakup dalam sound card PC.

Salah satu quadtrature mixer yang populer dan cukup banyak di gunakan adalah Tayloe Detector yang didesain oleh Dan Tayloe¬† N7VE. Mixer ini mempunyai desain yang sangat innovative dan menarik juga “murah”.

Tayloe Detector

Pada diagram diatas switch berputar dengan kecepatan yang sama dengan fc, sehingga setiap kapasitor terisi sample sinyal pada setiap putaran. Sinyal phasa 0′ dan 180′ di jumlahkan untuk memberi nilai I dan penjumlahan sinyap phasa 90′ dan 270′ memberi nilai Q.

Tayloe Detector

Pada diagram diatas terlihat fc di umpankan ke IC analog switch yang di drive oleh frekuensi dari osilator lokal yang sebelumnya dibagi empat oleh IC 74AC74 (D Flipflop). Keluaran dari IC analog switch disample and hold dengan rangkain R-C lalu di jumlahkan 0′ + 180′ dan 90′ + 270′ menjadi sinyal I dan Q.

Penerapan teknik lain SDR pada system radio dapat saja dilakukan dan biasanya sangat tergantung pada kekuatan olah cpu/processor/controller yang menjalankan software SDR tersebut, juga kecepatan module konversi analog ke digital.

Informasi lebih detil mengenai konsep dasar SDR bisa dibaca pada link berikut
http://www.arrl.org/files/file/Technology/tis/info/pdf/020708qex013.pdf

Implementasi SDR dengan menggunakan slow speed ADC dan low cost microcontroller

blok diagram desain #1

spesifikasi:

  • Atmega8 mikrokontroller 8 bit dengan variant 16-20MIPS.
  • 35Khz 8 bit ADC
  • FST3253
  • 74AC74
  • 14-16¬† MHz PLL or DDS (conver 3.5-4.0 Mhz)
  • LM358
  • MMIC SGA2286
  • 5th Order BPF

cara kerja:

  • Sinyal dari antenna difilter oleh BPF (Band Pass Filter)
  • MMIC SGA2286 menguatkan sinyal keluaran dari BPF, penguat ini bisa dikaskada untuk mendapatkan penguatkan yang diharapkan
  • FST3253 berfungsi sebagai quadrature mixer yang diberi sinyal clock dari DDS/PLL dengan frequency 4 kali frequency yang ingin ditala setelah sebelumnya di bagi oleh 74AC74
  • Sinyal I dan Q dari quadtratur mixer di filter oleh LPF (Low Pass Filter)¬† lalu diperkuat oleh LM358
  • Sinyal I dan Q yang telah di perkuat kemudian di convert menjadi besaran digital oleh ADC0831, kecepatan sample dilakukan antara 12-24Khz.
  • sinyal yang telah konversi diolah pada mikrokontroller lalu kemudian di keluarkan kembali melalui R2R DAC yang kemudian diolah lebih lanjut oleh penguat sinyal suara

bersambung..

Advertisements

30W Digital RF Power Meter AD8307 + Atmega8

Eksperimen dengan RF (Radio Frequency) tidak lepas dari instrument pengukur daya. Baik untuk sekedar mengukur daya pancar, kuat penerimaan (RSSI) atau bahkan pengaturan daya osilator lokal untuk diumpankan ke mixer.

Uraian berikut saya share eksperiment dalam membuat sendiri alat ukur daya RF yang saya kumpulkan informasi dan rangkaiannya dari berbagai sumber di internet. Rangkaian yang digunakan adalah umum dipakai untuk mengukur daya RF berintikan sebuah IC AD8307,  yang saya kombinasikan dengan  IC microcontroller Atmega8.  Rangkaian pengukur ini di desain untuk dapat mengukur daya RF hingga 30 watt.

Sekilas Tentang AD8307
IC AD8307 adalah sebuah logarithmic amplifier yang mampu bekerja dengan baik hingga pada frekwensi 500MHz.
Perhatikan gambar berikut.

AD8307 basic

Masukan daya RF -75dBm hingga +16dBm memberikan keluaran slope (25mV/dB) yang linier dari kira-kira 0.5Vdc hingga 2.5vdc. Pada penerapan kali ini saya batasi hanya di -70dBm s/d +10dBm (0.1nW s/d 10mW).

Aplikasi AD8307
Karena input ADC pada microkontroller menggunakan internal reference sebesar 2.56V pada skala maksimum maka diperlukan attenuator berupa resistor ladder terhadap masukan daya rf sebelum diumpankan kedalam ADC, bila kita ingin membaca daya RF yang lebih besar dari 10mW.  Perhatikan gambar berikut:

30W scale conversion

Sebuah rangkaian ladder dari beberapa resistor membentuk pembagi tegangan dari aktual tegangan pada dummy load (50 Ohm = 30buah 1K5 Ohm di parallel). Dengan mengasumsikan bahwa daya 30Watt akan memberikan keluaran 2.5V pada keluaran IC AD8307 maka diperlukan kombinasi nilai resistor seperti diatas (lihat juga tabel perhitungan berikut)

equation

Dengan menggunakan formula diatas berhasil di buat table map untuk membantu perhitungan ADC di dalam mikrokontroler (lihat map pada source code).  Untuk rangkaian LCD bisa menggunakan rangkaian standard (bisa mengikuti pin config pada source code atau di sesuaikan, hanya pada program masukan ADC digunakan pin ADC 5.

AD8307 + Dummy Load (30x1K5)

RF Power Meter

RF Power Meter

RF Power Meter PCB

Dummy Load at PCB

Source Code

‘*******************************************************************************
‘ ATMega8
‘ 16×2 LCD
‘*******************************************************************************
$regfile = “m8def.dat”
$crystal = 8000000

$swstack = 64
$hwstack = 48
$framesize = 64

‘*******************************************************************************
‘ config pin
‘*******************************************************************************

Config Lcdmode = Port
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.7 , Rs = Portb.6
Config Lcd = 16 * 2

Config Adc = Single , Prescaler = Auto , Reference = Internal

‘*******************************************************************************
‘ constant
‘*******************************************************************************

‘*******************************************************************************
‘ Variable
‘*******************************************************************************

Dim Vadc As Word
Dim Dbm As Single
Dim Watt As Single
Dim Sdbm As String * 6
Dim Swatt As String * 6
Dim B As Byte
Dim I As Integer
Dim W As Word

‘*******************************************************************************
‘ main program
‘*******************************************************************************
Initialization:

Init:
   Cls : Cursor Off
¬†¬† Locate 1 , 1 : Lcd ” RF Power Meter “
¬†¬† Locate 2 , 1 : Lcd ” jalapindai.com “

   Waitms 1000

   Cls
¬†¬† Locate 1 , 1 : Lcd “dBm :¬†¬†¬†¬†¬†¬†¬† dBm”
¬†¬† Locate 2 , 1 : Lcd “Watt:¬†¬†¬†¬†¬†¬†¬†¬† mW”

   Enable Adc
   Start Adc

   Do
      Vadc = Getadc(5)
      If Vadc < 200 Then
¬†¬†¬†¬†¬†¬†¬†¬† Locate 1 , 6 : Lcd “<-35.23”
¬†¬†¬†¬†¬†¬†¬†¬† Locate 2 , 6 : Lcd “<0.00030”
      End If

      If Vadc > 1000 Then
¬†¬†¬†¬†¬†¬†¬†¬† Locate 1 , 6 : Lcd “>44.77”
¬†¬†¬†¬†¬†¬†¬†¬† Locate 2 , 6 : Lcd “<30000”
      End If

      If Vadc >= 200 And Vadc <= 1000 Then
         Vadc = Vadc Р200
         Dbm = Lookup(vadc , Logdata)
         Sdbm = Str(dbm)
         Locate 1 , 6 : Lcd Mid(sdbm , 1 , 7)
         Dbm = Dbm / 10
         Watt = 10 ^ Dbm
         Swatt = Str(watt)
         Locate 2 , 6 : Lcd Mid(swatt , 1 , 7)
      End If

      Waitms 500
   Loop

End

Logdata:
data -35.23!,-35.13!,-35.03!,-34.93!,-34.83!,-34.73!,-34.63!,-34.53!,-34.43!,-34.33!,
data -34.23!,-34.13!,-34.03!,-33.93!,-33.83!,-33.73!,-33.63!,-33.53!,-33.43!,-33.33!,
data -33.23!,-33.13!,-33.03!,-32.93!,-32.83!,-32.73!,-32.63!,-32.53!,-32.43!,-32.33!,
data -32.23!,-32.13!,-32.03!,-31.93!,-31.83!,-31.73!,-31.63!,-31.53!,-31.43!,-31.33!,
data -31.23!,-31.13!,-31.03!,-30.93!,-30.83!,-30.73!,-30.63!,-30.53!,-30.43!,-30.33!,
data -30.23!,-30.13!,-30.03!,-29.93!,-29.83!,-29.73!,-29.63!,-29.53!,-29.43!,-29.33!,
data -29.23!,-29.13!,-29.03!,-28.93!,-28.83!,-28.73!,-28.63!,-28.53!,-28.43!,-28.33!,
data -28.23!,-28.13!,-28.03!,-27.93!,-27.83!,-27.73!,-27.63!,-27.53!,-27.43!,-27.33!,
data -27.23!,-27.13!,-27.03!,-26.93!,-26.83!,-26.73!,-26.63!,-26.53!,-26.43!,-26.33!,
data -26.23!,-26.13!,-26.03!,-25.93!,-25.83!,-25.73!,-25.63!,-25.53!,-25.43!,-25.33!,
data -25.23!,-25.13!,-25.03!,-24.93!,-24.83!,-24.73!,-24.63!,-24.53!,-24.43!,-24.33!,
data -24.23!,-24.13!,-24.03!,-23.93!,-23.83!,-23.73!,-23.63!,-23.53!,-23.43!,-23.33!,
data -23.23!,-23.13!,-23.03!,-22.93!,-22.83!,-22.73!,-22.63!,-22.53!,-22.43!,-22.33!,
data -22.23!,-22.13!,-22.03!,-21.93!,-21.83!,-21.73!,-21.63!,-21.53!,-21.43!,-21.33!,
data -21.23!,-21.13!,-21.03!,-20.93!,-20.83!,-20.73!,-20.63!,-20.53!,-20.43!,-20.33!,
data -20.23!,-20.13!,-20.03!,-19.93!,-19.83!,-19.73!,-19.63!,-19.53!,-19.43!,-19.33!,
data -19.23!,-19.13!,-19.03!,-18.93!,-18.83!,-18.73!,-18.63!,-18.53!,-18.43!,-18.33!,
data -18.23!,-18.13!,-18.03!,-17.93!,-17.83!,-17.73!,-17.63!,-17.53!,-17.43!,-17.33!,
data -17.23!,-17.13!,-17.03!,-16.93!,-16.83!,-16.73!,-16.63!,-16.53!,-16.43!,-16.33!,
data -16.23!,-16.13!,-16.03!,-15.93!,-15.83!,-15.73!,-15.63!,-15.53!,-15.43!,-15.33!,
data -15.23!,-15.13!,-15.03!,-14.93!,-14.83!,-14.73!,-14.63!,-14.53!,-14.43!,-14.33!,
data -14.23!,-14.13!,-14.03!,-13.93!,-13.83!,-13.73!,-13.63!,-13.53!,-13.43!,-13.33!,
data -13.23!,-13.13!,-13.03!,-12.93!,-12.83!,-12.73!,-12.63!,-12.53!,-12.43!,-12.33!,
data -12.23!,-12.13!,-12.03!,-11.93!,-11.83!,-11.73!,-11.63!,-11.53!,-11.43!,-11.33!,
data -11.23!,-11.13!,-11.03!,-10.93!,-10.83!,-10.73!,-10.63!,-10.53!,-10.43!,-10.33!,
data -10.23!,-10.13!,-10.03!,-9.93!,-9.83!,-9.73!,-9.63!,-9.53!,-9.43!,-9.33!,-9.23!,
data -9.13!,-9.03!,-8.93!,-8.83!,-8.73!,-8.63!,-8.53!,-8.43!,-8.33!,-8.23!,
data -8.13!,-8.03!,-7.93!,-7.83!,-7.73!,-7.63!,-7.53!,-7.43!,-7.33!,-7.23!,
data -7.13!,-7.03!,-6.93!,-6.83!,-6.73!,-6.63!,-6.53!,-6.43!,-6.33!,-6.23!,
data -6.13!,-6.03!,-5.93!,-5.83!,-5.73!,-5.63!,-5.53!,-5.43!,-5.33!,-5.23!,
data -5.13!,-5.03!,-4.93!,-4.83!,-4.73!,-4.63!,-4.53!,-4.43!,-4.33!,-4.23!,
data -4.13!,-4.03!,-3.93!,-3.83!,-3.73!,-3.63!,-3.53!,-3.43!,-3.33!,-3.23!,
data -3.13!,-3.03!,-2.93!,-2.83!,-2.73!,-2.63!,-2.53!,-2.43!,-2.33!,-2.23!,
data -2.13!,-2.03!,-1.93!,-1.83!,-1.73!,-1.63!,-1.53!,-1.43!,-1.33!,-1.23!,
data -1.13!,-1.03!,-0.93!,-0.83!,-0.73!,-0.63!,-0.53!,-0.43!,-0.33!,-0.23!,
data -0.13!,-0.03!,0.07!,0.17!,0.27!,0.37!,0.47!,0.57!,0.67!,0.77!,
data 0.87!,0.97!,1.07!,1.17!,1.27!,1.37!,1.47!,1.57!,1.67!,1.77!,
data 1.87!,1.97!,2.07!,2.17!,2.27!,2.37!,2.47!,2.57!,2.67!,2.77!,
data 2.87!,2.97!,3.07!,3.17!,3.27!,3.37!,3.47!,3.57!,3.67!,3.77!,
data 3.87!,3.97!,4.07!,4.17!,4.27!,4.37!,4.47!,4.57!,4.67!,4.77!,
data 4.87!,4.97!,5.07!,5.17!,5.27!,5.37!,5.47!,5.57!,5.67!,5.77!,
data 5.87!,5.97!,6.07!,6.17!,6.27!,6.37!,6.47!,6.57!,6.67!,6.77!,
data 6.87!,6.97!,7.07!,7.17!,7.27!,7.37!,7.47!,7.57!,7.67!,7.77!,
data 7.87!,7.97!,8.07!,8.17!,8.27!,8.37!,8.47!,8.57!,8.67!,8.77!,
data 8.87!,8.97!,9.07!,9.17!,9.27!,9.37!,9.47!,9.57!,9.67!,9.77!,
data 9.87!,9.97!,10.07!,10.17!,10.27!,10.37!,10.47!,10.57!,10.67!,10.77!,
data 10.87!,10.97!,11.07!,11.17!,11.27!,11.37!,11.47!,11.57!,11.67!,11.77!,
data 11.87!,11.97!,12.07!,12.17!,12.27!,12.37!,12.47!,12.57!,12.67!,12.77!,
data 12.87!,12.97!,13.07!,13.17!,13.27!,13.37!,13.47!,13.57!,13.67!,13.77!,
data 13.87!,13.97!,14.07!,14.17!,14.27!,14.37!,14.47!,14.57!,14.67!,14.77!,
data 14.87!,14.97!,15.07!,15.17!,15.27!,15.37!,15.47!,15.57!,15.67!,15.77!,
data 15.87!,15.97!,16.07!,16.17!,16.27!,16.37!,16.47!,16.57!,16.67!,16.77!,
data 16.87!,16.97!,17.07!,17.17!,17.27!,17.37!,17.47!,17.57!,17.67!,17.77!,
data 17.87!,17.97!,18.07!,18.17!,18.27!,18.37!,18.47!,18.57!,18.67!,18.77!,
data 18.87!,18.97!,19.07!,19.17!,19.27!,19.37!,19.47!,19.57!,19.67!,19.77!,
data 19.87!,19.97!,20.07!,20.17!,20.27!,20.37!,20.47!,20.57!,20.67!,20.77!,
data 20.87!,20.97!,21.07!,21.17!,21.27!,21.37!,21.47!,21.57!,21.67!,21.77!,
data 21.87!,21.97!,22.07!,22.17!,22.27!,22.37!,22.47!,22.57!,22.67!,22.77!,
data 22.87!,22.97!,23.07!,23.17!,23.27!,23.37!,23.47!,23.57!,23.67!,23.77!,
data 23.87!,23.97!,24.07!,24.17!,24.27!,24.37!,24.47!,24.57!,24.67!,24.77!,
data 24.87!,24.97!,25.07!,25.17!,25.27!,25.37!,25.47!,25.57!,25.67!,25.77!,
data 25.87!,25.97!,26.07!,26.17!,26.27!,26.37!,26.47!,26.57!,26.67!,26.77!,
data 26.87!,26.97!,27.07!,27.17!,27.27!,27.37!,27.47!,27.57!,27.67!,27.77!,
data 27.87!,27.97!,28.07!,28.17!,28.27!,28.37!,28.47!,28.57!,28.67!,28.77!,
data 28.87!,28.97!,29.07!,29.17!,29.27!,29.37!,29.47!,29.57!,29.67!,29.77!,
data 29.87!,29.97!,30.07!,30.17!,30.27!,30.37!,30.47!,30.57!,30.67!,30.77!,
data 30.87!,30.97!,31.07!,31.17!,31.27!,31.37!,31.47!,31.57!,31.67!,31.77!,
data 31.87!,31.97!,32.07!,32.17!,32.27!,32.37!,32.47!,32.57!,32.67!,32.77!,
data 32.87!,32.97!,33.07!,33.17!,33.27!,33.37!,33.47!,33.57!,33.67!,33.77!,
data 33.87!,33.97!,34.07!,34.17!,34.27!,34.37!,34.47!,34.57!,34.67!,34.77!,
data 34.87!,34.97!,35.07!,35.17!,35.27!,35.37!,35.47!,35.57!,35.67!,35.77!,
data 35.87!,35.97!,36.07!,36.17!,36.27!,36.37!,36.47!,36.57!,36.67!,36.77!,
data 36.87!,36.97!,37.07!,37.17!,37.27!,37.37!,37.47!,37.57!,37.67!,37.77!,
data 37.87!,37.97!,38.07!,38.17!,38.27!,38.37!,38.47!,38.57!,38.67!,38.77!,
data 38.87!,38.97!,39.07!,39.17!,39.27!,39.37!,39.47!,39.57!,39.67!,39.77!,
data 39.87!,39.97!,40.07!,40.17!,40.27!,40.37!,40.47!,40.57!,40.67!,40.77!,
data 40.87!,40.97!,41.07!,41.17!,41.27!,41.37!,41.47!,41.57!,41.67!,41.77!,
data 41.87!,41.97!,42.07!,42.17!,42.27!,42.37!,42.47!,42.57!,42.67!,42.77!,
data 42.87!,42.97!,43.07!,43.17!,43.27!,43.37!,43.47!,43.57!,43.67!,43.77!,
data 43.87!,43.97!,44.07!,44.17!,44.27!,44.37!,44.47!,44.57!,44.67!,44.77!

referensi:  http://www.radiolocman.com/shem/schematics.html?di=55369
http://hem.passagen.se/communication/watt2.html

semoga bermanfaat
Dian Kurniawan

Wide Band Receiver Antenna Amplifier

Seorang teman mengeluhkan bahwa dia tidak dapat melakukan penerimaan siaran radio Rodja (756 KHz – AM) dengan baik, padahal beliau sangat ingin bisa mendengarkan siaran radio tersebut. Lalu seorang teman yang lain mengeluhkan lemahnya sinyal yang diterima pada pesawat televisi dimobilnya. Juga beberapa rekan lain yang memiliki keluhan yang hampir sama.

Saat ini isyarat radio di udara kita memang cukup polutan. Noise dari berbagai sumber akibat kemajuan teknologi tidak dapat dihindarkan. Rasanya hampir seperti tidak mungkin bila menginginkan membangun radio kristal seperti 30 tahun lalu tanpa harus berjuang melawan noise.

Sebuah penguat pita lebar (wide band) dengan hasil baik dengan tingkat noise serta keterbatasan pilihan desain (saya tidak dapat memastikan device, konektor, impedansi dan lain-lain kondisi perangkat yang berbagai rupa) akhirnya jatuh pada chips MMIC SGA-2286. Sebuah chips yang dapat beroperasi dari DC hingga 5GHz (penguatan 15db pada 500 Mhz), yang bahkan dapat di cascade dengan sangat begitu mudah untuk mendapatkan kelipatan penguatan , dengan noise yang rendah (3.2 db pada 500MHz)

Perhatikan skema berikut:

MMIC SGA2286

berikut adalah aplikasi pada sebuah antenna loop AM dimana akhirnya rekan saya berhasil mendengarkan radio Rodja dengan baik.

AM antenna loop amplifier

Rangkaian sederhana dengan sebuah battery 9V sebagai sumber daya berhasil memperkuat isyarat radio.  Dengan menggunakan konsep yang sama di terapkan juga untuk berbagai kebutuhan.

Semoga bermanfaat
Dian Kurniawan