Difference between revisions of "USRP: ClockTamer Control Protocol"

From OnnoWiki
Jump to navigation Jump to search
 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Kita dapat mengontrol ClockTamer melalui [[USB]] atau [[SPI]]. Jika tersambung ke [[USB]], ClockTamer akan mengemulasi serial port, oleh karenanya kita dapat mengontrolnya menggunakan terminal emulator, baik dari script atau program. Sambungan [[SPI]] digunakan jika ClockTamer tersambung ke USRP dan sangat berguna jika kita tidak ingin menggunakan dua kabel USB dari USRP ke komputer yang kita gunakan.
 
Kita dapat mengontrol ClockTamer melalui [[USB]] atau [[SPI]]. Jika tersambung ke [[USB]], ClockTamer akan mengemulasi serial port, oleh karenanya kita dapat mengontrolnya menggunakan terminal emulator, baik dari script atau program. Sambungan [[SPI]] digunakan jika ClockTamer tersambung ke USRP dan sangat berguna jika kita tidak ingin menggunakan dua kabel USB dari USRP ke komputer yang kita gunakan.
 +
 +
==Komunikasi dengan ClockTamer==
 +
 +
Keberadaan ClockTamer dapat dilihat melalui perintah
 +
 +
ls /dev/tty*
 +
 +
harusnya ada device ClockTamer
 +
 +
/dev/ttyACM0
  
 
ClockTamer menggunakan protokol berbasis text dan pada dasarnya sama baik itu untuk interface ClockTamer [[USB]] maupun [[SPI]]. Protokol versi USB dan SPI berbeda hanya pada cara jawaban dari ClockTamer di kirim. Jika menggunakan sambungan SPI kita perlu poll untuk memperoleh jawaban, seperti di jelaskan di halaman interface SPI, di Linux sebelum kita melakukan pertukaran data sebaiknya kita matikan echo dari ClockTamer serial device. Melalui command line kita dapat mematikan melalui perintah berikut,
 
ClockTamer menggunakan protokol berbasis text dan pada dasarnya sama baik itu untuk interface ClockTamer [[USB]] maupun [[SPI]]. Protokol versi USB dan SPI berbeda hanya pada cara jawaban dari ClockTamer di kirim. Jika menggunakan sambungan SPI kita perlu poll untuk memperoleh jawaban, seperti di jelaskan di halaman interface SPI, di Linux sebelum kita melakukan pertukaran data sebaiknya kita matikan echo dari ClockTamer serial device. Melalui command line kita dapat mematikan melalui perintah berikut,
Line 7: Line 17:
 
Dimana /dev/ttyACM0 adalah ClockTamer serial device file.
 
Dimana /dev/ttyACM0 adalah ClockTamer serial device file.
  
Pendek kata, protokol ClockTamer mempunya fitur:
+
Install screen
 +
 
 +
sudo apt-get install screen
 +
 
 +
Komunikasi menggunakan perintah
 +
 
 +
sudo screen /dev/ttyACM0 115200,cs8,-ixon,-ixoff
 +
 
 +
Tekan
 +
 
 +
ENTER
 +
 
 +
Akan keluar
 +
 
 +
CMD ERROR
 +
 
 +
berarti kita berhasil berkomunikasi dengan ClockTamer
 +
 
 +
==Fitur Protokol ClockTamer==
 +
 
 +
Protokol ClockTamer mempunya fitur:
  
 
* '''Bekerja dengan pola master / slave.''' Dengan ClockTamer sebagai slave. Hal ini berarti ClockTamer hanya akan menjawab perintah yang dikirim oleh host dan tidak dalam memberikan perintah atau bertanya ke host.
 
* '''Bekerja dengan pola master / slave.''' Dengan ClockTamer sebagai slave. Hal ini berarti ClockTamer hanya akan menjawab perintah yang dikirim oleh host dan tidak dalam memberikan perintah atau bertanya ke host.
 
* Semua '''Perintah dan Jawaban dalam string ASCII, ditutup dengan CR/LF'''. Hal ini menyebabkan sangat mudah untuk memberikan perintah ke ClockTamer dengan mode interaktif melalui program terminal emulator.
 
* Semua '''Perintah dan Jawaban dalam string ASCII, ditutup dengan CR/LF'''. Hal ini menyebabkan sangat mudah untuk memberikan perintah ke ClockTamer dengan mode interaktif melalui program terminal emulator.
* Every command from host is followed by answer from ClockTamer, i.e. protocol is synchronous. It's like in SD/MMC - if you've sent a command you should wait until answer is received before issuing next command. If you haven't received answer after some long time, something went wrong and it's a bug. It's recommended to reset ClockTamer and try again. And don't forget to report bugs here!
+
* '''Setiap perintah dari host akan di ikuti oleh jawaban dari ClockTamer''', artinya protokol yang digunakan sifatnya sinkron (synchronous). Kira-kira sama dengan SD/MMC - jika kita mengirim command maka kita harus menunggu sampai kita menerima jawaban. Jika tidak ada jawaban untuk jangka waktu yang lama, maka kemungkinan besar ada sesuatu yang salah dan itu adalah bug. Sangat di rekomendasikan untuk me-reset ClockTamer dan mencoba lagi. Jangan lupa untuk menlaporkan bug tersebut.
  
==For impatient...==
+
==Untuk mereka yang Tidak Sabar==
  
 
Jika kita ingin langsung menggunakan ClockTamer tanpa perlu mengetahui berbagai detail yang ada, kita minimal membutuhkan dua (2) perintah berikut,
 
Jika kita ingin langsung menggunakan ClockTamer tanpa perlu mengetahui berbagai detail yang ada, kita minimal membutuhkan dua (2) perintah berikut,
Line 22: Line 52:
 
