psoc module rev-a

Upload: mastopendhute

Post on 10-Apr-2018

220 views

Category:

Documents


0 download

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