TP M3 MIKRO

 






1. TUGAS PENDAHULUAN[Kembali]

1. Jelaskan apa itu protokol komunikasi UART, SPI, dan I2C 

JAWAB:

a. UART (Universal Asynchronous Receiver Transmitter)
UART adalah salah satu jenis protokol komunikasi serial asynchronous, artinya pengiriman data dilakukan tanpa menggunakan sinyal clock sebagai acuan sinkronisasi antara pengirim dan penerima. Data dikirimkan secara bit per bit melalui jalur komunikasi serial, biasanya menggunakan dua jalur utama yaitu:

  • TX (Transmit): untuk mengirim data

  • RX (Receive): untuk menerima data

Format komunikasi UART biasanya terdiri dari:

  • Start bit: menandakan awal pengiriman data

  • Data bit: data aktual yang dikirim

  • Parity bit (opsional): untuk pemeriksaan error

  • Stop bit: menandakan akhir data

b. SPI (Serial Peripheral Interface)
SPI adalah protokol komunikasi serial synchronous yang menggunakan clock untuk sinkronisasi data antara perangkat master dan slave. SPI memungkinkan pengiriman data secara full-duplex, artinya pengiriman dan penerimaan data dapat terjadi secara bersamaan.

SPI terdiri dari 4 jalur utama:

  • MOSI (Master Out Slave In): Data dari master ke slave

  • MISO (Master In Slave Out): Data dari slave ke master

  • SCK (Serial Clock): Clock dari master

  • SS/CS (Slave Select/Chip Select): Untuk memilih slave yang aktif


c. I2C (Inter-Integrated Circuit)
I2C adalah protokol komunikasi serial synchronous yang hanya menggunakan dua jalur komunikasi:

  • SCL (Serial Clock Line): Jalur clock

  • SDA (Serial Data Line): Jalur data

I2C dapat digunakan dalam komunikasi multi-master dan multi-slave. Setiap perangkat yang terhubung dalam bus I2C memiliki alamat unik, sehingga master dapat berkomunikasi dengan banyak slave hanya menggunakan dua jalur kabel.


2. Bagaimana konfigurasi komunikasi UART pada STM32 dan Raspberry Pipico secara hardware (rangkaian) maupun software (program)

JAWAB:

a. Hardware (Rangkaian)

  • STM32
    Sambungkan pin TX ke RX perangkat lain, RX ke TX, dan sambungkan ground antar perangkat.
    Contoh:

    • STM32 TX → Modem GSM RX

    • STM32 RX → Modem GSM TX

    • GND STM32 → GND modem

  • Raspberry Pi Pico
    Gunakan GPIO yang tersedia, contoh GPIO0 untuk TX dan GPIO1 untuk RX, lalu sambungkan ke perangkat lain dengan konfigurasi yang sama (TX ke RX dan RX ke TX), serta sambungkan GND.

b. Software (Program)

  • STM32 (menggunakan STM32CubeIDE)

    1. Buka STM32CubeIDE, buat project baru

    2. Pilih pin USART (misal USART1 TX di PA9 dan RX di PA10)

    3. Atur Baudrate (misal 9600 bps), data bits, stop bit, dan parity

    4. Generate code

    5. Gunakan fungsi:

      HAL_UART_Transmit(&huart1, (uint8_t*)"Hello", 5, 1000); HAL_UART_Receive(&huart1, buffer, size, timeout);
  • Raspberry Pi Pico (MicroPython)

    1. Import library UART

    2. Inisialisasi UART, contoh:

      from machine import UART uart0 = UART(0, baudrate=9600, tx=0, rx=1)
    3. Kirim dan terima data menggunakan:

      uart0.write("Hello") data = uart0.read()

3. Bagaimana konfigurasi komunikasi SPI pada STM32 dan Raspberry Pipico secara hardware (rangkaian) maupun software (program)

JAWAB:

a. Hardware (Rangkaian)

  • STM32
    Hubungkan:

    • MOSI ke MOSI perangkat slave

    • MISO ke MISO

    • SCK ke SCK

    • CS ke pin GPIO (untuk memilih slave)

    • GND dihubungkan bersama

  • Raspberry Pi Pico
    Gunakan GPIO sesuai konfigurasi SPI. Contoh:

    • GPIO2 → SCK

    • GPIO3 → MOSI

    • GPIO4 → MISO

    • GPIO5 → CS

b. Software (Program)

  • STM32 (STM32CubeIDE)

    1. Pilih SPI (misal SPI1) dan set sebagai master

    2. Tentukan prescaler, CPOL, CPHA sesuai kebutuhan

    3. Generate code

    4. Gunakan fungsi:

      HAL_SPI_Transmit(&hspi1, data, size, timeout); HAL_SPI_Receive(&hspi1, data, size, timeout);
  • Raspberry Pi Pico (MicroPython)

    1. Import library SPI

    2. Inisialisasi SPI:

      from machine import SPI, Pin spi0 = SPI(0, baudrate=1000000, polarity=0, phase=0, sck=Pin(2), mosi=Pin(3), miso=Pin(4))
    3. Kirim dan baca data:

      spi0.write(b'Hello') data = spi0.read(5)

4. Bagaimana konfigurasi komunikasi I2C pada STM32 dan Raspberry Pipico secara hardware (rangkaian) maupun software (program)

JAWAB:

a. Hardware (Rangkaian)

  • STM32
    Hubungkan:

    • SDA ke SDA perangkat lain

    • SCL ke SCL perangkat lain

    • Tambahkan pull-up resistor (4.7kΩ) di jalur SDA dan SCL

    • GND dihubungkan bersama

  • Raspberry Pi Pico
    Gunakan GPIO sesuai program. Contoh:

    • GPIO0 → SDA

    • GPIO1 → SCL

    • Tambahkan pull-up resistor

b. Software (Program)

  • STM32 (STM32CubeIDE)

    1. Pilih I2C (misal I2C1)

    2. Atur clock speed (100kHz/400kHz) dan addressing mode (7-bit/10-bit)

    3. Generate code

    4. Gunakan fungsi:

      HAL_I2C_Master_Transmit(&hi2c1, slave_address, data, size, timeout); HAL_I2C_Master_Receive(&hi2c1, slave_address, data, size, timeout);
  • Raspberry Pi Pico (MicroPython)

    1. Import library I2C

    2. Inisialisasi I2C:

      from machine import I2C, Pin i2c0 = I2C(0, scl=Pin(1), sda=Pin(0), freq=100000)
    3. Gunakan:

      i2c0.scan() # Untuk scan alamat perangkat i2c0.writeto(0x3C, b'Hi') # Mengirim data data = i2c0.readfrom(0x3C, 5)


 


Tidak ada komentar:

Posting Komentar

  BAHAN PRESENTASI UNTUK MATA KULIAH  SISTEM DIGITAL 2024 OLEH: Afifah Febry Nabilla 2210952001 Dosen Pengampu: Darwison, M.T Referensi:  a....