dimana kita harus mengganti,
 
dimana kita harus mengganti,
  
* osc_freq dengan frekuensi (Hz) dari (VC)TCXO yang terpasang di ClockTamer, contoh 20000000. Perlu di catat bahwa kita dapat mengkalibrasi ClockTamer dengan mengubah sedikit osc_freq. Baca ClockTamer calibration untuk instruksi lebih detail.
+
* osc_freq dengan frekuensi (Hz) dari (VC)TCXO yang terpasang di ClockTamer, contoh 20000000. Perlu di catat bahwa kita dapat mengkalibrasi ClockTamer dengan mengubah sedikit osc_freq. [[USRP: Kalibrasi ClockTamer | Baca ClockTamer calibration untuk instruksi lebih detail]].
 
* out_freq dengan frekuensi output yang diinginkan (Hz).  
 
* out_freq dengan frekuensi output yang diinginkan (Hz).  
 +
 +
Contoh
 +
 +
SET,,OSC,20000000
 +
SET,,OUT,52000000
  
 
Jika kita sudah puas dengan settingan yang ada, kita dapat menyimpan parameter tersebut ke [[EEPROM]] dan digunakan sesudah reboot:
 
Jika kita sudah puas dengan settingan yang ada, kita dapat menyimpan parameter tersebut ke [[EEPROM]] dan digunakan sesudah reboot:
Line 37: Line 72:
 
Dimana
 
Dimana
  
  CMD - three letter command class. Must be non empty string.
+
  CMD - kelas command tiga huruf, harus berupa string yang tidak kosong.
 
+
  TYP - command tipe target tiga huruf. Dapat berupa string yang kosong, walaupun DET dan value ada isinya (misalnya, SET,,OSC,10000200).
  TYP - three letter command target type. May be empty string, even if DET or value is present (e.g. SET,,OSC,10000200).
+
  DET - command detail target tiga huruf. Dapat berupa string kosong, walaupun value ada. (e.g. PIN,LED,,0).
 
+
  value - desimal atau hexadesimal value. Value desimal mulai digit (contoh, 54781), Value hexadecimal mulai dengan huruf 'x' (contoh, x01af3d).
  DET - three letter command target details. May be empty string, even if value is present (e.g. PIN,LED,,0).
 
 
 
  value - decimal or hexadecimal value. Decimal values start with a digit (e.g. 54781), hexadecimal values start with 'x' letter (e.g. x01af3d).
 
  
 
Tergantung pada kelas command, perintah yang belakangan dapat di acuhkan sama sekali, seperti:
 
Tergantung pada kelas command, perintah yang belakangan dapat di acuhkan sama sekali, seperti:
Line 49: Line 81:
 
  LDE      - only CMD is present
 
  LDE      - only CMD is present
 
  INF,,OSC  - CMD, TYP and DET are present with TYP as empty string
 
  INF,,OSC  - CMD, TYP and DET are present with TYP as empty string
 +
INF,,OUT
  
 
Format jawaban adalah sebagai berikut:
 
Format jawaban adalah sebagai berikut:
  
    If command does not require a value to be returned, then answer is
+
* Jika command tidak memberikan value, maka jawaban adalah
  
 
  OK<CR><LF>
 
  OK<CR><LF>
  
    If command returns a value, answer has structure same as command:
+
* Jika command memberikan value, jawaban akan mengunakan struktur yang sama dengan command yaitu
  
    CMD[,TYP[,DET[,value]]]<CR><LF>
+
CMD[,TYP[,DET[,value]]]<CR><LF>
  
 
     where CMD, TYP and DET repeats the respective fields in the command.  
 
     where CMD, TYP and DET repeats the respective fields in the command.  
  
    If command can't be parsed, error is returned:
+
* Jika command tidak dapat di parsing maka akan mengeluarkan error sebagai berikut:
  
 
     SYNTAX ERROR<CR><LF>
 
     SYNTAX ERROR<CR><LF>
  
Command classes
+
==Command classes==
  
==Register ("REG")==
+
===Register ("REG")===
  
Writes value data to appropriate registers of chips via MicroWire bus. Using this commands you can control every aspect of clock generation in manual mode. Allowed target type and detail combinations:
+
Write data ke register di chip yang sesuai MicroWire bus. Menggunakan cpmmand ini kita dapat mengontrol setiap aspek dari pembangkitan clock dalam mode manual. Tipe target dan detail kombinasi yang di ijinkan adalah:
  
 
  TYP DET value Description
 
  TYP DET value Description
Line 77: Line 110:
 
  DAC <empty> 16-24bit value Write to DAC (Digital-to-Analog Converter) chip registers (if DAC is present)
 
  DAC <empty> 16-24bit value Write to DAC (Digital-to-Analog Converter) chip registers (if DAC is present)
  
==Pin ("PIN")==
+
===Pin ("PIN")===
 +
 
 +
Kontrol pin dari chip. Tipe target dan kombinasi detail yang di ijinkan adalah:
  
Controls pins of chips. Allowed target type and detail combinations:
 
 
  TYP DET value Description
 
  TYP DET value Description
 
  LMK ENB 0/1 ENABLE pin of LMK (clock distributor) chip.
 
  LMK ENB 0/1 ENABLE pin of LMK (clock distributor) chip.
Line 86: Line 120:
 
  LED <empty> 0/1 Turn LED on/off.
 
  LED <empty> 0/1 Turn LED on/off.
  
==Set ("SET")==
+
===Set ("SET")===
  
 
Easy to use setting of output frequency, setting oscillator calibration value, changing algorithms internal variables. The most useful target type and detail combinations:
 
