TUGAS PENDAHULUAN
TUGAS PENDAHULUAN
1.
Penjelasan Protokol Komunikasi UART, SPI, dan I2C
a. UART
(Universal Asynchronous Receiver Transmitter)
- Protokol komunikasi asinkron satu-ke-satu.
- Tidak menggunakan sinyal clock (berbeda dengan SPI/I2C).
- Komunikasi hanya butuh dua pin:
- TX (Transmit)
- RX (Receive)
- Umumnya digunakan untuk komunikasi dengan modul seperti GPS,
Bluetooth, dll.
b. SPI
(Serial Peripheral Interface)
- Protokol komunikasi sinkron dengan arsitektur master-slave.
- Menggunakan 4 kabel utama:
- MOSI (Master Out Slave In)
- MISO (Master In Slave Out)
- SCK (Serial Clock)
- SS/CS (Slave Select/Chip
Select)
- Lebih cepat dari I2C, tapi butuh lebih banyak pin jika banyak
slave.
c. I2C
(Inter-Integrated Circuit)
- Protokol komunikasi sinkron dan multi-master/slave.
- Hanya butuh 2 kabel:
- SDA (Serial Data Line)
- SCL (Serial Clock Line)
- Setiap perangkat memiliki alamat unik.
2.
Konfigurasi UART
a. STM32
Hardware:
- Sambungkan TX microcontroller ke RX perangkat lain, dan
sebaliknya.
- Gunakan pin UART pada STM32 (misalnya PA9 = TX, PA10 = RX pada
STM32F103).
Software:
- Menggunakan STM32CubeMX:
- Aktifkan USARTx, atur baud rate, parity, stop bits.
- Code di IDE (HAL):
HAL_UART_Transmit(&huart1,
(uint8_t*)"Hello\n", 6, 100);
HAL_UART_Receive(&huart1,
buffer, 6, 100);
b. Raspberry
Pi Pico
Hardware:
- Gunakan GPIO untuk UART (misalnya GPIO0 = TX, GPIO1 = RX).
Software
(MicroPython):
from
machine import UART, Pin
uart =
UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))
uart.write('Hello\n')
data =
uart.read()
3.
Konfigurasi SPI
a. STM32
Hardware:
- Sambungkan MOSI, MISO, SCK, dan SS sesuai pinout SPI STM32.
- Contoh: PA5 (SCK), PA6 (MISO), PA7 (MOSI), dan PA4 (NSS).
Software
(HAL):
HAL_SPI_Transmit(&hspi1,
data, len, timeout);
HAL_SPI_Receive(&hspi1,
buffer, len, timeout);
b. Raspberry
Pi Pico
Hardware:
- Gunakan pin default SPI (misalnya SPI0: GPIO2=SCK, GPIO3=MOSI,
GPIO4=MISO, GPIO5=CS).
Software
(MicroPython):
from
machine import SPI, Pin
spi =
SPI(0, baudrate=1000000, polarity=0, phase=0, sck=Pin(2), mosi=Pin(3),
miso=Pin(4))
spi.write(b'Hello')
4.
Konfigurasi I2C
a. STM32
Hardware:
- Sambungkan SDA dan SCL ke device I2C lainnya.
- Contoh: PB6 (SCL), PB7 (SDA) untuk I2C1.
- Gunakan resistor pull-up 4.7kΩ pada SDA dan SCL.
Software
(HAL):
HAL_I2C_Master_Transmit(&hi2c1,
device_addr, data, len, timeout);
HAL_I2C_Master_Receive(&hi2c1,
device_addr, buffer, len, timeout);
b. Raspberry
Pi Pico
Hardware:
- I2C0 default: GPIO8 (SDA), GPIO9 (SCL).
- Tambahkan pull-up resistor 4.7kΩ.
Software
(MicroPython):
from
machine import I2C, Pin
i2c =
I2C(0, scl=Pin(9), sda=Pin(8), freq=100000)
i2c.scan() # mencari alamat perangkat
i2c.writeto(0x3C,
b'Hello')
Komentar
Posting Komentar