• Tidak ada hasil yang ditemukan

MODUL KOMUNIKASI DATA PKD-02 Pengenalan Komunikasi Data berbasis PSoC (Programable System on Chip)

N/A
N/A
Protected

Academic year: 2018

Membagikan "MODUL KOMUNIKASI DATA PKD-02 Pengenalan Komunikasi Data berbasis PSoC (Programable System on Chip)"

Copied!
35
0
0

Teks penuh

(1)

MODUL KOMUNIKASI DATA PKD-02

Pengenalan Komunikasi Data berbasis PSoC (Programable System on Chip)

Tujuan:

1. Mengenal dasar komunikasi data berbasis PsoC 2. Mengenal I2C, SPI, dan UART pada PsoC

Kompetensi dasar:

1. Komunikasi data

2. Pemrograman komputer

3. Rangkaian listrik dan elektronika

Dasar Teori

1. Inter Integrated Circuit (I2C)

Inter Integrated Circuit (I2C) biasanya disebut sebagai I2C, Bus I2C atau IIC Bus pada awalnya dikembangkan sebagai bus kontrol untuk menghubungkan mikrokontroler dan peripheral IC [1]. Inter-Integrated-Circuit atau sering disebut sebagai komunikasi I2C adalah komunikasi yang dikembangkan oleh Philips SemiConductors, yang hanya menggunakan dua jalur komunikasi (2-wire) yaitu Synchronous data (SDA) yang digunakan untuk mengirim dan menerima data (bi-directional) dan Synchronous Clock (SCL) yang digunakan untuk mengirim sinyal sinkronisasi. Protokol I2C untuk pengiriman satu byte data dapat dilihat pada Gambar 1.

(2)

Perangkat I2C menggunkan 2 buah pin open-drain dua arah dengan memberikan pull-up resistor untuk setiap garis bus sehingga berlaku seperti

AND menggunakan kabel.

Piranti yang dihubungkan dengan sistem I2C Bus dapat dioperasikan sebagai Master dan Slave. Master adalah piranti yang memulai transfer data pada I2C Bus dengan membentuk sinyal Start, mengakhiri transfer data dengan membentuk sinyal Stop, dan membangkitkan sinyal clock. Slave adalah piranti yang dialamati master.

Sinyal Start merupakan sinyal untuk memulai semua perintah, didefinisikan sebagai perubahan tegangan SDA dari “1” menjadi “0” pada saat SCL “1”. Sinyal Stop merupakan sinyal untuk mengakhiri semua perintah, didefinisikan sebagai perubahan tegangan SDA dari “0” menjadi “1” pada saat SCL “1”. Kondisi sinyal Start dan sinyal Stop seperti tampak pada Gambar 2 [3].

Gambar 2 Kondisi sinyal Start dan sinyal Stop [4]

(3)

Gambar 3 Sinyal ACK dan NACK [4]

2. UART (Universal Asynchronous Receiver-Transmitter)

UART adalah bagian perangkat keras komputer yang menerjemahkan bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat peripheral. Device yang memiliki interface UART dapat terhubung langsung pada pin modul RF[5]. Dalam pengiriman data, clock antara pengirim dan penerima harus sama karena paket data dikirim tiap bit mengandalkan clock tersebut. Inilah salah satu keuntungan model asynchronous dalam pengiriman data karena dengan hanya satu kabel transmisi maka data dapat dikirimkan. UART merupakan antarmuka yang digunakan untuk komunikasi serial, seperti pada RS-232, RS-422, RS-485 [6].

Komponen UART dapat dikonfigurasikan untuk Full Duplex (Dua arah bersamaan), Half Duplex (Dua arah bergantian), Simplex (hanya pengiriman dan penerimaan). Pada PSOC UART dapat dikonfigurasikan pada baud rate dari 110 sampai dengan 921600 bps dengan penyangga RX

dan TX dari 4 sampai 65535[7].

(4)

direpresentasikan oleh Vcc, sedangkan logika LOW (‘0’) direpresentasikan

oleh 0V [8].

UART dapat dengan mudah dikonfigurasikan dengan memilih baudrate, parity, bit data, dan angka pada start bits. Pada konfigurasi RS232 biasanya disebut dengan “8N1” yang merupakan singkatan dari delapan data bit, tanpa parity, dan memiliki 1 stop bit, hal ini merupakan konfigurasi default pada komponen UART[7].

Port serial pada komputer mengikuti standar telekomunikasi RS-232 (Recomended Standar 232). Sinyal dari RS-232 sama dengan sinyal serial