Easy to use setting of output frequency, setting oscillator calibration value, changing algorithms internal variables. The most useful target type and detail combinations:
Line 100: Line 134:
 
  GPS AUT 0/1 If set to 1 ClockTamer will keep clock synchronized to GPS.
 
  GPS AUT 0/1 If set to 1 ClockTamer will keep clock synchronized to GPS.
  
==Save ("SAV")==
+
===Save ("SAV")===
  
NOT IMPLEMENTED YET
+
BELUM DI IMPLEMENTASIKAN
  
==Defaults ("DEF")==
+
===Defaults ("DEF")===
  
NOT IMPLEMENTED YET
+
BELUM DI IMPLEMENTASIKAN
  
==Info ("INF")==
+
===Info ("INF")===
  
 
Get value of the selected variable. Every variable (specified in DET), usable with SET has its INF counterpart. There is no NFO command with empty DET, though.
 
Get value of the selected variable. Every variable (specified in DET), usable with SET has its INF counterpart. There is no NFO command with empty DET, though.
Line 124: Line 158:
 
  GPS MIN <empty> Debug output.
 
  GPS MIN <empty> Debug output.
  
==Version ("VER")==
+
===Version ("VER")===
  
 
Get firmware and protocol versions.
 
Get firmware and protocol versions.
Line 132: Line 166:
 
  ClockTamer SW=1.23 API=1
 
  ClockTamer SW=1.23 API=1
  
==Hardware information ("HWI")==
+
===Hardware information ("HWI")===
  
 
Get detailed information about installed hardware options. This information is stored in EEPROM and may be altered only if ClockTamer is flashed over SPI. Flashing over USB can not change EEPROM data.
 
Get detailed information about installed hardware options. This information is stored in EEPROM and may be altered only if ClockTamer is flashed over SPI. Flashing over USB can not change EEPROM data.
Line 150: Line 184:
 
  LMX=2080 LMK=1010 OSC=20 GPS
 
  LMX=2080 LMK=1010 OSC=20 GPS
  
==Reset ("RST")==
+
===Reset ("RST")===
  
 
Sends reset command to LMK and LMX and clears variables in MCU RAM, but does not affect EEPROM. To start output generation after RST you can execute "SET,,OSC,<val>", "SET,,OUT,<val>" or "LDE"+"SET".
 
Sends reset command to LMK and LMX and clears variables in MCU RAM, but does not affect EEPROM. To start output generation after RST you can execute "SET,,OSC,<val>", "SET,,OUT,<val>" or "LDE"+"SET".
  
==Load EEPROM ("LDE")==
+
===Load EEPROM ("LDE")===
  
 
Loads previously stored values from EEPROM to RAM. This command does not push them to LMK and LMX chips, so you should execute SET command manually.
 
Loads previously stored values from EEPROM to RAM. This command does not push them to LMK and LMX chips, so you should execute SET command manually.
Line 160: Line 194:
 
TYP, DET and value should be empty.
 
TYP, DET and value should be empty.
  
==Store EEPROM ("STE")==
+
===Store EEPROM ("STE")===
  
 
Stores all values to EEPROM. This values will be used by default after ClockTamer reboot. They can also be loaded to RAM at any time with LDE command.
 
Stores all values to EEPROM. This values will be used by default after ClockTamer reboot. They can also be loaded to RAM at any time with LDE command.
Line 179: Line 213:
 
  AutoGPSSync Continuously synchronize clock to GPS.
 
  AutoGPSSync Continuously synchronize clock to GPS.
  
==Outputs numbering==
+
===Outputs numbering===
  
 
ClockTamer-1.0
 
ClockTamer-1.0
Line 194: Line 228:
 
where 0,2,4,5,6 - places for U.FL connectors, 6* - a place for SMA connector. Outputs number 1 and 3 are not present on PCB. In default configuration outputs number 0 and 2 are LVDS, while 4,5,6 are LVPECL/CMOS.
 
where 0,2,4,5,6 - places for U.FL connectors, 6* - a place for SMA connector. Outputs number 1 and 3 are not present on PCB. In default configuration outputs number 0 and 2 are LVDS, while 4,5,6 are LVPECL/CMOS.
  
==ClockTamer-1.1 and ClockTamer-1.2==
+
===ClockTamer-1.1 and ClockTamer-1.2===
  
 
Outputs numbering is as shown on the picture:
 
Outputs numbering is as shown on the picture:
Line 211: Line 245:
  
 
* [[OpenBTS]]
 
* [[OpenBTS]]
 +
* [[OpenBTS: Arsitektur secara umum]]
  
 
===Persiapan===
 
===Persiapan===
Line 218: Line 253:
 
* [[USRP: Kalibrasi ClockTamer]]
 
* [[USRP: Kalibrasi ClockTamer]]
 
* [[USRP: ClockTamer Control Protocol]]
 
* [[USRP: ClockTamer Control Protocol]]
 +
* [[USRP: ClockTamer Flashing]]
 
* [[USRP: Instalasi Board]]
 
* [[USRP: Instalasi Board]]
 
* [[OpenBTS: GIT Source Code]]
 
* [[OpenBTS: GIT Source Code]]
 +
* [[USRP: Rangkaian Board USRP]]
 +
* [[OpenBTS: Tethr untuk Bencana Alam]]
 +
* [[USRP: Tip Pemesanan]]
 +
 +
===Script===
 +
 +
* [[OpenBTS: Script Membuat GNURadio 3.4.2 di Ubuntu 13.04]]
 +
* [[OpenBTS: Script Membuat OpenBTS dan yate di Ubuntu 13.04]]
 +
