MODUL 3

Modul 3

 




COMMUNICATION

1. Pendahuluan[Kembali]

komunikasi data adalah proses pengiriman informasi dari satu perangkat ke perangkat lain melalui media transmisi tertentu. Informasi tersebut dapat berupa teks, gambar, audio, atau video.

Komunikasi data terjadi ketika:
- Data dikirim dari sumber.
- Data melewati saluran komunikasi.
- Data diterima oleh tujuan.

Tujuan utama komunikasi data adalah meningkatkan efisiensi, kecepatan, dan akurasi pertukaran informasi antara perangkat atau sistem.

2. Tujuan[Kembali]

a) Memahami cara penggunaan protokol komunikasi UART, SPI, dan I2C pada Development Board yang digunakan 
b) Memahami cara penggunaan komponen input dan output yang berkomunikasi secara UART, SPI, dan I2C pada Development Board yang digunakan 

3. Alat dan Bahan [Kembali]

1. STM32F103C8

2. LED 

3. Push Button


4. Touch Sensor

5. LCD I2C 16X2


6. Potensiometer

7. MQ-2

8. LED OLED


11. Motor Servo


4. Dasar Teori[Kembali]

1. UART (Universal Asynchronous Receiver Transmitter)


Dalam komunikasi UART, dua UART berkomunikasi langsung satu sama lain. UART pengirim mengubah data paralel dari perangkat pengendali seperti CPU menjadi bentuk serial, mengirimkannya secara serial ke UART penerima, yang kemudian mengubah data serial tersebut kembali menjadi data paralel untuk perangkat penerima. Hanya dua kabel yang dibutuhkan untuk mengirimkan data antara dua UART. Data mengalir dari pin Tx UART pengirim ke pin Rx UART penerima:


Gambar 1. Komunikasi UART

UART mengirimkan data secara asinkron, yang berarti tidak ada sinyal clock untuk menyinkronkan keluaran bit dari UART pengirim dengan pengambilan sampel bit oleh UART penerima. Sebagai gantinya, UART pengirim menambahkan bit awal dan bit akhir ke paket data yang ditransfer. Bit-bit ini menentukan awal dan akhir paket data sehingga UART penerima tahu kapan harus mulai membaca bit tersebut.

Ketika UART penerima mendeteksi bit awal, ia mulai membaca bit yang masuk pada frekuensi tertentu yang dikenal sebagai laju baud. Laju baud adalah ukuran kecepatan transfer data, yang dinyatakan dalam bit per detik (bps).  Kedua UART harus beroperasi pada laju baud yang hampir sama. Laju baud antara UART pengirim dan penerima hanya dapat berbeda sekitar 10% sebelum waktu bit menjadi terlalu jauh berbeda.

 2. I2C (Inter-Integrated Circuit)

I2C menggabungkan fitur terbaik dari SPI dan UART. Dengan I2C, Anda dapat menghubungkan beberapa slave ke satu master (seperti SPI) dan Anda dapat memiliki beberapa master yang mengontrol satu atau beberapa slave. Ini sangat berguna ketika Anda ingin memiliki lebih dari satu mikrokontroler yang mencatat data ke satu kartu memori atau menampilkan teks ke satu LCD.

Cara Kerja Komunikasi I2C

                                
Gambar 2. Cara Kerja Komunikasi I2C

Dengan I2C, data ditransfer dalam  bentuk pesan. Pesan-pesan tersebut dipecah menjadi frame  data. Setiap pesan memiliki frame alamat yang berisi alamat biner slave, dan satu atau lebih frame data yang berisi data yang sedang ditransmisikan. Pesan tersebut juga mencakup kondisi mulai dan berhenti, bit baca/tulis, dan bit ACK/NACK di antara setiap frame data:


Gambar 3. Frame Data I2C

- Start: Jalur SDA beralih dari tingkat tegangan tinggi ke tingkat tegangan rendah  sebelum  jalur SCL beralih dari tinggi ke rendah.
- Address: Urutan 7 atau 10 bit yang unik untuk setiap slave yang mengidentifikasi slave ketika master ingin berkomunikasi dengannya.
- Bit Read/Write: Sebuah bit tunggal yang menentukan apakah master mengirim data ke slave (tingkat tegangan rendah) atau meminta data darinya (tingkat tegangan tinggi).
- Bit ACK/NACK:  Setiap frame dalam sebuah pesan diikuti oleh bit pengakuan/penolakan. Jika frame alamat atau frame data berhasil diterima, bit ACK akan dikembalikan ke pengirim dari perangkat penerima.
- Stop:  Saluran SDA beralih dari tingkat tegangan rendah ke tingkat tegangan tinggi  setelah  saluran SCL beralih dari rendah ke tinggi.