mikrokontroller apabila sinyal tersebut ditransmisikan pada satu bit dalam satu waktu, dengan baud rate tertentu dan dengan atau tanpa parity maupun stop bits. Pada Standar RS-232 maka logic HIGH (‘1’) di representasikan oleh tegangan negatif (-3V sampai – 25 V) dan logic LOW direpresentasikan dengan tegangan positif (3V sampai 25V). Kebanyakan PCs (Personal communication system) memliki sinyal dari -13 V sampai 13

V [8].

Karena mempunyai rentang tegangan yang lebar maka sinyal RS-232 membuat data yang dikirim tahan terhadap noise, gangguan, dan degradasi, sehingga dapat dikatakan bahwa sinyal RS-232 dapat melakukan komunikasi pada jarak yang jauh dibanding dengan serial TTL [8].

Gambar 4 This timing diagram shows both a TTL (bottom) and RS-232

(5)

Komponen UART pada PsoC memiliki berbagai koneksi input dan ouput, yang dapat dilihat pada gambar 5. Beberapa dari I/O tersebut dapat tidak dipakai apabila fungsinya tidak diperlukan dalam tuntutan sistem komunikasi yang akan dipakai.

Tabel 1 Konfigurasi pin-pin UART

Input/

rx Ya Input rx membawa input data serial oleh perangkat lain pada bus serial.

clock Ya Input clock digunakan untuk menetapkan baud rate (bit rate) pada komunikasi serial

Reset Tidak Input reset digunakan untuk me-restart program UART

Tx Ya

Output tx membawa output data serial dari suatu perangkat ke perangkat lain

pada bus serial

Tx_interrupt Ya

Pada output tx_interrupt merupakan logika OR pada suatu kelompok sumber

yang mungkin di interupsi, output tx interrupt ini akan terlihat apabila mode parameter diatur pada TX only atau FULL

(6)

Rx_interrupt Ya

Pada output rx_interrupt merupakan logika OR pada suatu kelompok sumber

yang mungkin di interupsi, output tx interrupt ini akan terlihat apabila mode

parameter diatur pada RX only, Half Duplex, atau Full UART (TX + RX)

Tx_en Ya

Pada output tx_en biasanya digunakan

terutama untuk komunikasi RS-485 untuk menampilkan bahwa perangkat

melakukan transmit pada bus.

3. SPI

Serial Peripheral Interface (SPI), protokol yang dibuat oleh Motorola pada tahun 1980-an, utamanya digunakan untuk komunikasi serial tersinkronisasi (synchronized serial communication) antara prosesor (master) dan IC yang dituju (slave). Empat buah jalur sinyal digunakan

dalam komunikasi ini : Chip Select (CS), Serial Data Input (SDI), Serial Data Output (SDO), Serial Clock (SCKL). CS dan SCKL merupakan keluaran dari piranti master. Piranti slave menerima sinyal clock dan masukan chip select dari piranti master. Apabila sebuah piranti SPI tidak dipilih, jalur SDO dari piranti tersebut memiliki status high impedance state.

Jumlah bit yang dikirim ke piranti slave bervariasi antar piranti. Setiap piranti slave memiliki sebuah internal shift register yang digunakan untuk

pengiriman data.

Ada dua tipe koneksi antar piranti master dan slave. Pada koneksi tipe pertama, seluruh slave berbagi satu jalur CS. Jalur SDO dari piranti master dihubungkan ke jalur SDI dari piranti slave pertama. Jalur SDO dari piranti slave pertama dihubungkan ke jalur SDI piranti slave kedua. Begitu

(7)

piranti master. Setiap piranti slave memiliki jalur CS masing-masing. Setiap jalur SDO piranti slave terhubung ke jalur SDI piranti master.

Jenis komunikasi ini juga mendukung mode multiple master. Laju serial clock mempunyai jangkauan dari 30 kHz hingga 3 MHz, bergantung pada piranti yang digunakan. Beberapa literature menyebutkan CS sebagai SS, SDI sebagai MOSI, dan SDO sebagai MISO.

Langkah-langkah percobaan:

A. I2C

a. Source Code 1. Master #include <project.h>

#define I2C_SLAVE_ADDRESS (8u) #define WR_BUFFER_SIZE (255)

LCD_Char_PrintString("0x");

(8)

t[i] = 1;

while(I2CM_MasterStatus() & I2CM_MSTAT_XFER_INP);

(9)

CyDelay(2000u/*ms*/);

} }

2. Slave #include <project.h>

#define WR_BUFFER_SIZE (255)