* [[OpenBTS: Script Membuat OpenBTS 2.8.0 di RangeNetwork Dev Kit]]
 +
* [[OpenBTS: Script Membuat OpenBTS di RangeNetwork Dev Kit]]
  
 
===OpenBTS 2.6===
 
===OpenBTS 2.6===
Line 225: Line 271:
 
* [[GNURadio]]
 
* [[GNURadio]]
 
* [[GNURadio: Ubuntu Install]]
 
* [[GNURadio: Ubuntu Install]]
* [[GNURadio: Ubuntu Install GNURadio 3.4.2]]
+
* [[GNURadio: Menggunakan UHD]]
 +
* [[GNURadio: Ubuntu Install GNURadio 3.4.2]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu Install GNURadio 3.4.2 Clock 52MHz]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu 13.04 Install GNURadio 3.4.2 Clock 52MHz]] ''NOT RECOMMENDED''
 
* [[GNURadio: Contoh Aplikasi]]
 
* [[GNURadio: Contoh Aplikasi]]
 
* [[GNURadio: Spectrum Analizer GSM]]
 
* [[GNURadio: Spectrum Analizer GSM]]
 
* [[GNURadio: Mengubah board RFX1800 menjadi RFX900]]
 
* [[GNURadio: Mengubah board RFX1800 menjadi RFX900]]
 
* [[GNURadio: Programming Untuk Pemula]]
 
* [[GNURadio: Programming Untuk Pemula]]
* [[OpenBTS: Ubuntu Install]]
+
* [[OpenBTS: Ubuntu Install]] '''RECOMMENDED'''
* [[OpenBTS: Konfigurasi]]
+
* [[OpenBTS: Ubuntu Install OpenBTS 2.6 Clock 52MHz]] '''RECOMMENDED'''
 +
* [[OpenBTS: Ubuntu 13.04 Install OpenBTS 2.6 Clock 52MHz]] ''NOT RECOMMENDED''
 +
* [[OpenBTS: Konfigurasi]] '''RECOMMENDED'''
 
* [[OpenBTS: Kalibrasi]]
 
* [[OpenBTS: Kalibrasi]]
* [[OpenBTS: Konfigurasi Asterisk untuk OpenBTS]]
+
* [[OpenBTS: Konfigurasi Asterisk untuk OpenBTS]] '''RECOMMENDED'''
 
* [[OpenBTS: Menjalankan smqueue]]
 
* [[OpenBTS: Menjalankan smqueue]]
* [[OpenBTS: Mengoperasikan BTS]]
+
* [[OpenBTS: Mengoperasikan BTS]] '''RECOMMENDED'''
 
* [[OpenBTS: Tampilan di Nokia saat pakai OpenBTS]]
 
* [[OpenBTS: Tampilan di Nokia saat pakai OpenBTS]]
 
* [[OpenBTS: Operasi 1800 MHz]]
 
* [[OpenBTS: Operasi 1800 MHz]]
Line 246: Line 297:
 
===OpenBTS 2.8===
 
===OpenBTS 2.8===
  
* [[GNURadio: Ubuntu 11.10 Install]] '''*NOT RECOMMENED*'''
+
* [[GNURadio: Ubuntu 11.10 Install]] ''NOT RECOMMENED''
* [[GNURadio: Ubuntu 11.10 instalasi menggunakan Repo]] '''NOT RECOMMENDED'''
+
* [[GNURadio: Ubuntu 11.10 instalasi menggunakan Repo]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Download GNURadio]]
 +
* [[GNURadio: Install UHD]]
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.3.0]]
 
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.3.0]]
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.4.2]]
+
* [[GNURadio: Ubuntu 12.10 Instal GNURadio 3.3.0]]
* [[GNURadio: Ubuntu 11.10 Install dari GIT GNURadio]]
+
* [[GNURadio: Ubuntu 12.10 Instal GNURadio 3.4.1]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu 12.04 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu 12.04.1 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu 12.10 Instal GNURadio 3.4.2]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 13.04 Instal GNURadio 3.4.2]] '''RECOMMENDED'''
 +
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.5.0]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.5.3.2]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 11.10 Instal GNURadio 3.6.0]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 11.10 Install dari GIT GNURadio]] ''NOT RECOMMENDED''
 +
* [[GNURadio: Ubuntu 11.10 cek USRP Daughter Board]]
 +
* [[GNURadio: UHD]] ''NOT RECOMMENDED''
 +
* [[GNURadio: UHD Image]] ''NOT RECOMMENDED''
 +
* [[GNURadio: UHD burn EEPROM RFX Board di USRP1]] ''NOT RECOMMENDED''
 +
* [[GNURadio: UHD Identifikasi Device]]
 
* [[OpenBTS: Ubuntu 11.10 Install]]
 
* [[OpenBTS: Ubuntu 11.10 Install]]
* [[OpenBTS: 2.8 dari SVN Install]] '''RECOMMENDED'''
+
* [[OpenBTS: dari GIT ttsou]]
* [[OpenBTS: 2.8 Instalasi Real Time Asterisk]]
+
* [[OpenBTS: 2.8 dari SVN Install]]
 +
* [[OpenBTS: 2.8 dari SVN Install Clock 52MHz]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 dari SVN Install Clock 52MHz di Ubuntu 12.10]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 dari SVN Install Clock 52MHz di Ubuntu 13.04]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 dari SVN 2.8.0 Install Clock 52MHz di Ubuntu 13.04]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 dari SVN Install Clock 52MHz dengan UHD tanpa GNURadio]] ''NOT RECOMMENDED''
 +
* [[OpenBTS: 2.8 Edit User di sqlite3.db]] '''RECOMMEND'''
 +