3.   SPI (Series Peripheral Interface)
Ciri khas dari Serial Peripheral Interface (SPI) adalah sifat sinkronnya. Dalam komunikasi serial sinkron, semua transfer data diselaraskan dengan sinyal clock bersama , memastikan bahwa pengirim dan penerima mengambil sampel bit pada waktu yang tepat sama. Hal ini berbeda dengan protokol asinkron seperti UART , di mana sinkronisasi bergantung pada bit awal dan akhir yang dikombinasikan dengan kecepatan baud yang telah ditentukan. Pembingkaian seperti itu menimbulkan overhead dan membatasi throughput maksimum.

·       MOSI (Master Output Slave Input)

Jika dikonfigurasi sebagai master, maka pin MOSI berfungsi sebagai output. Sebaliknya, jika dikonfigurasi sebagai slave, maka pin MOSI berfungsi sebagai input.


·       MISO (Master Input Slave Output)

Jika dikonfigurasi sebagai master, maka pin MISO berfungsi sebagai input. Sebaliknya, jika dikonfigurasi sebagai slave, maka pin MISO berfungsi sebagai output.


·       SCLK (Serial Clock)

Jika dikonfigurasi sebagai master, maka pin SCLK bertindak sebagai output untuk memberikan sinyal clock ke slave. Sebaliknya, jika dikonfigurasi sebagai slave, maka pin SCLK berfungsi sebagai input untuk menerima sinyal clock dari master.


·       SS/CS (Slave Select/Chip Select)

Jalur ini digunakan oleh master untuk memilih slave yang akan dikomunikasikan. Pin SS/CS harus dalam keadaan aktif (umumnya logika rendah) agar komunikasi dengan slave dapat berlangsung.


Cara Kerja Komunikasi SPI

                                

Gambar 3. Cara Kerja Komunikasi SPI

SPI (Serial Peripheral Interface) bekerja antara perangkat master dan slave menggunakan empat jalur utama, yaitu MOSI, MISO, SCLK, dan SS/CS. Jalur MOSI (Master Out Slave In) digunakan untuk mengirim data dari master ke slave, sedangkan jalur MISO (Master In Slave Out) digunakan untuk mengirim data dari slave ke master. Proses komunikasi dikendalikan oleh sinyal clock pada jalur SCLK (Serial Clock) yang dihasilkan oleh master agar pengiriman data berlangsung sinkron. Selain itu, terdapat jalur SS/CS (Slave Select/Chip Select) yang berfungsi untuk memilih perangkat slave yang akan diajak berkomunikasi. Saat master mengaktifkan pin SS/CS, slave mulai menerima dan mengirim data secara bersamaan (full duplex). Data kemudian dikirim bit demi bit mengikuti denyut clock hingga proses transfer selesai. Setelah komunikasi selesai, master menonaktifkan kembali pin SS/CS sehingga hubungan komunikasi dengan slave terputus.

 4  Raspberry Pi Pico

Raspberry Pi Pico adalah papan mikrokontroler yang menggunakan chip RP2040 dan dirancang oleh Raspberry Pi Foundation. Dirilis pada Januari 2021, Pico menjadi solusi hemat daya dengan performa tinggi untuk proyek elektronik, IoT, robotika, dan embedded system. Berbeda dari Raspberry Pi 4 yang termasuk dalam kategori single-board computer (SBC) dan menjalankan sistem operasi, Raspberry Pi Pico tidak memakai OS. Sebagai gantinya, perangkat ini diprogram langsung menggunakan bahasa pemrograman seperti MicroPython atau C/C++.

Adapun
spesifikasi dari Raspberry Pi Pico adalah sebagai berikut:

Gambar 4. Raspberry Pi Pico

Spesifikasi:

1. Prosesor dan Kinerja
- Menggunakan prosesor dual-core ARM Cortex-M0+ yang berjalan pada kecepatan hingga 133 MHz, cocok untuk multitasking ringan.
- Mendukung instruksi Thumb-2 untuk efisiensi kode  
- Tidak memiliki FPU (Floating Point Unit) secara bawaan, namun Raspberry Pi Pico tetap dapat menjalankan operasi bilangan pecahan melalui emulasi perangkat lunak.

