psoc module rev-a
TRANSCRIPT
-
8/8/2019 PSoC Module Rev-A
1/58
MODUL PELATIHAN DASAR PSoC
(Programmable System on Chip)
Oleh : Ahmad Bharata Arya Bhuana
Pulse Width Modulation
Programmable Gain Amplifier
Band Pass Filter
Switched Capacitor
Analog to Digital Converter
Liquid Crystal Display
2009 (Revisi A-2010)
-
8/8/2019 PSoC Module Rev-A
2/58
2 Modul Pelatihan Dasar PSoC
I. Apa Itu PSoCProgrammable System on Chip merupakan sebuah IC 8-bit (Integrated Circuit) keluaran
Cypress yang ditujukan untuk rancang bangun sebuah Embedded System . PSoC memiliki
fungsi kerja mirip seperti sebuah mikrokontroller, tetapi dengan berbagai kelebihan dan
kekurangan. Pada umumnya Mikrokontroller yang sering digunakan di Indonesia seperti Atmel
MCS, Atmel AVR, dan PIC hanya memiliki fungsi terintegrasi digital saja. Fungsi digital yang
dimaksud adalah I/O, PWM, ADC, Timer / Counter, UART, SPI dan fungsi-fungsi digital yang lain.
PSoC muncul sebagai sebuah mimpi yang terjawab bagi para engineer, dengan munculnya
pengolahan analog dan digital dalam satu IC yang dapat diprogram fungsi kerjanya sesuai
dengan yang diinginkan.
II. Karakteristik PSoCBeberapa fitur yang dimiliki PSoC :
o MAC Unit, hardware 8x8 multiplication, dengan hasil yang dapat disimpan pada
32-bit Accumulator
o Tegangan kerja yang dapat diganti antara 5 V dan 3.3 V
o Dapat bekerja pada tegangan 1 V dengan menggunakan mode SMP (Switch
Mode Pump)
o Frekuensi yang dapat dipilih sesuai keinginan kita.
o Programmable Block yang dapat dipilih dan diprogram sesuai kebutuhan.
o 16 KB Programmable Memory
o 256 bytes RAM (Random Access Memory)
o ADC (Analog to Digital Converter) dengan resolusi mencapai 14-bit
o DAC (Digital to Analog Converter) dengan resolusi mencapai 9-bit
o PGA (Programmable Gain Amplifier)
o Filter dan Komparator yang dapat diprogram
o Timer dan Counter 8-bit, 16-bit dan 32-bit
o Pseudorandom Sequences dan CRC Code Generator
o Dua Full Duplex UART
o Multiple SPI devices
o Opsi untuk koneksi pada semua pin keluaran
o Opsi untuk mengkombinasikan blok
o Opsi untuk pemrograman pada lokasi memori yang spesifik dan Write
Protection
o Untuk setiap pin terdapat opsi untuk Pull-Up, Pull-Down, High-Z, Strong atau
Open pin state.
o Kemampuan untuk menggenerasi interupsi selama terjadi perubahan kondisi
pin
o I2C Slave atau Master dan Multi-Master sampai kecepatan 400 KHz
o Integrated Supervisory Circuit
o Built-in precise voltage reference
-
8/8/2019 PSoC Module Rev-A
3/58
3 Modul Pelatihan Dasar PSoC
III. PSoC DesignerSebuah IC Mikrokontroller memerlukan sebuah program untuk bisa bekerja secara
embedded. Program tersebut biasanya dibuat menggunakan Personal Computer, lalu
didownload ke dalam mikrokontroller. Jika pada mikrokontroller Atmel AVR ada AVR Studio,
CodeVision, dll. Maka pada PSoC digunakan software PSoC Designer untuk mendesain fungsikerja IC PSoC. Termasuk di dalamnya program dan konfigurasi-konfigurasi kerja blok yang ada di
dalam PSoC.
Disini akan dibahas beberapa blok-blok dasar dan karakteristik global pada PSoC
Designer. Versi yang digunakan adalah PSoC Designer 5. Sedangkan desain akan difokuskan pada
IC PSoC CY8C29466, karena sample yang ada untuk dipelajari hanya IC seri tersebut. Pada
pembahasan kali ini, hanya akan difokuskan pada beberapa blok digital & analog yang
merupakan fitur unggulan pada PSoC, yaitu :
PWM (Pulse Width Modulator) Block
= > 8 dan 16-bit PWM User Modules merupakan pembangkit / modulator lebar pulsa
dengan periode dan lebar pulsa yang dapat diatur melalui program. Clock dan Enable
Signal dapat dipilih dari beberapa sumber. Sinyal keluaran dapat disambung dengan
sebuah pin atau ke Global output Bus, untuk penggunaan internal modul yang lain.
Sebuah interupsi dapat deprogram untuk memicu ketika tebing naik (rising edge)
atau ketika pencacah (counter) mencapai kondisi terminal count.
PGA (Programmable Gain Amplifier) Block
= > PGA User Module mengimplementasikan Penguat Non-Inverting (Tak Membalik)
dengan Gain (penguatan) yang dapat diatur dengan program. Penguat ini memilikiimpedansi masukan tinggi, bandwidth lebar dan referensi yang dapat dipilih.
BPF (Band Pass Filter) Block
= > BPF2 User Module mengimplementasikan sebuah General-Purpose second order
state variable , yang biasa disebut juga sebuah biquad, band pass filter. Frekuensi
Center dan Q (rasio frekuensi center terhadap bandwidth) merupakan fungsi-fungsi
dari frekuensi clock dan rasio dari nilai kapasitor yang dipilih. Frekuensi center dapat
diset sangat akurat atau disesuaikan dengan mengendalikan clock sample rate.
SC (Switched Capacitor) Block= > SCBLOCK User Module adalah sebuah analog switched capacitor PSoC block yang
dapat diatur parameternya secara penuh, sehingga memungkinkan pembuatan fungsi
switched capacitor secara custom.
-
8/8/2019 PSoC Module Rev-A
4/58
4 Modul Pelatihan Dasar PSoC
ADC (Analog to Digital Conversion) Block
= > Blok ADC mengimplementasikan converter dari tegangan analog ke dalam bentuk
digital dengan akurasi hingga 14-bit. Referensi tegangan juga dapat dipilih dari
beberapa opsi yang diberikan. Sample rates dapat diatur dari 7.8 sps hingga 480 sps
(sps = samples per second).
LCD (Liquid Crystal Display) Block
= > LCD Module merupakan satu set kumpulan rutin yang berfungsi untuk mengkonversi
dari tulisan-tulisan (string) yang kita buat ke dalam bentuk 2 atau 4 jalur LCD Module.
Modul ini didesain untuk mendukung penggunaan IC HD44780 sebagai driver LCD.
Mode interface yang digunakan adalah 4-bit dengan tujuan untuk mengurangi jumlah
pin I/O yang diperlukan.
Workspace pada PSoC Designer
Global Resources
Properties
Pinout
Chip Editor Workspace Explorer
User Modules
-
8/8/2019 PSoC Module Rev-A
5/58
5 Modul Pelatihan Dasar PSoC
IV. PSoC ProgrammerPSoC Programmer merupakan software yang digunakan untuk melakukan download
source code & design fungsi mikro yang telah dibuat pada software PSoC Designer ke dalam IC
PSoC supaya dapat bekerja secara embedded.
Workspace pada PSoC Programmer
Untuk proses dan contoh pemrograman pada PSoC dapat dilihat pada bab berikutnya.
Programmer
Setting
Connection
Status
Pemilihan
Jenis IC
Status Kerja
Programmer
-
8/8/2019 PSoC Module Rev-A
6/58
6 Modul Pelatihan Dasar PSoC
V. Membuat PWM (Pulse Width Modulator)Pada BAB ini, kita akan belajar membuat PWM 8-bit menggunakan PSoC . Spesifikasi
PWM yang akan kita buat sebagai berikut :
- Frekuensi : 100 KHz
- Duty Cycle : 50 %
- Keluaran PWM pada Port_0_0
1) Jalankan PSoC Designer 5.0
2) Klik pada New Project
3) Pilih Chip-Level Project => Isi Name dengan Belajar_PWM, jangan lupa memberi
tanda centang pada Create directory for workspace => klik OK
4) Pada Window Select Project Type, Pilih Device yang akan digunakan dengan mengklik
pada View Catalog
-
8/8/2019 PSoC Module Rev-A
7/58
7 Modul Pelatihan Dasar PSoC
Lalu akan muncul window Device Catalog => Pilih CY8C29466-24PXI => Klik Select
Kembali muncul window Select Project Type => Pada opsi Generate Main File using,
pilih C => Klik OK
5) Akan muncul Chip Editor
6) Yang kita lakukan pertama adalah melakukan setting pada Global Resources
-
8/8/2019 PSoC Module Rev-A
8/58
8 Modul Pelatihan Dasar PSoC
Karena spesifikasi frekuensi keluaran PWM adalah 100 KHz, maka kita harus melakukan
setting Global Resources berdasarkan perhitungan berikut :
Kita gunakan System Clock 6 MHz lalu dibagi dengan 6 pada VC1 sehingga menghasilkan frekuensi 1 MHz.
{H #
Masukkan nilai pada Global Resources berdasarkan tabel berikut supaya didapatkan
Clock sesuai dengan yang kita inginkan:
{H #
{H ##
Global Resources
Power Setting [ Vcc / SysClk freq ] 5.0 V / 6 MHz
CPU_Clock #
32K_Select #
PLL_Mode #
Sleep_Timer #
VC1 = SysClk /N 6
VC2 = VC1 /N #
VC 3 Source #
VC 3 Divider #
SysClk Source Internal
SysClk *2 Disable No
Analog Power #
Ref Mux #
AGndBypass #
Op-Amp Bias #
A_Buff_Power #
SwitchModePump off
Trip Voltage [ LVD (SMP)] #
LVD ThrottleBack #
Watchdog Enable #
-
8/8/2019 PSoC Module Rev-A
9/58
9 Modul Pelatihan Dasar PSoC
7) Sekarang saatnya memasukkan Blok PWM ke meja editor.
Klik PWMs pada User Modules => Klik kanan PWM8 => Klik Place
Jika diperhatikan akan muncul Blok PWM pada Daerah Digital Blocks, Klik Pada Blok
tersebut, lalu jendela Properties PWM8_1 akan aktif
8) Melakukan Setting pada Properties PWM8_1. Berdasarkan perhitungan sebelumnya,
untuk mendapatkan clock 100 Khz maka harus dilakukan pembagian lagi sebesar 10.
Karena itu kita masukkan nilai 10 ke Period.
-
8/8/2019 PSoC Module Rev-A
10/58
10 Modul Pelatihan Dasar PSoC
Tabel isian untuk Properties PWM8_1, sebagai berikut :
Keterangan :
- Clock = VC1, menunjukkan bahwa sumber clock untuk PWM berasal dari VC1 (1
MHz)
- Enable = High, Karena PWM Active High ( Aktif ketika dicatu High) maka pada
kondisi ini berarti PWM akan selalu aktif
- CompareOut = Row_0_Output_0, keluaran dari PWM pada Row_0_Output_0
- Period = 10, menunjukkan bahwa sumber frekuensi PWM yang dihasilkan =
Frekuensi VC1 dibagi 10 1 MHz / 10 = 100 KHz
- PulseWidth = 5, berfungsi untuk menentukan Duty Cycle, berdasarkan rumus :
I ## , untuk CompareType : Less Than or Equal
I # , untuk CompareType : Less Than
- CompareType = Less Than or Equal, Berpengaruh pada penentuan DutyCycle (Lihat
rumus sebelumya)
- ClockSync = Sync to SysClk, Gunakan setting ini jika Clock yang digunakan berasal
dari hasil pembagian SysClk.
- InvertEnable = Normal, Ketika normal dipilih, Enable Input berada pada kondisi
Active-High
Properties - PWM_8_1
Clock VC1
Enable High
CompareOut Row_0_Output_0
TerminalCountOut #
Period 10
PulseWidth 5
CompareType Less Than
InterruptType #
ClockSync Sync to SysClk
InvertEnable Normal
-
8/8/2019 PSoC Module Rev-A
11/58
11 Modul Pelatihan Dasar PSoC
9) Saatnya PWM menuju jalur keluar.
Klik pada Row_0_Output_0
Lalu akan muncul jendela Digital Interconnet Row_0_Output_0Lakukan Setting pada tiga bagian :
a. Row_0_LogicTable_Input_0 => Row_0_Output_0
b. Row_0_LogicTable_Select_0 => A
c. Row_0_Output_0_Drive_0 => Global_Out_Even_0
Selanjutnya kita akan menyambungnya ke Port_0_0.
Untuk menggeser : tekan Ctrl + Klik Kiri, tahan lalu geser mouse.
Klik pada Port_0_0 di sebelah kanan.
-
8/8/2019 PSoC Module Rev-A
12/58
-
8/8/2019 PSoC Module Rev-A
13/58
13 Modul Pelatihan Dasar PSoC
Jika diperlukan, kita dapat merubah nama Port_0_0, menjadi seperti yang kita
inginkan.
11)Membuat Source Code untuk Program.
Perhatikan jendela Workspace Explorer, di sebelah kanan atas.
Double Klik pada Belajar_PWM => Double Klik pada Source Files => Double Klik
pada main.c
Akan muncul jendela Editor
Akan kita lakukan beberapa tahapan dalam pemrograman :
a. Memasukkan File Include untuk PWM_8_1
b. Menonaktifkan interupsi pada PWM_8_1
c. Mengaktifkan PWM_8_1
Sebelumnya kita harus menggenerasi Configuration Files terlebih dahulu.
-
8/8/2019 PSoC Module Rev-A
14/58
14 Modul Pelatihan Dasar PSoC
Klik Build => Klik Generate Configuration Files for Belajar_PWM Project
Source Code lengkapnya sebagai berikut :
Lalu tekan F6 untuk mengcompile dan membangun project.
Jika tidak ada kesalahan, maka di bagian bawah (Jendela Output) akan muncul status
seperti ini :
12)Sekarang saatnya mendownload program ke dalam IC PSoC.
Klik Program => Klik PSoC Programmer
Setelah menunggu beberapa saat, akan muncul window PSoC Programmer
13)Lakukan setting pada programmer.Jika menggunakan CY3210-PSoCEVAL Kit, maka pastikan setting sebagai berikut :
//----------------------------------------------------------------------------// C main line//----------------------------------------------------------------------------
#include // part specific constants and macros#include"PSoCAPI.h" // PSoC API definitions for all User Modules#include"PWM8_1.h" // Include PWM_8_1 API include file
void main(){
PWM8_1_DisableInt(); // Menonaktifkan InterupsiPWM8_1_Start(); // Mengaktifkan PWM
// Insert your main routine code here.}
-
8/8/2019 PSoC Module Rev-A
15/58
15 Modul Pelatihan Dasar PSoC
Programmer
Programming Mode Reset
Verification On
AutoDetection On
14)Klik pada Program untuk melakukan download ke IC PSoC
15)Lalu indicator di kanan bawah akan menunjukkan Busy, dan progress bar akan
berjalan perlahan-lahan. Jika berhasil pada status indicator programmer akan muncul
tulisan Programming Succeeded dan indicator pada kanan bawah akan menunjukkan
Pass kembali.
Program
-
8/8/2019 PSoC Module Rev-A
16/58
16 Modul Pelatihan Dasar PSoC
16)Sekarang IC tersebut sudah dapat digunakan secara embedded. CONGRATULATION;)
-
8/8/2019 PSoC Module Rev-A
17/58
17 Modul Pelatihan Dasar PSoC
VI. Memanfaatkan PGA (Programmable Gain Amplifier)Akan kita coba memanfaatkan PGA yang merupakan salah satu blok analog pada PSoC,
dengan spesifikasi sebagai berikut :
- Gain : 1.455 kali
- Sinyal Masukan pada Port 0_1
- Sinyal Keluaran pada Port 0_3
1) Jalankan PSoC Designer 5.0
2) Klik pada New Project
3) Pilih Chip-Level Project => Isi Name dengan Belajar_Pake_PGA, jangan lupa memberitanda centang pada Create directory for workspace => klik OK
4) Pada Window Select Project Type, Pilih Device yang akan digunakan dengan mengklik
pada View Catalog
-
8/8/2019 PSoC Module Rev-A
18/58
18 Modul Pelatihan Dasar PSoC
Lalu akan muncul window Device Catalog => Pilih CY8C29466-24PXI => Klik Select
Kembali muncul window Select Project Type => Pada opsi Generate Main File using, pilih
C => Klik OK
5) Akan muncul Chip Editor
6) Karena kita akan menggunakan masukan, keluaran dan blok analog, maka harus
dilakukan setting pada Global Resources. Setting sesuai dengan tabel berikut :
Global Resources
Power Setting [ Vcc / SysClk freq ] 5.0 V / 24 MHz
CPU_Clock #
32K_Select #
PLL_Mode #
Sleep_Timer #
VC1 = SysClk /N 1
-
8/8/2019 PSoC Module Rev-A
19/58
-
8/8/2019 PSoC Module Rev-A
20/58
20 Modul Pelatihan Dasar PSoC
8) Melakukan setting pada PGA_1 berdasarkan spesifikasi yang telah dibuat sebelumnya.
Tabel isian untuk Properties PGA_1, sebagai berikut :
Keterangan :
- Gain = 1.455, Penguatan yang digunakan sebesar 1.455 kali
- Input = AnalogColumn_InputMUX_0, Masukan amplifier berasal dari
AnalogColumn_InputMUX_0
- Reference = AGND, Titik referensi dasar dari Analog Ground Internal
- AnalogBus = AnalogOutBus_0, Keluaran dari amplifier pada AnalogOutBus_0
Nb : Dengan memasukkan nilai AnalogColumn_InputMUX_0 pada Input, berarti menyambungkan
masukkanPGA_1denganPort_0_1.Ini dapat diamati pada AnalogColumn_InputMUX_0 yang memiliki value Port_0_1.
Untuk mengubah, cukup klik pada AnalogColumn_InputMUX_0.
Properties -
PGA_1
Gain 1.455
Input AnalogColumn_InputMUX_0
Reference AGND
AnalogBus AnalogOutBus_0
-
8/8/2019 PSoC Module Rev-A
21/58
21 Modul Pelatihan Dasar PSoC
9) Saatnya jalur keluar PGA disambung.
Klik pada
Klik pada AnalogOutBuf_0 => Pilih Port_0_3
Jika berhasil, jalur akan tersambung dengan Port_0_3
10)Melihat status Pinout.
Hal ini dapat dilakukan dengan meng-klik pada jendela Pinout-Belajar_Pake_PGA, di
sebelah kiri bawah.
Jika diperlukan, kita dapat merubah nama Port_0_1 dan Port_0_3, menjadi seperti
yang kita inginkan.
-
8/8/2019 PSoC Module Rev-A
22/58
22 Modul Pelatihan Dasar PSoC
11)Membuat Source Code untuk Program.
Perhatikan jendela Workspace Explorer, di sebelah kanan atas.
Double Klik pada Belajar_Pake_PGA => Double Klik pada Source Files => Double Klik
pada main.c
Akan muncul jendela Editor
Akan kita lakukan beberapa tahapan dalam pemrograman :
a. Memasukkan File Include untuk PGA_1
b. Mengaktifkan PGA_1 dalam mode HIGH POWER *
Sebelumnya kita harus menggenerasi Configuration Files terlebih dahulu.
Klik Build => Klik Generate Configuration Files for Belajar_Pake_PGA Project
-
8/8/2019 PSoC Module Rev-A
23/58
23 Modul Pelatihan Dasar PSoC
Source Code lengkapnya sebagai berikut :
Lalu tekan F6 untuk mengcompile dan membangun project.
Jika tidak ada kesalahan, maka di bagian bawah (Jendela Output) akan muncul status
seperti ini :
12)Sekarang saatnya mendownload program ke dalam IC PSoC.
Klik Program => Klik PSoC Programmer
Setelah menunggu beberapa saat, akan muncul window PSoC Programmer
13)Lakukan setting pada programmer.
Jika menggunakan CY3210-PSoCEVAL Kit, maka pastikan setting sebagai berikut :
Programmer
Programming Mode Reset
Verification On
AutoDetection On
//----------------------------------------------------------------------------// C main line//----------------------------------------------------------------------------
#include // part specific constants and macros#include"PSoCAPI.h" // PSoC API definitions for all User Modules#include"PGA_1.h"
void main(){
PGA_1_Start(PGA_1_HIGHPOWER );// Insert your main routine code here.
}
-
8/8/2019 PSoC Module Rev-A
24/58
24 Modul Pelatihan Dasar PSoC
14)Klik pada Program untuk melakukan download ke IC PSoC
15)Lalu indicator di kanan bawah akan menunjukkan Busy, dan progress bar akan
berjalan perlahan-lahan. Jika berhasil pada status indicator programmer akan muncul
tulisan Programming Succeeded dan indicator pada kanan bawah akan menunjukkan
Pass kembali.
16)Sekarang IC tersebut sudah dapat digunakan secara embedded. CONGRATULATION;)
Program
-
8/8/2019 PSoC Module Rev-A
25/58
25 Modul Pelatihan Dasar PSoC
VII. Menggunakan BPF (Band Pass Filter)Pada BAB ini, kita akan belajar membuat BPF menggunakan PSoC . Spesifikasi BPF yang
akan kita buat sebagai berikut :
- Frekuensi : 150 KHz
- Bandwidth : 20 KHz
- Gain : 2 dB
- Frequency Sampling : 2000 KHz
1) Jalankan PSoC Designer 5.0
2) Klik pada New Project
3) Pilih Chip-Level Project => Isi Name dengan Belajar_Make_BPF, jangan lupamemberi tanda centang pada Create directory for workspace => klik OK
4) Pada Window Select Project Type, Pilih Device yang akan digunakan dengan mengklik
pada View Catalog
-
8/8/2019 PSoC Module Rev-A
26/58
-
8/8/2019 PSoC Module Rev-A
27/58
27 Modul Pelatihan Dasar PSoC
Keterangan :
a. Power Setting = 5.0 V / 24 MHz, tegangan pada VCC = 5V dengan kecepatan 24
MHz
b. VC1 = 3, Frekuensi VC1 = 24MHz / 3 = 8 MHz. Frekuensi ini nanti digunakan
sebagai sumber clock BPF_1.
c. SysClkSource = Internal, sumber clock berasal dari clock internal di dalam IC.
d. Analog Power = SC On/Ref Low, Memberikan daya pada blok-blok analog dengan
konsumsi daya rendah.
e. AGndBypass = Enable, Analog Ground langsung diambil dari Port 2_4, dengan
tujuan untuk menyamakan ground dari sinyal masukan.
f. A_Buff_Power = High, Buffer keluaran analog berfungsi maksimal (mode High)
g. SwitchModePump = off, SwitchModePump dinonaktifkan.
VC1 = SysClk /N 3
VC2 = VC1 /N #
VC 3 Source #
VC 3 Divider #
SysClk Source Internal
SysClk *2 Disable #
Analog Power SC On/Ref Low
Ref Mux #
AGndBypass Enable
Op-Amp Bias #
A_Buff_Power High
SwitchModePump off
Trip Voltage [ LVD (SMP)] #
LVD ThrottleBack #
Watchdog Enable #
Perlu diperhatikan : Nilai Clock untuk Band Pass Filter harus 4 kali lebih
cepat daripada frekuensi sampling yang diinginkan.
Dalam kasus ini, karena frekuensi sampling yang diinginkan adalah 2000
KHz, maka clock masukan Band Pass Filter = 2000 KHz x 4 = 8000 KHz.
Diambil dari VC1 = SysClk / 3 = 24 MHz / 3 = 8 MHz = 8000 KHz
-
8/8/2019 PSoC Module Rev-A
28/58
28 Modul Pelatihan Dasar PSoC
7) Sekarang saatnya memasukkan Blok BPF ke meja editor.
Klik Filter pada User Modules => Klik BPF2 => Klik kanan BPF2VA => Klik Place
Akan muncul jendela Select Multi User Module
Pastikan BPF2VA terpilih, lalu klik OK
Jika diperhatikan akan muncul Blok BPF2 pada Daerah Analog Blocks, Klik Pada Blok
tersebut, lalu jendela Properties BPF2_1 akan aktif
8) Melakukan Setting pada Properties BPF2_1.
-
8/8/2019 PSoC Module Rev-A
29/58
29 Modul Pelatihan Dasar PSoC
Untuk melakukan setting pada Band Pass Filter, kita memerlukan bantuan Filter Design
Wizard. Untuk memanggilnya klik kanan pada Blok BPF2 , lalu pilih Filter Design
Wizard
Tabel isian untuk Filter Parameters, sebagai berikut :
Keterangan :
a. FCenter = 150000, menunjukkan bahwa frekuensi Bandpass Filter = 150 KHz
b. FSample = 2000000,menunjukkan bahwa frekuensi pencuplikan = 2000 KHz
c. Bandwidth = 20000, menunjukkan besarnya bandwidth = 20 KHz
d. Gain = 2, menunjukkan bahwa gain / penguatan sebesar 2 dB
e. C2 = 11, memberikan nilai sebesar 11 pada konstanta C2. Nilai ini didapatkan dari
hasil coba-coba.
Pada Design Filter Wizard, kita diharuskan untuk melakukan coba-coba nilai C2 hingga
grafik warna hijau (expected) sama dengan grafik warna biru (nominal). Jika hasil yang
didapatkan kurang optimal, kita dapat melakukan perubahan pada nilai C1, C3, C4, CA
dan CB. Tetapi Filter Design Wizard tidak menyediakan opsi untuk mensimulasikan
grafik dengan parameter-parameter tersebut dapat diubah. Untuk mendesain dengan
parameter-parameter tersebut diperlukan software lain yang disertakan pada
documentation.
Filter Parameters
FCenter 150000
FSample 2000000
Bandwidth 20000
Gain 2
C2 11
-
8/8/2019 PSoC Module Rev-A
30/58
30 Modul Pelatihan Dasar PSoC
( Help => Documentation => Filter Design => Ganti Files of type menjadi All Files =>
BPF2 Design.xls)
Tabel isian untuk Properties-BPF2_1
Properties - BPF2
C1 2
C2 11
C3 19
C4 3
CA 32
CB 32
Input Port_2_1
AnalogBus AnalogOutBus_0
CompBus DISABLE
Polarity Non-Inverting
Keterangan :
a. C1 = 2 , Nilai konstanta C1 = 2
b. C2 = 11, Nilai konstanta C2 = 11
c. C3 = 19, Nilai konstanta C3 = 19
d. C4 = 3 , Nilai konstanta C4 = 3
e. CA = 32, Nilai konstanta CA = 32f. CB = 32, Nilai konstanta CB = 32
g. Input = Port_2_1, Masukan Band Pass Filter berasal dari Port_2_1
h. AnalogBus = AnalogOutBus_0, keluaran Band Pass Filter pada AnalogOutBus_0
i. CompBus = DISABLE, Tidak ada keluaran comparator
j. Polarity = Non-Inverting, Keluaran Band Pass Filter tidak diinvers terhadap
masukannya.
-
8/8/2019 PSoC Module Rev-A
31/58
-
8/8/2019 PSoC Module Rev-A
32/58
32 Modul Pelatihan Dasar PSoC
10)Melihat status Pinout.
Hal ini dapat dilakukan dengan meng-klik pada jendela Pinout-Belajar_Make_BPF, di
sebelah kiri bawah.
Jika diperlukan, kita dapat merubah nama Port_0_3 dan Port_2_1, menjadi seperti
yang kita inginkan (Keluaran BPF & Masukan BPF).
11)Membuat Source Code untuk Program.
Perhatikan jendela Workspace Explorer, di sebelah kanan atas.
Double Klik pada Belajar_Make_BPF => Double Klik pada Source Files => Double Klik
pada main.c
Akan muncul jendela Editor
-
8/8/2019 PSoC Module Rev-A
33/58
33 Modul Pelatihan Dasar PSoC
Akan kita lakukan beberapa tahapan dalam pemrograman :
a. Memasukkan File Include untuk BPF2_1
b. Mengaktifkan BPF2_1 dalam mode HIGHPOWER *
Sebelumnya kita harus menggenerasi Configuration Files terlebih dahulu.
Klik Build => Klik Generate Configuration Files for Belajar_PWM Project
Source Code lengkapnya sebagai berikut :
Lalu tekan F6 untuk mengcompile dan membangun project.
Jika tidak ada kesalahan, maka di bagian bawah (Jendela Output) akan muncul status
seperti ini :
12)Sekarang saatnya mendownload program ke dalam IC PSoC.
Klik Program => Klik PSoC Programmer
Setelah menunggu beberapa saat, akan muncul window PSoC Programmer
//----------------------------------------------------------------------------// C main line//----------------------------------------------------------------------------
#include // part specific constants and macros#include"PSoCAPI.h" // PSoC API definitions for all User Modules
#include"BPF2_1.h"
void main(){
BPF2_1_Start(BPF2_1_HIGHPOWER);
// Insert your main routine code here.}
-
8/8/2019 PSoC Module Rev-A
34/58
34 Modul Pelatihan Dasar PSoC
13)Lakukan setting pada programmer.
Jika menggunakan CY3210-PSoCEVAL Kit, maka pastikan setting sebagai berikut :
Programmer
Programming Mode Reset
Verification On
AutoDetection On
14)Klik pada Program untuk melakukan download ke IC PSoC
15)Lalu indicator di kanan bawah akan menunjukkan Busy, dan progress bar akan
berjalan perlahan-lahan. Jika berhasil pada status indicator programmer akan muncul
tulisan Programming Succeeded dan indicator pada kanan bawah akan menunjukkan
Pass kembali.
Program
-
8/8/2019 PSoC Module Rev-A
35/58
35 Modul Pelatihan Dasar PSoC
16)Sekarang IC tersebut sudah dapat digunakan secara embedded. YES;)
-
8/8/2019 PSoC Module Rev-A
36/58
36 Modul Pelatihan Dasar PSoC
VIII. Menggunakan SC (Switched Capacitor)Pada BAB ini, kita akan belajar memanfaatkan SC menggunakan PSoC untuk aplikasi-
aplikasi umum pada Operational Amplifier, yaitu Comparator dengan spesifikasi sebgai berikut :
- Tegangan masukan di atas 2,5 V akan menghasilkan keluaran logika 1
- Tegangan masukan di bawah 2,5 akan menghasilkan keluaran logika 0
- VCC = 5 V
- Gnd = 0 V
1) Jalankan PSoC Designer 5.0
2) Klik pada New Project
3) Pilih Chip-Level Project => Isi Name dengan Belajar_SC_Block, jangan lupa memberi
tanda centang pada Create directory for workspace => klik OK
4) Pada Window Select Project Type, Pilih Device yang akan digunakan dengan mengklik
pada View Catalog
-
8/8/2019 PSoC Module Rev-A
37/58
37 Modul Pelatihan Dasar PSoC
Lalu akan muncul window Device Catalog => Pilih CY8C29466-24PXI => Klik Select
Kembali muncul window Select Project Type => Pada opsi Generate Main File using,
pilih C => Klik OK
5) Akan muncul Chip Editor
6) Setting pada Global Resources biarkan saja pada kondisi default (Jangan diubah-ubah).
Karena tidak diperlukan setting clock dan karakter lain pada Global Resources
-
8/8/2019 PSoC Module Rev-A
38/58
38 Modul Pelatihan Dasar PSoC
7) Sekarang saatnya memasukkan Blok SC ke meja editor.
Klik PSOC_GENERIC pada User Modules => Klik kanan SCBLOCK => Klik Place
Jika diperhatikan akan muncul Blok SCBLOCK_1 pada Daerah Analog Blocks, Klik Pada
Blok tersebut, lalu jendela Properties SCBLOCK_1 akan aktif
-
8/8/2019 PSoC Module Rev-A
39/58
39 Modul Pelatihan Dasar PSoC
8) Melakukan Setting pada Properties SCBLOCK_1.
Untuk melakukan setting pada Switched Capacitor Block, kita harus melakukan kalkulasi
dan desain awal berdasarkan Type SCBLOCK yang akan digunakan.
Pada kasus ini kita gunakan Type C ( ASC ). Pertama-tama mari kita lihat Topology dari
SCBLOCK Type C :
Dari skema topolopy tersebut, harus disederhanakan supaya dapat berfungsi sebagai
comparator dengan skematik sebagai berikut :
-
8/8/2019 PSoC Module Rev-A
40/58
-
8/8/2019 PSoC Module Rev-A
41/58
41 Modul Pelatihan Dasar PSoC
9) Saatnya SCBLOCK menuju jalur keluar & masuk.
Klik pada AnalogOutBuf_0 => Pilih Port_0_3
Jika berhasil, maka AnalogOutBuf_0 akan terhubung dengan Port_0_3.
Untuk jalur masuk, karena kita akan menggunakan masukan berupa sinyal analog, maka
mode portnya harus diubah ke Analog Input.
Klik pada Port_2_1 => Ubah value dari Select menjadi AnalogInput.
-
8/8/2019 PSoC Module Rev-A
42/58
42 Modul Pelatihan Dasar PSoC
10)Melihat status Pinout.
Hal ini dapat dilakukan dengan meng-klik pada jendela Pinout-Belajar_SCBLOCK, di
sebelah kiri bawah.
Jika diperlukan, kita dapat merubah nama Port_0_3 dan Port_2_1, menjadi seperti
yang kita inginkan (Keluaran SCBLOCK & Masukan SCBLOCK).
11)Membuat Source Code untuk Program.
Perhatikan jendela Workspace Explorer, di sebelah kanan atas.
Double Klik pada Belajar_SC_BLOCK => Double Klik pada Source Files => Double Klik
pada main.c
-
8/8/2019 PSoC Module Rev-A
43/58
43 Modul Pelatihan Dasar PSoC
Akan muncul jendela Editor
Akan kita lakukan beberapa tahapan dalam pemrograman :
a. Memasukkan File Include untuk SCBLOCK_1
b. Mengaktifkan SCBLOCK_1 dalam mode HIGHPOWER *
Sebelumnya kita harus menggenerasi Configuration Files terlebih dahulu.
Klik Build => Klik Generate Configuration Files for Belajar_SC_BLOCK Project
Source Code lengkapnya sebagai berikut :
Lalu tekan F6 untuk mengcompile dan membangun project.
Jika tidak ada kesalahan, maka di bagian bawah (Jendela Output) akan muncul status
seperti ini :
//----------------------------------------------------------------------------// C main line
//----------------------------------------------------------------------------
#include // part specific constants and macros#include"PSoCAPI.h" // PSoC API definitions for all User Modules#include"SCBLOCK_1.h"
void main(){
SCBLOCK_1_SetPower(SCBLOCK_1_HIGHPOWER); // Turn on SCBlock power// User code
}
-
8/8/2019 PSoC Module Rev-A
44/58
44 Modul Pelatihan Dasar PSoC
12)Sekarang saatnya mendownload program ke dalam IC PSoC.
Klik Program => Klik PSoC Programmer
Setelah menunggu beberapa saat, akan muncul window PSoC Programmer
13)Lakukan setting pada programmer.
Jika menggunakan CY3210-PSoCEVAL Kit, maka pastikan setting sebagai berikut :
Programmer
Programming Mode Reset
Verification On
AutoDetection On
14)Klik pada Program untuk melakukan download ke IC PSoC
15)Lalu indicator di kanan bawah akan menunjukkan Busy, dan progress bar akan
berjalan perlahan-lahan. Jika berhasil pada status indicator programmer akan muncul
tulisan Programming Succeeded dan indicator pada kanan bawah akan menunjukkan
Pass kembali.
Program
-
8/8/2019 PSoC Module Rev-A
45/58
45 Modul Pelatihan Dasar PSoC
16)Sekarang IC tersebut sudah dapat digunakan secara embedded. SIP;)
Nb: Untuk lebih memahami SCBlock silahkan baca Application Notes PSoC dengan kode AN2041-Understanding Switched
Capacitor Analog Block
-
8/8/2019 PSoC Module Rev-A
46/58
-
8/8/2019 PSoC Module Rev-A
47/58
47 Modul Pelatihan Dasar PSoC
Lalu akan muncul window Device Catalog => Pilih CY8C29466-24PXI => Klik Select
Kembali muncul window Select Project Type => Pada opsi Generate Main File using, pilih
C => Klik OK
e. Akan muncul Chip Editor
6) Yang kita lakukan pertama adalah melakukan setting pada Global Resources
Karena spesifikasi Sample Rate ADC adalah 100 sps, maka kita harus melakukan settingGlobal Resources berdasarkan perhitungan berikut :
J $
$ -I
-
8/8/2019 PSoC Module Rev-A
48/58
48 Modul Pelatihan Dasar PSoC
.
$ I
Karena nilai Sample Rate telah diketahui, maka kita perlu menentukan nilai DataClock
dan CalcTime.
Yang pertama kali harus kita tentukan adalah nilai DataClock, yang pada Properties-ADCINCVR_1 merupakan Clock. Kita bebas menentukan nilai DataClock ini tetapi dengan
syarat :
I 4 #"
Misal, kita tentukan nilai DataClock = 1,5 Mhz
Maka kita harus melakukan setting dulu pada Global Resources
Kita gunakan System Clock 6 MHz lalu dibagi dengan 4 pada VC1 sehingga menghasilkan frekuensi1 1,5 MHz
Satu requirement lagi yang harus dipenuhi melalui setting Global Resources, yaitu RangeTegangan dari 0V sampai Vcc(5V). Hal ini dapat kita lakukan dengan melakukan setting
pada RefMux dengan memberi nilai (Vdd/2) (Vdd/2).
Untuk tabel lebih lengkap RefMux dapat dilihat pada datasheet ADCINCVR hal.17
Masukkan nilai pada Global Resources berdasarkan tabel berikut supaya didapatkan
Clock sesuai dengan yang kita inginkan:
Global Resources
Power Setting [ Vcc / SysClk freq ] 5.0 V / 6 MHz
CPU_Clock SysClk / 1
32K_Select #
PLL_Mode #
Sleep_Timer #
VC1 = SysClk /N 4
VC2 = VC1 /N #
VC 3 Source #
VC 3 Divider #
SysClk Source Internal
SysClk *2 Disable No
Analog Power #
Ref Mux (Vdd/2) (Vdd/2)
AGndBypass #
Op-Amp Bias #
A_Buff_Power #
-
8/8/2019 PSoC Module Rev-A
49/58
-
8/8/2019 PSoC Module Rev-A
50/58
50 Modul Pelatihan Dasar PSoC
7) Sekarang saatnya memasukkan Blok ADCINCVR ke meja editor.
Klik ADCs pada User Modules => Klik kanan ADCINCVR => Klik Place
Jika diperhatikan akan muncul 3 Blok ADCINCVR pada Daerah Digital Blocks & 1 Blok
ADCINCVR pada Daerah Analog, Klik Pada Blok tersebut, lalu jendela Properties
ADCINCVR_1 akan aktif
8) Melakukan Setting pada Properties ADCINCVR_1. Berdasarkan perhitungan
sebelumnya.
-
8/8/2019 PSoC Module Rev-A
51/58
51 Modul Pelatihan Dasar PSoC
Tabel isian untuk Properties ADCINCVR_1, sebagai berikut :
Properties - ADCINCVR_1
Input ACB00
ClockPhase Norm
Clock VC2
ADCResolution 10-bit
CalcTime 10904
DataFormat Unsigned
Keterangan :
a. Input = ACB00, menunjukkan bahwa masukan ADC yang berupa tegangan analog
berasal dari Blok pada ACB00, yaitu PGA_1.
b. ClockPhase = Norm, menunjukkan bahwa fase clock masukannya normal sesuai
dengan input clock.c. Clock = VC1, menunjukkan bahwa sumber clock untuk ADC berasal dari VC1 (1.5
MHz) yang berarti pula nilai DataClock.
d. ADCResolution = 10-bit, Resolusi ADC sebesar 10-bit.
e. CalcTime = 10904, waktu yang diperlukan oleh CPU untuk mengkalkulasi hasil
integrasi sebelum integrasi berikutnya berlangsung.
f. DataFormat = Unsigned, range nilai keluaran dari 0 sampai 1023 berdasarkan tabel :
9) Karena masukan dari PGA, maka kita harus memasukkan blok PGA terlebih dahulu.
Klik Amplifiers pada User Modules => Klik kanan pada PGA => Klik Place
-
8/8/2019 PSoC Module Rev-A
52/58
52 Modul Pelatihan Dasar PSoC
10)Melakukan setting pada PGA_1 berdasarkan spesifikasi yang telah dibuat sebelumnya.
Tabel isian untuk Properties PGA_1, sebagai berikut :
Keterangan :
a. Gain = 1, Penguatan yang digunakan sebesar 1 kali, karena masukannya memiliki
tegangan yang cukup besar untuk dideteksi dan diolah.
b. Input = AnalogColumn_InputMUX_0, Masukan amplifier berasal dari
AnalogColumn_InputMUX_0 .
c. Reference = AGND, Titik referensi dasar dari Analog Ground Internal
d. AnalogBus = Disable, Bus Analog untuk keluaran tidak digunakan
Nb : Dengan memasukkan nilai AnalogColumn_InputMUX_0 pada Input, berarti menyambungkan
masukkanPGA_1denganPort_0_1.
Ini dapat diamati pada AnalogColumn_InputMUX_0 yang memiliki value Port_0_1.
Untuk mengubah, cukup klik pada AnalogColumn_InputMUX_0.
Properties -
PGA_1
Gain 1
Input AnalogColumn_InputMUX_0
Reference AGND
AnalogBus Disable
-
8/8/2019 PSoC Module Rev-A
53/58
53 Modul Pelatihan Dasar PSoC
11)Selanjutnya, kita harus memasukkan satu komponen blok lagi sebagai penampil data,
yaitu LCD.
Klik Misc Digital pada User Modules => Klik kanan LCD => Klik Place
Jika diperhatikan, blok LCD_1 akan muncul pada Workspace Explorer, lalu klik pada
LCD_1, maka akan muncul Properties-LCD_1
Melakukan Setting pada Properties LCD_1
-
8/8/2019 PSoC Module Rev-A
54/58
54 Modul Pelatihan Dasar PSoC
Tabel isian untuk Properties LCD_1, sebagai berikut :
Properties - LCD_1
LCDPort Port_2
Bargraph Disable
Keterangan :
a. LCDPort = Port_2, Data keluaran dari PSoC ke LCD pada Port_2.
b. Bargraph = Disable, Karena kita akan menggunakan LCD sebagai penampil karakter,
bukan BarGraph, maka Mode BarGraph kita matikan .
12)Melihat status Pinout.
Hal ini dapat dilakukan dengan meng-klik pada jendela Pinout-belajar_buat_adc, di
sebelah kiri bawah.
Jika diperlukan, kita dapat merubah nama Port_0_1, menjadi seperti yang kita
inginkan.
13)Membuat Source Code untuk Program.
Perhatikan jendela Workspace Explorer, di sebelah kanan atas.
-
8/8/2019 PSoC Module Rev-A
55/58
55 Modul Pelatihan Dasar PSoC
Double Klik pada Belajar_Buat_ADC => Double Klik pada Source Files => Double Klik
pada main.c
Akan muncul jendela Editor
Akan kita lakukan beberapa tahapan dalam pemrograman :
a. Memasukkan File Include untuk ADCINCVR_1
b. Memasukkan File Include untuk PGA_1c. Memasukkan File Include untuk LCD_1
d. Membuat Variabel sebagai penampung data dari hasil konversi ADC
e. Mengaktifkan Interupsi Global
f. Melakukan Inisialisasi PGA_1
g. Melakukan Inisialisasi ADCINCVR_1
h. Melakukan konversi ADC
i. Melakukan Inisialisasi LCD_1
j. Menampilkan data ke LCD
Sebelumnya kita harus menggenerasi Configuration Files terlebih dahulu.
Klik Build => Klik Generate Configuration Files for Belajar_Buat_ADC Project
-
8/8/2019 PSoC Module Rev-A
56/58
56 Modul Pelatihan Dasar PSoC
Source Code lengkapnya sebagai berikut :
Lalu tekan F6 untuk mengcompile dan membangun project.
Jika tidak ada kesalahan, maka di bagian bawah (Jendela Output) akan muncul status
seperti ini :
14)Sekarang saatnya mendownload program ke dalam IC PSoC.
Klik Program => Klik PSoC Programmer
Setelah menunggu beberapa saat, akan muncul window PSoC Programmer
//----------------------------------------------------------------------------// C main line//----------------------------------------------------------------------------
#include // part specific constants and macros#include"PSoCAPI.h" // PSoC API definitions for all User Modules#include"ADCINCVR_1.h" // a. File Include ADCINCVR_1
#include"PGA_1.h" // b. File Include PGA_1#include"LCD_1.h" // c. File Include LCD_1#include #include #include
void main(){
int iData; // d. Membuat Variabel Sementara (iData)char str[24]; // variabel str, dgn bentuk charM8C_EnableGInt; // e. Mengaktifkan Interupsi Global
PGA_1_Start(PGA_1_HIGHPOWER); // f. Inisialisasi PGA_1ADCINCVR_1_Start(ADCINCVR_1_HIGHPOWER); // g. Inisialisasi ADCINCVR_1ADCINCVR_1_GetSamples(0); // h. Memulai konversifor(;;) // unlimited looping konversi{while(ADCINCVR_1_fIsDataAvailable()==0);// Apakah data hasil konversi sudah siap?iData = ADCINCVR_1_iGetData(); // Ambil data, lalu dipindah ke variabel "iData"ADCINCVR_1_ClearFlag(); // Flag untuk "Data Ready" dibersihkan,
// supaya bisa mengkonversi lagi
LCD_1_Start(); // i. Inisialisasi LCD_1
sprintf(str,"Nilai ADC:%d ",iData); // memberikan nilai pada str, berdasarkan iDataLCD_1_PrString(str); // j. Menampilkan nilai pada str ke LCD}}
-
8/8/2019 PSoC Module Rev-A
57/58
-
8/8/2019 PSoC Module Rev-A
58/58