* [[OpenBTS: Yate Softswitch]] '''RECOMMENDED'''
 +
* [[OpenBTS: Yate Softswitch install Ubuntu 12.10]] '''RECOMMENDED'''
 +
* [[OpenBTS: Yate Softswitch install Ubuntu 13.04]] '''RECOMMENDED'''
 +
* [[OpenBTS: Yate Config Test]]
 +
* [[OpenBTS: 2.8 Instalasi Real Time Asterisk]] '''RECOMMENDED'''
 +
* [[OpenBTS: 2.8 Menjalankan]] '''RECOMMENDED'''
 
* [[OpenBTS: 2.8 Konfigurasi]]
 
* [[OpenBTS: 2.8 Konfigurasi]]
 +
* [[OpenBTS: 2.8 Konfigurasi Cognitive Radio Elsabagh]]
 +
* [[OpenBTS: 2.8 Konfigurasi Subscriber Registery]]
 
* [[OpenBTS: Database SQLite]]
 
* [[OpenBTS: Database SQLite]]
 +
* [[OpenBTS: Set SQLite Subscriber Registry secara manual]]
 +
* [[OpenBTS: Set SQLite parameter smqueue]]
 +
* [[OpenBTS: FreeSWITCH]]
 +
 +
===Multi OpenBTS 2.8===
 +
 +
* [[OpenBTS: Pola Multi OpenBTS]] '''RECOMMENDED'''
 +
* [[Multi OpenBTS: Catatan Konfigurasi]] '''RECOMMENDED'''
 +
* [[Multi OpenBTS: Catatan BSIC=NCC+BCC]]
 +
* [[Multi OpenBTS: Catatan Frekuensi Planning di GSM]]
 +
* [[Multi OpenBTS: Catatan BTS Color Code BCC di GSM]]
 +
* [[Multi OpenBTS: Catatan Network Color Code NCC di GSM]]
 +
* [[Multi OpenBTS: Catatan BCCH]]
 +
* [[Multi OpenBTS: Catatan Public Land Mobile Network PLMN]]
 +
 +
===OpenBTS 3.1.x===
 +
 +
* [[OpenBTS: Install UHD untuk USRP1]]
 +
* [[OpenBTS: UHD Identifikasi Device]]
 +
* [[OpenBTS: OpenBTS 3.1.3 Compile]] '''Tidak bisa untuk USRP1'''
 +
* [[OpenBTS: Yate Compile]]
  
 
===Ettus E110===
 
===Ettus E110===
  
 
* [[OpenBTS: E110 Cara Login]]
 
* [[OpenBTS: E110 Cara Login]]
* [[OpenBTS: E110 Install Image di MicroSD]]
+
* [[OpenBTS: E110 Install Image di MicroSD]] '''*RECOMMENDED*'''
 
* [[OpenBTS: E110 Cek Daughter Board]]
 
* [[OpenBTS: E110 Cek Daughter Board]]
 
* [[OpenBTS: E110 Mengubah Master Clock]]
 
* [[OpenBTS: E110 Mengubah Master Clock]]
 
* [[OpenBTS: E110 Kalibrasi Clock]]
 
* [[OpenBTS: E110 Kalibrasi Clock]]
 +
* [[OpenBTS: E110 Konfigurasi Jaringan]]
 
* [[OpenBTS: E110 Bekerja dengan opkg]]
 
* [[OpenBTS: E110 Bekerja dengan opkg]]
 +
* [[OpenBTS: E110 Instalasi iptables]]
 
* [[OpenBTS: E110 GNURadio]]
 
* [[OpenBTS: E110 GNURadio]]
 +
* [[OpenBTS: E110 Compile UHD]] ''Not Recommended''
 +
* [[OpenBTS: E110 Compile UHD dari Release Bukan git]] ''Not Recommended''
 +
* [[OpenBTS: E110 UHD burn EEPROM RFX Board]] ''Not Recommended''
 +
* [[OpenBTS: E110 Install UHD Image]] ''Not Recommended''
 
* [[OpenBTS: E110 Instalasi OpenBTS]]
 
* [[OpenBTS: E110 Instalasi OpenBTS]]
* [[OpenBTS: E110 Instalasi OpenBTS 2.6]] '''*NOT RECOMMENDED*'''
+
* [[OpenBTS: E110 Instalasi OpenBTS 2.6]] ''NOT RECOMMENDED''
 +
* [[OpenBTS: E110 Instalasi OpenBTS 2.8 untuk MultiBTS]] '''*RECOMMENDED*'''
 +
* [[OpenBTS: E110 Yate Softswitch]]
 +
 
 +
===Ettus N210===
 +
 
 +
* [[OpenBTS: N210 Instalasi GPSDO Kit]]
 +
* [[OpenBTS: N210 GNURadio]]
 +
* [[OpenBTS: N210 GNURadio 3.7.0]]
 +
* [[OpenBTS: N210 Instalasi OpenBTS]]
 +
* [[OpenBTS: N210 Instalasi Yate]]
 +
* [[OpenBTS: N210 Yate Config Test]]
 +
* [[OpenBTS: N210 Burn Firmware]]
 +
 
 +
===RangeNetworks===
 +
 
 +
* [[OpenBTS: RangeNetwork Foto]]
 +
* [[OpenBTS: RangeNetwork menggunakan USB recovery image]]
 +
* [[OpenBTS: RangeNetwork Default Setting]]
 +
* [[OpenBTS: RangeNetwork Instalasi UHD]]
 +
* [[OpenBTS: RangeNetwork Compile GNURadio UHD]]
 +
* [[OpenBTS: RangeNetwork Compile]]
 +
