MODUL 3
ProbePoint
1. Pendahuluan
Saat DSP sedang menjalankan program yang anda buat, anda dapat menampilkan isi memori dari DSP pada layar monitor, bahkan anda dapat mengubah nilai variabel didalam memori. Memang cara ini akan sedikit mengganggu kerja DSP karena pada saat terjadi transfer data antara DSP dan komputer, proses yang terjadi pada DSP akan dihentikan sebentar. Cara ini digunakan untuk menguji algoritma yang anda buat didalam DSP secara online tanpa menggunakan alat ukur seperti function generator sebagai sumber sinyal dan oscilloscope untuk menampilkan hasilnya.
2. Tujuan
Setelah menyelesaikan praktikum ini, yang anda peroleh adalah :
dapat menggunakan fasilitas probepoint dan breakpoint pada Code Composer Studio sebagai alat untuk mencoba algoritma program yang dibuat
dapat melakukan visualisasi data input sebelum diproses dan data output setelah diproses menggunakan Code Composer Studio
3. Gambaran Disain
Pada praktikum ini anda akan mencoba menggunakan fasilitas probepoint dari Code Composer Studio. Project yang anda gunakan telah berisi program filter digital jenis low-pass dengan frekuensi cut-off 0,5 dari setengah frekuensi sampling (untuk sementara abaikan dulu cara pembuatan filter ini karena anda akan bertemu pada praktikum berikutnya). Project anda pasti membutuhkan sinyal input dan setelah diolah sinyal outputnya akan anda amati. Tetapi tidak menggunakan function generator dan oscilloscope. Dengan fasilitas probepoint, aplikasi Code Composer Studio akan membaca file data yang terdapat pada PC yang sudah anda buat sebelumnya sebagai sinyal input. Dan setelah diproses, sinyal outputnya dapat anda lihat melalui jendela grafik. Jendela grafik tidak hanya mampu menampilkan sinyal didalam domain waktu, tetapi dapat pula disajikan didalam domain frekuensi.
4. Dasar Teori
Pada praktikum kali ini anda akan mencoba fasilitas pada Code Composer Studio yang disebut Probepoint. Probepoint merupakan tool yang sangat berguna bagi pengembangan algoritma. Anda bisa menggunakan Probepoint untuk hal-hal sebagai berikut :
• Untuk mentransfer data input dari file yang disimpan pada PC (host) kedalam buffer pada board DSK (target) yang akan digunakan oleh algoritma program.
• Untuk mentransfer data output dari buffer target kedalam file pada PC untuk keperluan analisis.
• Untuk meng-update sebuah windows, seperti grafik dengan data.
Probepoint mirip dengan breakpoint (fasilitas breakpoint seperti pada bahasa pemrograman) yaitu keduanya menghentikan target untuk melakukan aksinya. Tetapi, Probepoint berbeda dengan breakpoint dalam hal-hal sebagai berikut :
• Probepoint memberhentikan target sementara, melakukan sebuah aksi, dan melanjutkan kembali eksekusi target.
• Breakpoint memberhentikan CPU sampai eksekusi secara manual dilanjutkan dan menyebabkan semua window yang terbuka diupdate.
• Probepoint mengijinkan untuk mengerjakan file input atau file output secara otomatis, sedangkan breakpoint tidak.
Dengan fasilitas Probepoint anda dapat mencoba algoritma yang anda buat dengan menggunakan file input sebagai vektor uji dan menganalisa hasilnya melalui tampilan grafik ataupun direkam kembali kedalam file hasil. Sehingga algoritma program yang kita buat tidak harus selalu dicoba dengan menggunakan sinyal generator dan oscilloscope. Meskipun hasil yang didapat tidak real-time tetapi cara ini sangat berguna untuk pengembangan algoritma program yang kita buat.
Gambar 1. Ilustrasi proses Probe Point
File input yang dibaca atau file output yang ditulis mempunyai format sebagai berikut : • Common Object File Format (COFF) (Binary)
File bertipe biner yang menggunakan Common Object File Format (COFF). Cara ini sangat efektif untuk menyimpan blok data yang berukuran besar pada PC.
• Code Composer Studio data file format (Text)
File bertipe teks yang berisi sebuah baris header dan baris-baris berikutnya adalah data yang disimpan. Data yang disimpan dapat berupa format : heksadesimal, integer, long atau float (desimal).
Format file yang akan digunakan pada praktikum ini adalah file text. Informasi pada header untuk file data text ini memakai aturan berikut :
MagicNumber Format StartingAddress PageNum Length MagicNumber : harus diisi 1651.
Format : angka dari 1 to 4, mengindikasikan format data didalam file. Angka ini mewakili sebuah format data: heksadesimal, integer, long, atau float. StartingAddress : alamat awal dari blok data yang akan disimpan.
PageNum : jumlah blok dalam file.
Length : jumlah sampel dalam satu blok. Berikut contoh file data Code Composer Studio :
1651 1 800 1 10 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 0x0000 Catatan:
Nilai pada header hanya menunjukkan default address dan jumlah data. Bila anda menggunakan perintah File Data Load untuk mengisi memori target dengan file data, Code Composer Studio mengijinkan anda untuk mengubah nilai informasi pada header yang sudah dibuat. Bila menggunakan perintah File File I/O, nilai yang anda masukkan pada kotak dialog yang muncul, secara otomatis akan mengganti nilai header yang sudah dibuat. Sehingga anda tidak perlu terlalu pusing untuk mengisi nilai pada header file data, cukup anda tuliskan 1651 1 0 0 0. File data yang anda buat harus diberi ekstensi file .dat.
Referensi:
5. Peralatan
• 1 set PC yang dilengkapi dengan software Code Composer Studio • 1 set DSK TMS320C5402
6. Prosedur Praktikum
1. Persiapan peralatan :
a. PC dalam keadaan mati.
b. Hubungkan DSK ke PC menggunakan kabel paralel port yang tersedia. c. Hubungkan output adaptor ke input power DSK.
d. Hubungkan kabel power adaptor, nyalakan adaptor. e. Nyalakan PC.
f. Jalankan aplikasi Code Composer Studio dan pastikan dapat terhubung dengan board DSK.
2. Dengan menggunakan Windows Explorer, buatlah folder baru pada direktori D:\prak_pengolahansinyal dengan kelas Anda diikuti dengan subfolder nama Anda. Perhatikan penulisan folder yang Anda buat. Kemudian salin direktori C:\ti\examples\ dsk4502\dsp\prbpoint kedalam direktori D:\prak_pengolahansinyal\kelas\nama.
Gambar 2. Melakukan copy direktori prbpoint
Praktikum ini tidak menggunakan sinyal generator dan oscilloscope
3. Pada CCS, pilih Project Open, browse pada direktori D:\prak_pengolahansinyal\
kelas\nama\prbpoint yang baru anda salin, klik ganda file project prbpoint.pjt.
4. Bila muncul pesan kesalahan, klik browse, cari file rts.lib pada direktori c:\ti\c5400\cgtools\lib\
Gambar 3. File library tidak ditemukan karena direktori project berubah
5. Klik tanda [+] pada prbpoint.pjt, klik tanda [+] pada source, kemudian klik dua kali file prbpoint.c
Gambar 4. Klik tanda [+]
Gambar 5. Klik ganda file prbpoint.c
6. Program didalam file prbpoint.c adalah program filter digital jenis FIR orde 16 sebagai filter low-pass. Respon frekuensi filter tersebut ditunjukkan oleh gambar 6 (disain filter akan dibahas pada modul praktikum berikutnya). Dari gambar 6 tersebut tampak bahwa frekuensi cut-off jatuh pada titik 0.5 dari setengah frekuensi sampling. Bila sistem filter digital mempunyai frekuensi sampling sebesar 180Hz, maka sinyal input dengan frekuensi lebih besar dari (0.5*90 = ) 45 Hz akan diredam.
Pada praktikum ini akan dicoba untuk membuat suatu file vektor uji sebagai pengganti sinyal generator (sinyal input). Bentuk sinyal input dan sinyal output hasil proses ditampilkan dalam tampilan grafik.
0 1 2 3 4 5 6 7 8 0 0.2 0.4 0.6 0.8 1 1.2 1.4 fin(KHz) |H|
Respon Frekuensi Filter FIR orde16, pada fs=16kHz
fs/2 cut-off
Gambar 6. Respon frekuensi program filter low-pass FIR orde 16
7. Membuat file input sebagai vektor uji.
File input dapat anda buat sendiri, atau menggunakan software bantu. Pada praktikum ini digunakan software bantu Wave2Dat yang ditulis menggunakan bahasa Delphi.
a. Jalankan file Wave2Dat.exe pada direktori c:\ti\eepis (tanyakan pada asisten). b. Masukkan nilai-nilai seperti gambar 7 untuk membuat tiga sinyal sinus
berfrekuensi 10, 30, dan 50, dengan amplitudo yang sama.
c. Simpan nilai-nilai sinyal tersebut kedalam file dengan menekan tombol Save, kemudian letakkan pada direktori D:\prak_pengolahansinyal\kelas\nama\prbpoint yang telah anda paste dengan nama sin1.dat.
8. Menyiapkan program.
a. Pada Code Composer Studio, pilih Project Rebuild All Bila tidak ada kesalahan lanjutkan dengan File Load Program untuk mendownload kode mesin ke chip DSP. Pilih prbpoint.out, dan klik open.
b. Klik ganda file prbpoint.c pada jendela Project View.
c. Letakkan kursor pada baris didalam fungsi main yang terdapat tulisan : dataIO(); d. Klik tombol (Toggle Probe Point) pada toolbar. Akan muncul ikon biru yang
menandakan bahwa probepoint telah diset.
Gambar 8. Meletakkan fasilitas probepoint
e. Pilih File File I/O. Akan muncul jendela dialog File I/O sehingga anda dapat memilih file input dan file output.
f. Pada tab File Input, klik Add File.
g. Browse direktori prbpoint yang telah anda paste, pilih file sin1.dat kemudian pada pilihan Files of type pilih *.dat (Float) dan klik Open, seperti ditunjukkan oleh gambar 10. Hal ini disebabkan karena file dat yang telah anda buat bernilai desimal / floating point.
Gambar 10. Memasukkan file input untuk probepoint
h. Akan muncul jendela kontrol untuk file sin1.dat. Untuk selanjutnya, saat anda menjalankan program, anda dapat menggunakan jendela kontrol ini untuk melakukan start, stop, rewind atau fast forward untuk file data.
Gambar 11. Jendela kontrol
i. Pada jendela dialog File I/O, ubah Address dengan inp_buffer dan Length dengan 180. Juga beri tanda check pada kotak Wrap Around.
Seperti ditunjukkan oleh gambar 12, nantinya saat program sedang dijalankan, file sin1.dat yang anda masukkan akan dibaca sebagai file input saat instruksi yang diberi tanda probepoint tercapai. Data yang berada didalam file sin1.dat tersebut akan diletakkan pada variabel yang bernama inp_buffer pada program didalam memori DSP. Dan bila akhir file telah tercapai maka akan dibaca lagi dari awal (wrap arround).
j. Pada kotak dialog gambar 12, klik Add Probe Point. Maka tab Probe Points dari jendela dialog Break/Probe Points akan muncul, seperti ditunjukkan pada gambar 13.
Gambar 13. Jendela Break/Probe Points
k. Didalam list Probe Point, highlight baris yang menyebutkan : prbpoint.c line 26 --> No Connection.
l. Pada field Connect To, klik panah kebawah dan pilih file sin1.dat dari list.
m. Klik Replace. Maka list Probe Point akan berubah menunjukkan bahwa Probe Point telah terhubung dengan file sin1.dat. Perhatikan gambar 14.
n. Klik OK. Jendela dialog File I/O menunjukkan bahwa file telah terhubung dengan Probe Point.
Gambar 14. File sin1.dat telah terhubung
9. Bila program anda jalankan sekarang, maka anda tidak akan mendapat informasi banyak tentang apa yang sedang terjadi. Anda dapat melihat yang terjadi pada sinyal input dan sinyal output secara grafis. Code Composer menyediakan fasilitas tersebut.
10. Menambahkan fasilitas grafis.
a. pilih View Graph Time/Frequency.
b. Pada dialog Graph Property, ubahlah properti Graph Title, Start Address, Acquisition-Buffer Size, Display Data Size, DSP Data Type, Sampling Rate, dan Autoscale seperti yang ditunjukkan gambar 15. Scroll kebawah atau perbesar ukuran jendela dialog untuk melihat semua properti.
c. Klik OK. Sebuah jendela grafik input akan muncul untuk buffer input.
d. Klik kanan pada jendela grafik input dan pilih Clear Display dari menu pop-up. e. Pilih kembali View Graph Time/Frequency.
f. Kali ini, ubah Graph Title dengan Sinyal Output dan Start Address dengan out_buffer. Semua setting sudah benar.
g. Klik OK untuk menampilkan jendela grafik output. Klik kanan jendela grafik output dan pilih Clear Display dari menu pop-up.
11. Sampai tahap ini, anda telah menempatkan probe point, yang secara temporer akan menghentikan target, mentransfer data dari PC ke target, dan menjalankan program pada target kembali. Probe point tidak meng-update tampilan grafis. Untuk itu digunakan breakpoint yang akan meng-update grafik dan digunakan Animate untuk melanjutkan eksekusi otomatis setelah breakpoint tercapai.
12. Pada jendela file prbpoint.c, letakkan kursor pada baris yang memanggil fungsi dataIO. 13. Klik tombol (Toggle Breakpoint) pada toolbar atau menekan F9. Sebuah ikon merah
Gambar 15. Dialog Properti Graph
14. Anda meletakkan breakpoint pada baris yang sama dengan Probe Point sehingga target akan berhenti sekali untuk melakukan dua operasi : transfer data dan meng-update grafik.
15. Atur jendela-jendela sehingga anda dapat melihat kedua grafik.
16. Klik tombol (Animate) pada toolbar atau menekan F12 untuk menjalankan program. Tiap kali Probe Point tercapai, Code Composer Studio mengambil 180 data dari file sin1.dat dan menulisnya ke alamat inp_buffer.
Gambar 17. Tampilan grafis input dan output: mengapa tidak sama?
17. Pilih Debug Halt untuk menghentikan program.
18. Melihat respon frekuensi
a. Pada bagian ini anda akan membuat grafik Fast Fourier Transform (FFT) untuk melihat respon frekuensi sinyal input dan sinyal output.
b. Pilih View Graph Time/Frequency.
c. Isilah dialog Graph Property seperti pada gambar 18. d. Klik OK, maka akan muncul jendela baru untuk FFT input. e. Pilih kembali View Graph Time/Frequency.
Ganti Graph Title menjadi FFT Output, dan Start Address menjadi out_buffer, parameter yang lain sudah benar.
Klik OK maka jendela baru untuk FFT Output akan muncul.
Gambar 18. Kotak dialog untuk FFT
19. Klik tombol (Animate) pada toolbar atau menekan F12 untuk menjalankan program.
Gambar 19. Respon frekuensi sinyal input dan output
Gambar 20. Ilustrasi proses pemfilteran: apa yang telah terjadi
Pada gambar 20 dapat dijelaskan bahwa sinyal input melewati proses filter. Respon filter menunjukkan bahwa bila ada komponen sinyal input yang melebihi ½ dari separuh sampling akan diredam sehingga pada output terdapat salah satu komponen yang mempunyai amplitudo yang berbeda maka sinyal output yang tampak dalam domain waktu juga berubah.
21. Kerjakan tugas.
7. Tugas
Cobalah membuat file vektor uji yang lain. Gunakan software Wave2Dat untuk menghasilkan file input. Anda dapat mengulangi langkah ke-8 mulai dari point f, sebelum melakukan Add
File terlebih dahulu klik Remove File untuk memutuskan hubungan dengan file vektor uji
sebelumnya. Setelah langkah ke-8 selesai, langsung ikuti langkah ke-19 dengan menekan tombol Animate
Buatlah file input sebagai berikut kemudian gambar keempat grafik yang tampak seperti pada gambar 19 sebagai laporan sementara untuk dilakukan analisa.
1. Sinyal input yang berisi 4-buah sinyal sinus dengan frekuensi 5, 20, 30, dan 40 pada amplitudo yang sama.
2. Sinyal input yang terdiri dari 2-buah sinyal sinus dengan frekuensi 5 dan 80 pada amplitudo yang sama.
3. Sinyal input berupa sinyal segitiga dengan frekuensi 5 dan amplitudo 50. 4. Sinyal input berupa sinyal persegi dengan frekuensi 5 dan amplitudo 50. 5. Sinyal input berupa sinyal gigi-gergaji dengan frekuensi 5 dan amplitudo 50.
8. Analisa
1. Jelaskan kegunaan dari fasilitas probepoint !
2. Berdasar data dari tugas yang telah anda kerjakan, apa yang dapat anda simpulkan apabila sebuah sinyal kehilangan komponen penyusunnya?
9. Pertanyaan pendahuluan
Jelaskan fungsi dari fasilitas probepoint dan breakpoint yang terdapat pada Code Composer Studio!