int main() {

uint8 wrBuf[WR_BUFFER_SIZE]; uint8 byteCount = 0u;

I2CS_SlaveInitWriteBuf((uint8 *) wrBuf, WR_BUFFER_SIZE);

if(I2CS_SlaveStatus() & I2CS_SSTAT_WR_CMPLT) {

byteCount = I2CS_SlaveGetWriteBufSize();

(10)

if(byteCount == WR_BUFFER_SIZE) {

LCD_Char_ClearDisplay(); LCD_Char_PrintString("0x");

LCD_Char_PrintNumber(byteCount); }

else {

LCD_Char_ClearDisplay();

LCD_Char_PrintString("I2C Error! "); }

1. Membuka software PSoC Creator 2. Klik tab File > New > Project

(11)

(a)

(b)

4. Merangkai pada project board sesuai gambar 7

5. Mengatur konfigurasi pada I2C Master seperti pada gambar 4 dan pada I2C Slave seperti pada gambar 8

Gambar 6 Diagram Blok Digital I2C Master (a), Diagram Blok Digital I2C Slave(b)

(12)

6. Tuliskan kode sumber pada main.c

7. Clean and Build dan Program project I2C ke PsoC

8. Variasikan jumlah array pada bagian main.c Master sesuai dengan tabel pengamatan

9. Catat hasil yang diperoleh

Percobaan 2:

1. Buka software PSoC Creator 2. Klik tab File > New > Project

3. Susun blok diagram digital pada PSoC project sesuai gambar 9a untuk Master dan gambar 9b untuk Slave. Atur konfigurasi pada I2C Master seperti pada gambar 9c dan I2C Slave seperti pada gambar 9d.

(13)

(a)

(b)

(14)

(d)

4. Rangkai rangkaian pada project board sesuai gambar 7 5. Clean and Build dan Program project I2C ke PSoC

6. Variasikan nilai clock sesuai dengan tabel pengamatan dan hitung delay pengiriman dengan menghitung waktu munculnya jumlah data pada slave

7. Mencatat hasil yang diperoleh

c. Tabel Pengamatan Tabel 2 Percobaan 1 I2C

No Jumlah Karakter Keluaran

1 1

Gambar 9 Diagram Blok Digital I2C Master dengan Clock

Eksternal (a), Diagram Blok Digital I2C Slave dengan Clock

Eksternal (b), Konfigurasi pada Blok Master I2C Percobaan 2 (c),

(15)

2 2

Tabel 3 Percobaan 2

(16)

B. UART

a. Langkah-langkah percobaan UART-1: 1. Membuka PSoC Creator

2. Pada Workspace TopDesign.cysch, masukkan komponen UART yang didapat dari Component Catalog. Kemudian atur konfigurasi UART seperti pada gambar 10

3. Memasukkan source code pada main.c seperti pada gambar 11. Gambar 10 Konfigurasi UART

(17)

4. Mem-build dan unduh (program) ke masing-masing modul PsoC 5. Hubungkan P0[0] sebagai keluaran UART ke osiloskop untuk

melihat bentuk data

b. Langkah-langkah percobaan UART-2: Komunikasi menggunakan 2 PSoC( menggunakan 2 PSoC dan 2 laptop)

Untuk PSoC yang pertama 1. Membuka PSoC Creator

2. Pada Workspace TopDesign.cysch, masukkan komponen UART yang didapat dari Component Catalog seperti gambar 12

3. Kemudian susun pada workspace TopDesign.cysch seperti pada gambar 13

Gambar 12 Konfigurasi UART

(18)

4. Mengatur UART dengan klik 2 kali pada komponen, gunakan pengaturan seperti pada gambar 14. Pemberian nama komponen akan mempengaruhi nama pada program. Menggunakan mode Full UART(Tx+Rx) . Bit per second 9600. Data bits 8. Parity Type None. Stop bits 1

5. Klik menu pins pada Workspace Explorer, kemudian lakukan kongurasi seperti gambar 15.

6. Memasukkan program code pada main.c Seperti pada gambar 16 Gambar 14 Konfigurasi UART

(19)

Gambar 16 Source Code UART

7. Mem-build dan mengunduh program ke modul PSoC

Untuk PSoC yang kedua: 1. Membuka PSoC Creator

2. Pada Workspace TopDesign.cysch, masukkan komponen UART yang didapat dari Component Catalog seperti gambar 17

3. Kemudian susun pada workspace TopDesign.cysch seperti pada gambar 18

(20)

4. Mengatur UART dengan klik 2 kali pada komponen, gunakan pengaturan seperti pada gambar. Pemberian nama komponen akan memengaruhi nama pada program. Menggunakan mode Full UART(Tx+Rx) . Bit per second 9600. Data bits 8. Parity Type None. Stop bits 1 Hal ini juga berlaku untuk kedua komponen UART. 5. Klik menu Pins pada Workspace Explorer, kemudian lakukan

kongurasi seperti gambar 19

Gambar 18 Konfigurasi UART2

(21)

6. Memasukkan source code pada main.c seperti pada gambar 20

Gambar 20 Source Code UART

7. Mem-build dan unduh program ke modul PSoC yang ke 2.

Menyambungkan kedua PSoC

1. Menggunakan kabel jumper hubungkan pin 12.1(PSoC1) dengan pin 12.0(PSoC2) dan pin 12.0(PSoC1) dengan pin 12.1(PSoC2)

2. Menghubungkan kedua ground dengan menggunakan kabel jumper 3. Menghubungkan masing-masing PSoC pada masing-masing laptop 4. Buka aplikasi Arduino

5. Masuk pada menu bar Tools -> Port -> lalu pilih com yang terdapat psoc(masing-masing psoc dan laptop berbeda)

(22)

6. Masuk ke menu bar tool kemudian klik Serial Monitor, atau dengan menekan keyboard Ctrl+Shift+M.

7. Pada baud rate (bagian kanan bawah serial monitor) pastikan sama dengan bit per second dari UART

8. Melakukan pengetikan pada melalui serial monitor 1 (yang terhubung PSoC1) maka akan muncul pada Serial monitor 2 (yang

terhubung PSoC2), begitu juga dengan kebalikannya.

c. Tabel Percobaan Praktikum 1 UART : 1. Tabel 4 Variasi Bits per Second

No Bits per second Keluaran Osiloskop (Data Biner)

1 300

Gambar 22Menuju Serial Monitor Arduino

(23)

2. Tabel 5 Variasi Data Bits

No Data Bits Keluaran Osiloskop (Data Biner)

1 5

2 6

3 7

4 8

5 9

3. Tabel 6 Variasi Parity Type

No Parity Type Keluaran Osiloskop (Data Biner) 1 None

2 Even

3 Odd

4 Mark/Space

4. Tabel 7 Variasi Stop bits

No Stop bits Keluaran Osiloskop (Data Biner)

1 1

2 2

C. SPI

a. Langkah-langkah Percobaan : 1. Buka PSoC Creator

(24)

3. Di dalam Project SPIMaster, pada Workspace TopDesign.cysch masukkan komponen SPI Master dan Character LCD yang didapat dari Component Catalog seperti gambar 24.

4. Atur SPI Master dan LCD dengan klik 2 kali pada komponen, gunakan pengaturan komponen seperti Gambar 25. Pemberian nama komponen akan mempengaruhi nama pada program.

(25)

(a)

(b)

5. Tambahkan pin Digital Input pada miso, Digital Output pada mosi, sclk, dan ss, lalu Logic Low pada reset dan Clock sebesar 2 MHz

pada clock. Hingga sesuai dengan gambar 26

Gambar 25 Konfigurasi SPI Master (a) dan LCD (b)

(26)

6. Tambahkan Page dengan klik kanan pada Page 1, lalu klik Add Schematic Page, sehingga muncul Page 2

7. Pada Page 2, masukkan komponen Current DAC, Analog Mux Sequencer dan ADC Delsig yang didapat dari Component Catalog seperti gambar 28.

8. Atur SPI Master dan LCD dengan klik 2 kali pada komponen, gunakan pengaturan komponen seperti Gambar 30.

(a)

Gambar 27 Penambahan Page

Gambar 29 Komponen

(27)

(b)

(c)

9. Tambahkan pin analog pada keluaran IDAC dan masukan pada AmuxSeq.

(28)

10. Rangkai secara seri 7 resistor 10 kΩ, kemudian hubungkan pin mux P0[0] hingga P0[7] seperti pada gambar 31.

Gambar 26 Rangkaian Sistem

11.Klik menu Pins pada Workspace Explorer kemudian lakukan konfigurasi seperti gambar 32.

Gambar 31 Rangkaian Sistem

(29)

12.Rangkai pin LCD dengan konfigurasi sesuai gambar 33.

13.Masukkan program code pada main.c Seperti pada tabel 1

#include <project.h>

int main() {

SPIS_Start(); LCD_Char_Start();

LCD_Char_PrintString("0x");

for(;;) {

if(SPIS_GetRxBufferSize()) {

LCD_Char_Position(0u, 2u);

LCD_Char_PrintInt16(SPIS_ReadRxData()); SPIS_ClearRxBuffer();

} }

}

(30)

14.Di dalam Project SPISlave, pada Workspace TopDesign.cysch masukkan komponen SPI SLave dan Character LCD yang didapat dari Component Catalog seperti gambar 34

15.Atur SPI Slave dan LCD dengan klik 2 kali pada komponen, gunakan pengaturan komponen seperti Gambar 35 untuk SPI Slave dan gambar 33 untuk LCD . Pemberian nama komponen akan mempengaruhi nama pada program.

Gambar 34 Komponen pada Project SPI Slave

(31)

16.Tambahkan pin Digital Input pada mosi, sclk, dan ss, Digital Output pada miso, lalu Logic Low pada. Hingga sesuai dengan gambar 36

17.Klik menu Pins pada Workspace Explorer kemudian lakukan konfigurasi seperti gambar 37.

18.Masukkan program code pada main.c

#include <project.h>

int main() {

uint16 adcReading; uint8 temp;

Gambar 36 Pin SPI Slave

(32)

SPIM_Start();

LCD_Char_PrintString("0x");

(33)

{

20.Hubungkan kedua ground dari SPI Master dan SPI Slave

21.Lakukan build dan unduh (program) pada masing masing PSOC.

b. TABEL PERCOBAAN PRAKTIKUM SPI 1. Variasi Frekuensi pada Clock

(34)

3. Data Bits (CPHA/CPOL=00)

Master Slave Tampil

Master Tampil Slave

3 3

8 8

16 16

... ...

... ...

4. Shift Directions

Master Slave Tampil

Master Tampil Slave

MSB MSB

LSB MSB

MSB LSB

(35)

Referensi

[1] N. A. Pratama dan T. Andrasto, “Komunikasi Pada Robot Swarm Pemadam Api Menggunakan Protokol ModBus,” hlm. 8, 2015.

[2] “i2c01.png (Gambar PNG Image, 718 × 286 piksel).” [Daring]. Tersedia pada:

https://developer.electricimp.com/sites/default/files/attachments/images/i2c/i2c01. png. [Diakses: 07-Apr-2018].

[3] R. B. Watan, “I SEAPLIKASNSOR TPA81 SEBAGAI PENGUKUR SUHU RUANGAN PADA ROBOT BERKAKI PEMADAM API.,” Politeknik Negeri Sriwijaya, 2014.

[4] “I2C Bus Specification,” I2C Info – I2C Bus, Interface and Protocol. . [5] I. Sayekti, “Bel Pemanggil Perawat Berbasis Wireless Menggunakan Xbee,” vol. 2, no. 3, hlm. 7, 2013.

[6] Y. M. Dinata, Arduino Itu Pintar. Elex Media Komputindo, 2016.

[7] “Psoc Creator Componen Datasheet, Universal Asynchronous Receiver Transmitter (UART),” Cypress Semiconductor Corporation, no. 001, hlm. 1, 2016.

Gambar

Gambar 1 Protokol Komunikasi I2C[2]
Gambar 2 Kondisi sinyal Start dan sinyal Stop [4]
Gambar 3 Sinyal ACK dan NACK [4]  2.   UART (Universal Asynchronous Receiver-Transmitter)
Gambar 4 This timing diagram shows both a TTL (bottom) and RS-232  signal sending 0b01010101
+7

Referensi

Dokumen terkait

(7) Langkah-langkah pengelolaan kawasan permukiman sebagaimana dimaksud dalam Pasal 11 ayat (1) huruf g berupa memanfaatkan ruang yang sesuai untuk tempat bermukim di

Memperhatikan pernyataan dan pandangan dari ulama-ulama kenamaan dari masing-masing mazhab empat tersebut di atas, kiranya hampir semua ulama melarang dan menyatakan

Sehubungan dengan hal tersebut, agar pola gerak dapat terbentuk dengan permanen dalam sistem memori, di samping faktor kelejasan, kederhanaan, kuat dan harmonisnya informasi

Kalorimeter adalah alat yang digunakan untuk mengukur jumlah kalor yang terlibat dalam suatu perubahan atau reaksi kimia.. Pada dasarnya, kalor yang dibebaskan atau

I’d like to think that Amity didn’t suffer to terribly when Kerstan easily caught up to us and slammed her face into the door, knocking her out cold.. I’d like to

Kewajiban yang utama dari Fiskus adalah memberikan bimbingan, penerangan, penyuluhan kepada wajib pajak sehingga wajib pajak mempunyai pengetahuan dan keterampilan

Dengan demikian, pengertian kompetensi secara umum adalah kemampuan yang harus dimiliki seseorang baik pengetahuan, keterampilan, maupun nilai dan sikap untuk