* [[OpenBTS: RangeNetwork Compile OpenBTS 2.8.0]]
 +
* [[OpenBTS: RangeNetwork Compile OpenBTS 3.1.3]]
 +
* [[OpenBTS: RangeNetwork Yate Compile]] '''*RECOMMENDED*'''
 +
* [[OpenBTS: RangeNetwork Web Interface]]
 +
* [[OpenBTS: RangeNetwork Trunk ke Asterisk Lain]]
 +
* [[OpenBTS: RangeNetwork Audit]]
 +
* [[VoIP: Trunk]]
 +
 
 +
===GPRS===
 +
 
 +
* [[OpenBTS: GPRS]]
 +
* [[OpenBTS: GPRS Konfigurasi]]
 +
* [[OpenBTS: GPRS untuk dibelakang Router dengan NAT]]
 +
 
 +
===Briker OpenBTS===
 +
 
 +
* [[OpenBTS: Briker]]
 +
 
 +
===FreeSWITCH OpenBTS===
 +
 
 +
* [[OpenBTS: FreeSWITCH]]
 +
 
 +
===Power Amplifier===
 +
 
 +
* [[Driver 900MHz]]
 +
* [[Power Amplifier 900MHz]]
 +
* [[Duplexer]]
 +
* [[OpenBTS: Menaikan Jangkauan OpenBTS]]
  
 
===Lain Lain===
 
===Lain Lain===
  
 +
* [[OpenBTS: Materi Magang di ICTWATCH]]
 +
* [[OpenBTS: Seminar Outline]]
 +
* [[OpenBTS: Workshop Outline]]
 
* [[Membuat Base Station GSM Open Source]]
 
* [[Membuat Base Station GSM Open Source]]
 
* [[Teknologi Selular]]
 
* [[Teknologi Selular]]
Line 286: Line 446:
 
* [[Siapa Bilang OpenBTS Ilegal?]]
 
* [[Siapa Bilang OpenBTS Ilegal?]]
 
* [[OpenBTS: Catatan MNC dan MCC Indonesia]]
 
* [[OpenBTS: Catatan MNC dan MCC Indonesia]]
 +
* [[OpenBTS: Catatan MNC dan MCC COOL]]
 
* [[OpenBTS : Alokasi Frekuensi Operator GSM Indonesia]]
 
* [[OpenBTS : Alokasi Frekuensi Operator GSM Indonesia]]
 +
* [[GSM: Daftar Channel Frekuensi]]
  
 
===Catatan Sejarah===
 
===Catatan Sejarah===
Line 293: Line 455:
 
* [[OpenBTS: Daftar Workshop atau Seminar yang pernah dilakukan]]
 
* [[OpenBTS: Daftar Workshop atau Seminar yang pernah dilakukan]]
 
* [[OpenBTS: Daftar Artikel di Media]]
 
* [[OpenBTS: Daftar Artikel di Media]]
 +
* [[OpenBTS: Permohonan Kanal dan DID untuk OpenBTS]]
 +
* [[OpenBTS: 2013/02/19 - OpenBTS TelkomSel Mengudara di Muscat Oman]]
 +
* [[OpenBTS: Beroperasi di Papua]]
 +
 +
===Dokumentasi Video===
 +
 +
* http://www.metrotvnews.com/read/newsprograms/2012/10/14/14624/212/Teknologi-BTS
 +
* http://youtu.be/8ogOcUSpINU (1/6)
 +
* http://youtu.be/F5d7HGuhppk (2/6)
 +
* http://youtu.be/90Jgq6bOgrQ (3/6)
 +
* http://youtu.be/cNkx_qNqdfc (4/6)
 +
* http://youtu.be/6LCuoeI57ak (5/6)
 +
* http://youtu.be/-dEqcHoIlYk (6/6)
 +
* http://www.youtube.com/watch?v=Ff_rw4kAOZg&feature=share
 +
 +
===Perjuangan OpenBTS===
 +
 +
* http://www.technologyreview.com/news/522371/how-remote-places-can-get-cellular-coverage-by-doing-it-themselves/?utm_campaign=socialsync&utm_medium=social-post&utm_source=twitter
 +
 +
  
 
[[Category: Wireless]]
 
[[Category: Wireless]]
 
[[Category: Selular]]
 
[[Category: Selular]]

Latest revision as of 20:12, 10 March 2014

Kita dapat mengontrol ClockTamer melalui USB atau SPI. Jika tersambung ke USB, ClockTamer akan mengemulasi serial port, oleh karenanya kita dapat mengontrolnya menggunakan terminal emulator, baik dari script atau program. Sambungan SPI digunakan jika ClockTamer tersambung ke USRP dan sangat berguna jika kita tidak ingin menggunakan dua kabel USB dari USRP ke komputer yang kita gunakan.

Komunikasi dengan ClockTamer

Keberadaan ClockTamer dapat dilihat melalui perintah

ls /dev/tty*

harusnya ada device ClockTamer

/dev/ttyACM0

ClockTamer menggunakan protokol berbasis text dan pada dasarnya sama baik itu untuk interface ClockTamer USB maupun SPI. Protokol versi USB dan SPI berbeda hanya pada cara jawaban dari ClockTamer di kirim. Jika menggunakan sambungan SPI kita perlu poll untuk memperoleh jawaban, seperti di jelaskan di halaman interface SPI, di Linux sebelum kita melakukan pertukaran data sebaiknya kita matikan echo dari ClockTamer serial device. Melalui command line kita dapat mematikan melalui perintah berikut,

stty -F /dev/ttyACM0 -echo

Dimana /dev/ttyACM0 adalah ClockTamer serial device file.

Install screen

sudo apt-get install screen

Komunikasi menggunakan perintah