2. Memori dan Penyimpanan
- Dilengkapi SRAM sebesar 264 KB, termasuk 16 KB yang digunakan sebagai cache untuk meningkatkan efisiensi akses memori.
- Memori flash sebesar 2 MB tersedia onboard, dan masih bisa diperluas melalui koneksi QSPI jika dibutuhkan kapasitas tambahan.
- Dukungan boot dari flash eksternal

3. Input/Output (I/O) dan Peripheral
- 26 GPIO multifungsi
- Setiap pin GPIO dapat digunakan untuk PWM, SPI, I2C atau UART, memberikan fleksibilitas tinggi dalam konektivitas perangkat eksternal.
- Tersedia empat pin analog khusus untuk ADC, dengan resolusi 12-bit dan kecepatan sampling hingga 500 kS/s, cocok untuk pembacaan sensor analog.
- 2 × UART (Serial Communication)
- 2 × SPI (Serial Peripheral Interface)
- 2 × I2C (Inter-Integrated Circuit)
- 16 kanal PWM independen
- 8× Programmable I/O (PIO) state machines, fitur unggulan RP2040 yang memungkinkan pengguna membuat protokol komunikasi khusus secara efisien.

4. Komunikasi dan Konektivitas
- USB 1.1 dengan dukungan host/device
- Dapat berfungsi sebagai HID (keyboard/mouse) 
- Transfer data hingga 12 Mbps (full-speed)
- Mendukung DMA (Direct Memory Access) untuk memindahkan data dengan kecepatan tinggi tanpa membebani CPU.

5. Manajemen Daya
- Bekerja dalam rentang tegangan operasional 1.8V hingga 5.5V, sehingga kompatibel dengan berbagai sistem catu daya.
- Mode sleep dengan konsumsi daya ultra-rendah
- Dapat dihidupkan via USB atau sumber eksternal

5. STM32F103C8

Seri STM32F103xx berkinerja menengah menggabungkan inti RISC 32-bit Arm® Cortex® - M3 berkinerja tinggi yang beroperasi pada frekuensi 72 MHz, memori tertanam berkecepatan tinggi (memori Flash hingga 128 Kbytes dan SRAM hingga 20 Kbytes), dan berbagai macam I/O dan periferal yang terhubung ke dua bus APB. Semua perangkat menawarkan dua ADC 12-bit, tiga timer 16-bit serbaguna ditambah satu timer PWM, serta antarmuka komunikasi standar dan canggih: hingga dua I2C dan SPI, tiga USART, sebuah USB, dan sebuah CAN.

Perangkat ini beroperasi dengan catu daya 2,0 hingga 3,6 V. Perangkat ini tersedia dalam rentang suhu –40 hingga +85°C dan rentang suhu yang diperluas –40 hingga +105°C. Serangkaian mode hemat daya yang komprehensif memungkinkan perancangan aplikasi berdaya rendah. STM32F103C8 adalah mikrokontroler yang dikembangkan oleh STMicroelectronics. Mikrokontroler ini sering digunakan dalam pengembangan sistem tertanam karena kinerjanya yang baik, konsumsi daya yang rendah, dan kompatibilitas dengan berbagai protokol komunikasi. Pada praktikum ini, kita menggunakan STM32F103C8 yang dapat diprogram menggunakan berbagai metode, termasuk komunikasi serial (USART), SWD (Serial Wire Debug), atau JTAG untuk berhubungan dengan komputer maupun perangkat lain. Adapun spesifikasi dari STM32F4 yang digunakan dalam praktikum ini adalah sebagai berikut:




5. Percobaan[Kembali]

 1.         UART (STM – STM)

  • Rangkaian



  • Listing Program








  • Flowchart

2.       SPI (STM – STM)

  • Rangkaian





  • Listing Program


















  • Flowchart

3.        UART (STM – STM)


  • Rangkaian






  • Listing Program











  • Flowchart

4.         UART ( Pico – Pico )


  • Rangkaian






  • Listing Program




                                                                                sleep(0.1)
  • Flowchart

5.     SPI (Pico – STM)


  • Rangkaian




  • Listing Program







  • Flowchart

6.        I2C (Pico – LCD)


  • Rangkaian







  • Listing Program







  • Flowchart

7.         UART   & I2C (STM – Pi Pico)


  • Rangkaian




  • Listing Program















  • Flowchart

8.         Pico True Master SPI


  • Rangkaian






  • Listing Program









  • Flowchart

Komentar

Postingan populer dari blog ini

Figure 8.18

Figure 12.19

Figure 8.19