TUGAS PENDAHULUAN MODUL 3
1. Soal Tugas Pendahuluan[Kembali]
1. Jelaskan apa itu protokol komunikasi UART, SPI, dan I2C
Jawab :
UART (Universal Asynchronous Receiver Transmitter) adalah protokol komunikasi serial asynchronous yang memungkinkan pertukaran data antara dua perangkat tanpa sinyal clock. Komunikasi dilakukan melalui dua jalur utama, yaitu TX (transmit) dan RX (receive). UART umum digunakan karena sederhana dan hanya membutuhkan dua kabel, tetapi tidak cocok untuk banyak perangkat sekaligus karena tidak mendukung sistem multi-slave.
SPI (Serial Peripheral Interface) adalah protokol komunikasi serial synchronous yang digunakan untuk pertukaran data antara satu master dan satu atau lebih slave. SPI menggunakan empat jalur utama: MOSI (Master Out Slave In), MISO (Master In Slave Out), SCK (Serial Clock), dan SS/CS (Slave Select/Chip Select). SPI mendukung komunikasi berkecepatan tinggi dan bersifat full-duplex, tetapi membutuhkan lebih banyak pin jika banyak perangkat slave yang digunakan.
I2C (Inter-Integrated Circuit) adalah protokol komunikasi serial synchronous yang hemat pin dan digunakan untuk menghubungkan banyak perangkat dengan dua jalur yaitu: SDA (Serial Data) dan SCL (Serial Clock). I2C mendukung komunikasi multi-master dan multi-slave dengan alamat unik untuk setiap perangkat. Meskipun kecepatan transfernya lebih rendah dan hanya mendukung komunikasi half-duplex
2. Bagaimana konfigurasi komunikasi UART pada STM32 dan Raspberry Pipico secara hardware (rangkaian) maupun software (program)
Jawab :
Hardware
- STM32
Pada STM32, komunikasi UART memerlukan dua pin yaitu TX dan RX, misalnya pada STM32F103 digunakan pin PA9 (TX) dan PA10 (RX). Perangkat keras UART dapat dihubungkan ke USB-to-Serial converter untuk komunikasi dengan komputer.
Rangkaian dasar UART STM32 ke USB-TTL
STM32 PA9 (Tx) : Rx USB-TTL
STM32 PA10 (Rx) : Tx USB-TTL
GND STM32 : GND USB-TTL
- Raspberry Pi Pico
Pada Raspberry Pi Pico, UART dilakukan melalui pin GPIO, seperti GPIO0 untuk TX dan GPIO1 untuk RX pada UART0. Rangkaian serupa, dengan koneksi ke USB-to-Serial converter.
Rangkaian dasar UART Pico ke USB-TTL :
- Pico GPIO 0 (Tx) : Rx USB-TTL
- Pico GPIO 1 (Rx) : Tx USB-TTL
- Pico GND : GND USB-TTL
Software
- Pada STM32 konfigurasi dilakukan menggunakan STM32CubeIDE. UART diaktifkan melalui pengaturan USART (misalnya USART1) dalam mode asynchronous, dan parameter seperti baud rate (misalnya 9600), parity, dan stop bit disesuaikan. Kode programnya menggunakan library HAL, misalnya
HAL_UART_Transmit()
untuk mengirim data danHAL_UART_Receive()
untuk menerima data. - Pada Raspberry Pi Pico, dengan MicroPython, UART dikonfigurasi menggunakan
machine.UART
. Contohnya,UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))
digunakan untuk inisialisasi, dan data dikirim melaluiuart.write()
dan diterima denganuart.read()
.
3. Bagaimana konfigurasi komunikasi SPI pada STM32 dan Raspberry Pipico secara hardware (rangkaian) maupun software (program)
Jawab :
Hardware
- STM32
Pada STM32, komunikasi SPI menggunakan empat pin: MOSI, MISO, SCK, dan CS. Misalnya SPI1 pada STM32F103 menggunakan PA5 (SCK), PA6 (MISO), PA7 (MOSI), dan PA4 sebagai CS.
- Raspberry Pi Pico
Pada Raspberry Pi Pico, SPI dapat dikonfigurasi menggunakan SPI0 atau SPI1. Untuk SPI0, pin default adalah GPIO18 (SCK), GPIO19 (MOSI), GPIO16 (MISO), dan CS bisa dipilih bebas (misalnya GPIO17).
Software
- Pada STM32, SPI dikonfigurasi di STM32CubeIDE dengan memilih SPI1 sebagai master, menentukan clock polarity dan phase, serta kecepatan komunikasi. Program menggunakan library HAL dengan fungsi seperti
HAL_SPI_Transmit()
danHAL_SPI_Receive()
untuk pertukaran data. - Pada Raspberry Pi Pico, dengan MicroPython, SPI diinisialisasi menggunakan
machine.SPI
, misalnyaSPI(0, baudrate=1000000, polarity=0, phase=0, sck=Pin(18), mosi=Pin(19), miso=Pin(16))
, dan komunikasi dilakukan denganspi.write()
atauspi.readinto()
.
4. Bagaimana konfigurasi komunikasi I2C pada STM32 dan Raspberry Pipico secara hardware (rangkaian) maupun software (program)
Jawab :
Hardware
- STM32
Pada STM32, komunikasi I2C umumnya menggunakan pin seperti PB6 (SCL) dan PB7 (SDA) untuk I2C1. Diperlukan resistor pull-up (misalnya 4.7kΩ) ke VCC pada kedua jalur.
- Raspberry Pi Pico
Pada Raspberry Pi Pico, I2C0 menggunakan GPIO0 (SDA) dan GPIO1 (SCL), juga memerlukan resistor pull-up.
Software
- Pada STM32, Konfigurasi I2C dilakukan di STM32CubeIDE dengan mengaktifkan I2C1, memilih mode master/slave, serta mengatur kecepatan (misalnya 100 kHz). Program menggunakan fungsi
HAL_I2C_Master_Transmit()
danHAL_I2C_Master_Receive()
untuk komunikasi antar perangkat. - Pada Raspberry Pi Pico, dengan MicroPython, I2C diatur melalui
machine.I2C
, misalnyaI2C(0, scl=Pin(1), sda=Pin(0), freq=100000)
. Fungsii2c.scan()
digunakan untuk mendeteksi perangkat yang terhubung, sedangkanwriteto()
danreadfrom()
untuk mengirim dan menerima data.
Tidak ada komentar:
Posting Komentar