sudo screen /dev/ttyACM0 115200,cs8,-ixon,-ixoff

Tekan

ENTER

Akan keluar

CMD ERROR

berarti kita berhasil berkomunikasi dengan ClockTamer

Fitur Protokol ClockTamer

Protokol ClockTamer mempunya fitur:

  • Bekerja dengan pola master / slave. Dengan ClockTamer sebagai slave. Hal ini berarti ClockTamer hanya akan menjawab perintah yang dikirim oleh host dan tidak dalam memberikan perintah atau bertanya ke host.
  • Semua Perintah dan Jawaban dalam string ASCII, ditutup dengan CR/LF. Hal ini menyebabkan sangat mudah untuk memberikan perintah ke ClockTamer dengan mode interaktif melalui program terminal emulator.
  • Setiap perintah dari host akan di ikuti oleh jawaban dari ClockTamer, artinya protokol yang digunakan sifatnya sinkron (synchronous). Kira-kira sama dengan SD/MMC - jika kita mengirim command maka kita harus menunggu sampai kita menerima jawaban. Jika tidak ada jawaban untuk jangka waktu yang lama, maka kemungkinan besar ada sesuatu yang salah dan itu adalah bug. Sangat di rekomendasikan untuk me-reset ClockTamer dan mencoba lagi. Jangan lupa untuk menlaporkan bug tersebut.

Untuk mereka yang Tidak Sabar

Jika kita ingin langsung menggunakan ClockTamer tanpa perlu mengetahui berbagai detail yang ada, kita minimal membutuhkan dua (2) perintah berikut,

SET,,OSC,<osc_freq>
SET,,OUT,<out_freq>

dimana kita harus mengganti,

  • osc_freq dengan frekuensi (Hz) dari (VC)TCXO yang terpasang di ClockTamer, contoh 20000000. Perlu di catat bahwa kita dapat mengkalibrasi ClockTamer dengan mengubah sedikit osc_freq. Baca ClockTamer calibration untuk instruksi lebih detail.
  • out_freq dengan frekuensi output yang diinginkan (Hz).

Contoh

SET,,OSC,20000000
SET,,OUT,52000000

Jika kita sudah puas dengan settingan yang ada, kita dapat menyimpan parameter tersebut ke EEPROM dan digunakan sesudah reboot:

STE

Command dan struktur jawaban

Setiap perintah menggunakan format

CMD[,TYP[,DET[,value]]]<CR><LF>

Dimana

CMD - kelas command tiga huruf, harus berupa string yang tidak kosong.
TYP - command tipe target tiga huruf. Dapat berupa string yang kosong, walaupun DET dan value ada isinya (misalnya, SET,,OSC,10000200).
DET - command detail target tiga huruf. Dapat berupa string kosong, walaupun value ada. (e.g. PIN,LED,,0).
value - desimal atau hexadesimal value. Value desimal mulai digit (contoh, 54781), Value hexadecimal mulai dengan huruf 'x' (contoh, x01af3d).

Tergantung pada kelas command, perintah yang belakangan dapat di acuhkan sama sekali, seperti:

LDE       - only CMD is present
INF,,OSC  - CMD, TYP and DET are present with TYP as empty string
INF,,OUT

Format jawaban adalah sebagai berikut:

  • Jika command tidak memberikan value, maka jawaban adalah
OK<CR><LF>
  • Jika command memberikan value, jawaban akan mengunakan struktur yang sama dengan command yaitu
CMD[,TYP[,DET[,value]]]<CR><LF>
   where CMD, TYP and DET repeats the respective fields in the command. 
  • Jika command tidak dapat di parsing maka akan mengeluarkan error sebagai berikut:
   SYNTAX ERROR<CR><LF>

Command classes

Register ("REG")

Write data ke register di chip yang sesuai MicroWire bus. Menggunakan cpmmand ini kita dapat mengontrol setiap aspek dari pembangkitan clock dalam mode manual. Tipe target dan detail kombinasi yang di ijinkan adalah:

TYP 	DET 	value 	Description
LMK 	<empty> 	32bit value 	Write to LMK (clock distributor) chip registers
LMX 	<empty> 	24bit value 	Write to LMX (PLL+VCO) chip registers (if LMX is present)
DAC 	<empty> 	16-24bit value 	Write to DAC (Digital-to-Analog Converter) chip registers (if DAC is present)

Pin ("PIN")

Kontrol pin dari chip. Tipe target dan kombinasi detail yang di ijinkan adalah:

TYP 	DET 	value 	Description
LMK 	ENB 	0/1 	ENABLE pin of LMK (clock distributor) chip.
LMK 	GOE 	0/1 	GOE pin of LMK (clock distributor) chip.
LMX 	SYN 	0/1 	SYN pin of LMX (PLL+VCO) chip.
LED 	<empty> 	0/1 	Turn LED on/off.

Set ("SET")

Easy to use setting of output frequency, setting oscillator calibration value, changing algorithms internal variables. The most useful target type and detail combinations:

TYP 	DET 	value 	Description
<empty> 	<empty> 	<empty> 	Write all control registers from MCU RAM to LMX and LMK chips.
<empty> 	OSC 	integer 	Set oscillator frequency. Used when oscillator is changed, when external frequency source changed its frequency or to calibrate oscillator. Control registers of LMK and LMX are recalculated and written to the chips with this command.
<empty> 	OUT 	integer 	Set ClockTamer output frequency. Control registers of LMK and LMX are recalculated and written to the chips with this command.
<empty> 	AUT 	0/1 	If set to 1 ClockTamer will load all variables from EEPROM and start generator on boot.
LMK 	<empty> 	<empty> 	Write all control registers of LMK to the chip.
LMK 	PRT 	integer 	Change value of LMK output mask. See description of LMK_OutMask EEPROM register for details. Control registers of LMK are written to the chip with this command.
GPS 	SYN 	<empty> 	One-time synchronization to GPS.
GPS 	AUT 	0/1 	If set to 1 ClockTamer will keep clock synchronized to GPS.

