MODUL 3
COMMUNICATION
Perkembangan sistem tertanam (embedded system) menuntut adanya komunikasi yang efektif antar
perangkat, khususnya pada mikrokontroler. Untuk itu, diperlukan pemahaman mengenai protokol
komunikasi yang digunakan dalam pertukaran data antara mikrokontroler dengan perangkat lain
seperti sensor dan aktuator.
Pada praktikum ini dipelajari tiga protokol komunikasi serial, yaitu UART, SPI, dan I2C, yang
masing-masing memiliki karakteristik dan fungsi berbeda. Selain itu, dilakukan implementasi
langsung menggunakan board STM32 untuk memahami cara kerja komunikasi antar perangkat secara
nyata.
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
1. STM32F103C8
2. Push Button 3. LED
4. Resistor
4. Resistor
5. STM32 NUCLEO-G474RE
8. Fan
- Wide range on input voltage varying from 4.V to 12V (+5V recommended)
- Output voltage is High/Low (3.3V TTL)
- Can distinguish between object movement and human movement
- Has to operating modes - Repeatable(H) and Non- Repeatable(H)
- Cover distance of about 120° and 7 meters
- Low power consumption of 65mA
- Operating temperature from -20° to +80° Celsius
11. Infrared Sensor
A. UART (Universal Asynchronous Receiver-Transmitter)
UART (Universal Asynchronous Receiver-Transmitter) adalah bagian perangkat keras komputer
yang menerjemahkan antara bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit
terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat
periperal.
B. I2C (Inter-Intergrated Circuit)
Inter Integrated Circuit atau sering disebut I2C adalah standar
komunikasi serial dua arah
menggunakan dua saluran yang didisain khusus
untuk mengirim maupun menerima data. Sistem
I2C terdiri dari saluran SCL
(Serial Clock) dan SDA (Serial Data) yang membawa informasi data
antara
I2C dengan pengontrolnya.
Cara Kerja Komunikasi I2C
Pada I2C, data ditransfer dalam bentuk message yang terdiri dari kondisi
start, Address Frame,
R/W bit, ACK/NACK bit, Data Frame 1, Data Frame 2,
dan kondisi Stop. Kondisi start dimana
saat pada SDA beralih dari logika high
ke low sebelum SCL. Kondisi stop dimana saat pada SDA
beralih dari logika
low ke high sebelum SCL.
R/W bit berfungsi untuk menentukan apakah master mengirim data ke slave
atau meminta data
dari slave. (logika 0 = mengirim data ke slave, logika =
meminta data dari slave) ACK/NACK bit
berfungsi sebagai pemberi kabar jika
data frame ataupun address frame telah diterima receiver.
C. SPI (Series Peripheral Interface)
Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi
serial synchronous
berkecepatan tinggi yang dimiliki oleh STM32F407VGT6
dan Raspberry Pi Pico. Komunikasi SPI
membutuhkan 3 jalur utama yaitu
MOSI, MISO, dan SCK, serta jalur tambahan SS/CS. Melalui
komunikasi ini,
data dapat saling dikirimkan baik antara mikrokontroler maupun antara
mikrokontroler dengan perangkat periferal lainnya.
• 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
Sinyal clock dialirkan dari master ke slave yang berfungsi untuk
sinkronisasi. Master dapat
memilih slave mana yang akan dikirimkan data
melalui slave select, kemudian data dikirimkan
dari master ke slave melalui
MOSI. Jika master butuh respon data maka slave akan mentransfer
data ke
master melalui MISO
D. STM32 NUCLEO-G474RE
STM32 NUCLEO-G474RE merupakan papan pengembangan (development board) berbasis
STM32 NUCLEO-G474RE merupakan papan pengembangan (development board) berbasis
mikrokontroler STM32G474RET6 yang dikembangkan oleh
STMicroelectronics. Board ini
dirancang untuk memudahkan proses
pembelajaran, pengujian, dan pengembangan aplikasi sistem
tertanam
(embedded system), baik untuk pemula maupun tingkat lanjut. STM32 NucleoG474RE
mengintegrasikan antarmuka ST-LINK debugger/programmer secara
onboard sehingga pengguna
dapat langsung melakukan pemrograman dan
debugging tanpa perangkat tambahan. Adapun
spesifikasi dari STM32
NUCLEO-G474RE adalah sebagai berikut:
Bagian-bagian pendukung STM32 NUCLEO G474RE
1. RAM (Random Access Memory)
RAM (Random Access Memory) pada STM32 NUCLEO-G474RE digunakan sebagai memori
sementara untuk menyimpan data selama program berjalan. Mikrokontroler STM32G474RET6
memiliki RAM sebesar 128 KB yang berfungsi untuk menyimpan variabel, buffer data, stack,
dan heap.
2. Memori Flash Eksternal
STM32 NUCLEO-G474RE tidak menggunakan memori flash eksternal.
Seluruh program dan
data permanen disimpan pada memori Flash internal
mikrokontroler STM32G474RET6 dengan
kapasitas 512 KB. Memori flash
ini bersifat non-volatile, sehingga data dan program tetap
tersimpan meskipun
catu daya dimatikan.
3. Crystal Oscillator
STM32 NUCLEO-G474RE menggunakan osilator internal (HSI – High
Speed Internal) sebagai
sumber clock utama secara default. Penggunaan
clock internal ini membuat board dapat
beroperasi tanpa memerlukan crystal
oscillator eksternal. Clock berfungsi sebagai sumber waktu
untuk mengatur
kecepatan kerja CPU dan seluruh peripheral.
4. Regulator Tegangan
Untuk memastikan pasokan tegangan yang stabil ke mikrokontroler.
5. Pin GPIO (General Purpose Input/Output):
Pin GPIO pada STM32 NUCLEO-G474RE digunakan sebagai antarmuka
input dan output
digital yang fleksibel
E. STM32F103C8
STM32F103C8 adalah mikrokontroler berbasis ARM Cortex-M3 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:
Bagian-bagian pendukung STM32F103C8:
1. RAM (Random Access Memory)
STM32F103C8 dilengkapi dengan 20KB SRAM on-chip. Kapasitas RAM ini memungkinkan
mikrokontroler menjalankan berbagai aplikasi serta menyimpan data sementara selama eksekusi
program.
2. Memori Flash Internal
STM32F103C8 memiliki memori flash internal sebesar 64KB atau 128KB, yang digunakan
untuk menyimpan firmware dan program pengguna. Memori ini memungkinkan penyimpanan
kode program secara permanen tanpa memerlukan media penyimpanan eksternal.
3. Crystal Oscillator
STM32F103C8 menggunakan crystal oscillator eksternal (biasanya 8MHz) yang bekerja dengan
PLL untuk meningkatkan frekuensi clock hingga 72MHz. Sinyal clock yang stabil ini penting
untuk mengatur kecepatan operasi mikrokontroler dan komponen lainnya.
4. Regulator Tegangan
STM32F103C8 memiliki sistem pengaturan tegangan internal yang memastikan pasokan daya
stabil ke mikrokontroler. Tegangan operasi yang didukung berkisar antara 2.0V hingga 3.6V.
5. Pin GPIO (General Purpose Input/Output)
STM32F103C8 memiliki hingga 37 pin GPIO yang dapat digunakan untuk menghubungkan
berbagai perangkat eksternal seperti sensor, motor, LED, serta komunikasi dengan antarmuka
seperti UART, SPI, dan I²C.
Komentar
Posting Komentar