Tugas Pendahuluan
1. Jelaskan apa itu protocol UART, SPI, dan I2C?
UART (Universal Asynchronous Receiver-Transmitter) adalah protokol komunikasi serial asinkron yang menggunakan dua jalur, yaitu TX (transmit) dan RX (receive). Karena bersifat asinkron, tidak ada sinyal clock bersama antara pengirim dan penerima, sehingga keduanya harus dikonfigurasi dengan baud rate yang sama. UART cocok untuk komunikasi point-to-point jarak pendek hingga menengah.
SPI (Serial Peripheral Interface) adalah protokol komunikasi serial sinkron yang menggunakan empat jalur: MOSI (Master Out Slave In), MISO (Master In Slave Out), SCK (Serial Clock), dan CS/SS (Chip Select/Slave Select). SPI bersifat full-duplex dan sangat cepat, sehingga cocok untuk komunikasi dengan perangkat seperti sensor, display, dan memori flash.
I2C (Inter-Integrated Circuit) adalah protokol komunikasi serial sinkron yang hanya menggunakan dua jalur, yaitu SDA (Serial Data) dan SCL (Serial Clock). I2C mendukung multi-master dan multi-slave dalam satu bus yang sama menggunakan sistem pengalamatan 7-bit atau 10-bit, sehingga sangat efisien untuk menghubungkan banyak perangkat dengan kabel minimal.
2. Bagaimana konfigurasi komunikasi UART pada STM 32 F103C8T6 dan STM NUCLEO G474RE pada hardware dan software?
STM32F103C8T6 (Blue Pill)
Hardware: USART1 menggunakan pin PA9 (TX) dan PA10 (RX). Hubungkan TX perangkat ke RX mikrokontroler dan sebaliknya. Gunakan level logic 3.3V dan tambahkan resistor pull-up jika diperlukan.
Software (STM32CubeIDE/CubeMX):
- Aktifkan USART1 di menu Connectivity, pilih mode Asynchronous
- Set Baud Rate (misal 115200), Word Length 8 bit, Stop Bits 1, Parity None
- Generate code, lalu gunakan fungsi
HAL_UART_Transmit()danHAL_UART_Receive()
STM32 NUCLEO-G474RE
Hardware: USART2 secara default terhubung ke ST-Link Virtual COM Port melalui pin PA2 (TX) dan PA3 (RX), sehingga langsung bisa digunakan via USB ke PC.
Software:
- Aktifkan USART2 di CubeMX, mode Asynchronous, konfigurasi sama seperti di atas
- Karena sudah terhubung ke ST-Link, tidak perlu konverter USB-TTL eksternal
- Gunakan
HAL_UART_Transmit()danHAL_UART_Receive()yang sama
3. Bagaimana konfigurasi SPI pada STM 32 F103C8T6 dan STM NUCLEO G474RE pada hardware dan software?
STM32F103C8T6
Hardware: SPI1 menggunakan pin PA5 (SCK), PA6 (MISO), PA7 (MOSI), dan PA4 (CS). Hubungkan pin-pin tersebut ke perangkat slave. Tambahkan kapasitor decoupling 100nF dekat VCC slave jika diperlukan.
Software:
- Aktifkan SPI1 di CubeMX, pilih mode Full-Duplex Master
- Konfigurasi Prescaler (menentukan kecepatan clock), CPOL dan CPHA sesuai perangkat slave (umumnya CPOL=0, CPHA=0)
- CS dikontrol manual via
HAL_GPIO_WritePin(), lalu data dikirim denganHAL_SPI_Transmit()atauHAL_SPI_TransmitReceive()
STM32 NUCLEO-G474RE
Hardware: SPI1 menggunakan pin PA5 (SCK), PA6 (MISO), PA7 (MOSI). Pin CS dapat menggunakan pin GPIO lain seperti PB6. Pastikan level tegangan perangkat slave kompatibel dengan 3.3V.
Software:
- Aktifkan SPI1 di CubeMX dengan konfigurasi yang sama
- G474RE memiliki clock sistem lebih tinggi (hingga 170 MHz), sehingga perhatikan pemilihan Prescaler agar kecepatan SPI sesuai spesifikasi slave
- Fungsi HAL yang digunakan identik dengan F103
4. Bagaimana konfigurasi I2C pada STM 32 F103C8T6 dan STM NUCLEO G474RE pada hardware dan software?
STM32F103C8T6
Hardware: I2C1 menggunakan pin PB6 (SCL) dan PB7 (SDA). Kedua jalur wajib dipasang resistor pull-up ke VCC 3.3V, umumnya bernilai 4.7kΩ untuk kecepatan standar (100 kHz) atau 2.2kΩ untuk fast mode (400 kHz).
Software:
- Aktifkan I2C1 di CubeMX, atur kecepatan (Standard Mode 100kHz atau Fast Mode 400kHz)
- Untuk mengirim data:
HAL_I2C_Master_Transmit(&hi2c1, alamat<<1, data, panjang, timeout) - Untuk membaca data:
HAL_I2C_Master_Receive()atau gunakan fungsi registerHAL_I2C_Mem_Read/Write()
STM32 NUCLEO-G474RE
Hardware: I2C1 menggunakan pin PB8 (SCL) dan PB9 (SDA) atau bisa I2C3 di PC8/PC9. Resistor pull-up tetap diperlukan dengan nilai yang sama.
Software:
- Konfigurasi di CubeMX sama seperti F103, namun G474RE mendukung Fast Mode Plus hingga 1 MHz
- G474RE juga mendukung fitur analog filter dan digital filter pada I2C untuk mengurangi noise, yang dapat diaktifkan di CubeMX
- Fungsi HAL yang digunakan identik
5. Jelaskan perbedaan UART, SPI, dan I2C!\
Ketiga protokol ini berbeda secara fundamental dalam hal jumlah kabel, topologi, dan kecepatan. UART menggunakan 2 kabel tanpa clock bersama (asinkron) dan hanya mendukung komunikasi dua perangkat (point-to-point) dengan kecepatan umum hingga 1 Mbps. SPI menggunakan 4 kabel (plus 1 CS per slave tambahan), bersifat sinkron dan full-duplex, mendukung satu master dengan beberapa slave namun membutuhkan pin CS terpisah untuk setiap slave, dengan kecepatan bisa mencapai puluhan MHz sehingga paling cepat di antara ketiganya. I2C menggunakan hanya 2 kabel untuk semua perangkat dalam satu bus, mendukung multi-master dan multi-slave melalui pengalamatan, namun kecepatannya lebih lambat (100kHz–1MHz) dan komunikasinya bersifat half-duplex. Singkatnya: UART untuk komunikasi sederhana dua perangkat, SPI untuk transfer data cepat, dan I2C untuk menghubungkan banyak perangkat dengan kabel minimal.
Tidak ada komentar:
Posting Komentar