Save ("SAV")

BELUM DI IMPLEMENTASIKAN

Defaults ("DEF")

BELUM DI IMPLEMENTASIKAN

Info ("INF")

Get value of the selected variable. Every variable (specified in DET), usable with SET has its INF counterpart. There is no NFO command with empty DET, though.

There are also a set of variables for debugging purposes only. You don't need to touch them if you don't change the firmware. Also their meaning may change from one firmware version to another without API version change. Currently available target type and detail combinations:

TYP 	DET 	value 	Description
GPS 	DIV 	<empty> 	Debug output. Value of divider of LMK output, routed to MCU input.
GPS 	KBT 	<empty> 	Debug output.
GPS 	R00 	<empty> 	Debug output.
GPS 	R01 	<empty> 	Debug output. In ClockTamer-1.2 it gives you a number of received 1pps ticks. If this value is increasing, then GPS lock is acquired.
GPS 	R02 	<empty> 	Debug output.
GPS 	R03 	<empty> 	Debug output. In ClockTamer-1.2 it gives you calculated output frequency, multiplied by 32, i.e. Fout = R02/32.
GPS 	MAX 	<empty> 	Debug output.
GPS 	MIN 	<empty> 	Debug output.

Version ("VER")

Get firmware and protocol versions.

Example:

ClockTamer SW=1.23 API=1

Hardware information ("HWI")

Get detailed information about installed hardware options. This information is stored in EEPROM and may be altered only if ClockTamer is flashed over SPI. Flashing over USB can not change EEPROM data.

Values shown in HWI string incude:

LMX= 	Type of LMX2531 VCO+PLL. Can be "2080" for LMX2531LQ2080E or "1515" for LMX2531LQ1515E. Most ClockTamers have LMX2531LQ2080E.
LMK= 	Type of LMK01000 Clock Buffer, Divider, and Distributor. Can be "1000" for LMK01000, "1010" for LMK01010 or "1020" for LMK01020, but is usually LMK01010.
OSC=
FOSC= 	Frequency of the reference TCXO or VCTCXO in MHz. Possible values are 10, 20 or 26.
GPS 	ClockTamer has GPS module installed if GPS is present in HWI.
VCTCXO 	ClockTamer use VCTCXO with DAC instead of TCXO with VCO+PLL is VCTCXO is present in HWI.

Example of HWI for a ClockTamer with LMX2531LQ2080E, LMK1010, 20MHz TCXO and GPS:

LMX=2080 LMK=1010 OSC=20 GPS

Reset ("RST")

Sends reset command to LMK and LMX and clears variables in MCU RAM, but does not affect EEPROM. To start output generation after RST you can execute "SET,,OSC,<val>", "SET,,OUT,<val>" or "LDE"+"SET".

Load EEPROM ("LDE")

Loads previously stored values from EEPROM to RAM. This command does not push them to LMK and LMX chips, so you should execute SET command manually.

TYP, DET and value should be empty.

Store EEPROM ("STE")

Stores all values to EEPROM. This values will be used by default after ClockTamer reboot. They can also be loaded to RAM at any time with LDE command.

TYP, DET and value should be empty.

EEPROM variables list

Variable 	Description
Fosc 	Oscillator frequency
Fout 	Output frequency
VCO_MIN 	Parameter for calculation of VCO registers for LMX. Shouldn't be changed unless you change LMX on your unit.
VCO_MAX 	Parameter for calculation of VCO registers for LMX. Shouldn't be changed unless you change LMX on your unit.
VCO_Kbit 	Parameter for calculation of VCO registers for LMX. Shouldn't be changed unless you change LMX on your unit.
LMK_OutMask 	Enable/disable output generation on specific LMK outputs. Set bit in the mask to 1 to enable corresponding output and to 0 to disable it. E.g. x60 value will enable 5 and 6 outputs and disable all others. See outputs numbering below.
AutoFreq 	Autostart generating output on boot.
DacValue 	DAC value if VCTCXO is used.
AutoGPSSync 	Continuously synchronize clock to GPS.

Outputs numbering

ClockTamer-1.0

If you look at ClockTamer so that "ClockTamer v1.0" label reads normally, then outputs are numbered in the following way:

2        0
  .---.
  |LMK|  7
  .---.
         6
4   5    6*

where 0,2,4,5,6 - places for U.FL connectors, 6* - a place for SMA connector. Outputs number 1 and 3 are not present on PCB. In default configuration outputs number 0 and 2 are LVDS, while 4,5,6 are LVPECL/CMOS.

ClockTamer-1.1 and ClockTamer-1.2

Outputs numbering is as shown on the picture:

Tamer-gui-pic.png

Outputs 1 and 6 and CMOS, while outputs 0, 3, 4, 5 and 7 are LVDS or half-LVDS. Refer to Features and technical specification page for more information about half-LVDS outputs.


Referensi

Pranala Menarik

Persiapan

Script

OpenBTS 2.6

OpenBTS 2.8

Multi OpenBTS 2.8

OpenBTS 3.1.x

Ettus E110

Ettus N210

RangeNetworks

GPRS

Briker OpenBTS

FreeSWITCH OpenBTS

Power Amplifier

Lain Lain

Catatan Legal dan Pendukung

Catatan Sejarah

Dokumentasi Video

Perjuangan OpenBTS