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

Postingan populer dari blog ini