Senin, 18 Mei 2020

TP M3 Praktikum Mikroprosesr dan Mikrokontroler 2025

 




1. Prosedur
[Kembali]

- Tugas Pendahuluan 

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

Jawab :

    UART (Universal Asynchronous Receiver Transmitter) adalah protokol komunikasi asinkron yang hanya menggunakan dua jalur, yaitu TX untuk mengirim data dan RX untuk menerima data, tanpa memerlukan sinyal clock eksternal. 

    SPI (Serial Peripheral Interface) adalah protokol sinkron yang lebih cepat, menggunakan empat jalur utama yaitu MOSI, MISO, SCLK, dan CS, dengan data dikirim dan diterima secara bersamaan menggunakan sinyal clock dari master. 

    I2C (Inter-Integrated Circuit) juga merupakan protokol sinkron, tetapi hanya menggunakan dua jalur yaitu SDA untuk data dan SCL untuk clock, serta memungkinkan komunikasi antara satu master dengan banyak slave menggunakan sistem alamat unik. Ketiga protokol ini memiliki kelebihan dan kekurangan masing-masing tergantung kebutuhan sistem, seperti kecepatan, jumlah perangkat yang terhubung, serta jumlah pin yang tersedia pada mikrokontroler.

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

    Jawab :



    Konfigurasi komunikasi UART pada STM32 secara hardware dilakukan dengan menghubungkan pin TX dan RX dari mikrokontroler ke perangkat eksternal seperti modul USB-to-Serial atau mikrokontroler lain, di mana level tegangan harus sesuai (biasanya 3.3V). Pada STM32, pin TX dan RX dipetakan ke fungsi alternatif dari GPIO dan dihubungkan ke peripheral USART yang sudah disediakan oleh chip. Sementara pada Raspberry Pi Pico, konfigurasi hardware juga mengandalkan dua pin GPIO yang disetting sebagai TX dan RX, dengan level tegangan 3.3V juga, dan bisa dihubungkan ke PC melalui modul USB-Serial atau langsung ke perangkat lain. Secara software, konfigurasi UART pada STM32 dilakukan melalui STM32CubeMX untuk mengatur clock, pinout, baud rate, dan parameter lainnya, lalu kode program dihasilkan dan dikembangkan di STM32CubeIDE menggunakan pustaka HAL atau LL. Pengguna dapat menulis kode untuk mengirim dan menerima data menggunakan fungsi seperti HAL_UART_Transmit dan HAL_UART_Receive. 

    Sementara pada Raspberry Pi Pico, konfigurasi UART secara software bisa dilakukan menggunakan MicroPython dengan pustaka machine, di mana pengguna mendefinisikan objek UART, memilih nomor UART (seperti UART0), menetapkan TX dan RX ke GPIO tertentu, dan mengatur baud rate serta parameter lainnya sebelum menggunakan metode write dan read untuk berkomunikasi. Dalam bahasa C untuk Pico, pengguna menggunakan Pico SDK dan fungsi-fungsi seperti uart_init, uart_set_baudrate, gpio_set_function, dan uart_puts untuk mengirim data, serta uart_getc atau uart_is_readable untuk membaca data. Pada kedua platform, komunikasi UART biasanya juga dapat diperluas dengan fitur interrupt atau DMA agar lebih efisien dalam penanganan data.

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



    Konfigurasi komunikasi SPI pada STM32 secara hardware dilakukan dengan menghubungkan pin-pin SPI seperti SCK (clock), MOSI (Master Out Slave In), MISO (Master In Slave Out), dan CS (chip select) ke perangkat slave yang sesuai, dengan mempertimbangkan level tegangan yang kompatibel, umumnya 3.3V. Pin-pin ini diatur dalam mode alternatif (alternate function) dan dihubungkan ke peripheral SPI internal yang tersedia di dalam mikrokontroler STM32. Untuk Raspberry Pi Pico, konfigurasi hardware SPI juga melibatkan koneksi empat jalur utama ke perangkat slave, dengan pin-pin SPI seperti SCK, MOSI, MISO, dan CS yang dapat dipetakan ke berbagai GPIO sesuai fleksibilitas chip RP2040, tetap dengan tegangan 3.3V. 

    Secara software, pada STM32 konfigurasi SPI dapat dilakukan menggunakan STM32CubeMX untuk mengatur mode master/slave, frekuensi clock, CPOL/CPHA, ukuran data, dan pinout, lalu kode dihasilkan ke dalam STM32CubeIDE yang menggunakan pustaka HAL atau LL untuk pengembangan lebih lanjut. Fungsi-fungsi seperti HAL_SPI_Transmit, HAL_SPI_Receive, dan HAL_SPI_TransmitReceive digunakan untuk mentransfer data SPI. Sementara itu, pada Raspberry Pi Pico, konfigurasi SPI secara software dapat dilakukan dengan MicroPython menggunakan pustaka machine, di mana pengguna membuat objek SPI dengan menentukan SPI0 atau SPI1, memilih GPIO untuk SCK, MOSI, dan MISO, serta mengatur frekuensi clock, polaritas dan fase. Untuk pengiriman dan penerimaan data, digunakan metode seperti write, readinto, dan write_readinto. Dalam bahasa C menggunakan Pico SDK, pengguna dapat menginisialisasi SPI dengan spi_init, memilih fungsi pin dengan gpio_set_function, serta mengatur parameter SPI menggunakan spi_set_format, dan untuk komunikasi data digunakan fungsi spi_write_blocking atau spi_read_blocking. Baik pada STM32 maupun Raspberry Pi Pico, komunikasi SPI dapat ditingkatkan efisiensinya dengan penggunaan interrupt atau DMA, terutama untuk pengiriman data besar atau real-time.


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



    Konfigurasi komunikasi I2C pada STM32 secara hardware dilakukan dengan menghubungkan dua jalur utama yaitu SDA (data) dan SCL (clock) antara mikrokontroler dan perangkat slave seperti sensor atau EEPROM, dengan penambahan resistor pull-up eksternal (biasanya 4.7kΩ) pada kedua jalur ke tegangan 3.3V agar jalur dapat berfungsi sebagai open-drain. Pin SDA dan SCL pada STM32 dipetakan ke fungsi alternatif GPIO dan terhubung ke peripheral I2C internal yang dapat diatur sebagai master atau slave. Pada Raspberry Pi Pico, konfigurasi hardware I2C juga menggunakan dua pin GPIO yang disetting sebagai SDA dan SCL, terhubung ke perangkat slave dan disertai resistor pull-up, dengan dukungan hingga dua antarmuka I2C independen yaitu I2C0 dan I2C1. 

    Secara software, konfigurasi I2C pada STM32 dapat dilakukan melalui STM32CubeMX untuk memilih jalur I2C yang digunakan, mengatur alamat slave jika diperlukan, serta mengatur kecepatan komunikasi dan mode kerja, kemudian kode program dikembangkan di STM32CubeIDE menggunakan pustaka HAL atau LL. Fungsi-fungsi seperti HAL_I2C_Master_Transmit, HAL_I2C_Master_Receive, dan HAL_I2C_Mem_Read digunakan untuk mengakses data dari slave. Sementara itu, pada Raspberry Pi Pico, konfigurasi I2C secara software dapat dilakukan dengan MicroPython melalui pustaka machine, di mana pengguna membuat objek I2C, memilih antara I2C0 atau I2C1, menentukan GPIO yang digunakan untuk SDA dan SCL, serta mengatur frekuensi clock. Untuk membaca dan menulis data, digunakan metode seperti readfrom, writeto, dan scan untuk mendeteksi perangkat yang terhubung. Dalam bahasa C menggunakan Pico SDK, pengguna menginisialisasi I2C dengan i2c_init, mengatur fungsi pin dengan gpio_set_function, menambahkan pull-up internal jika diperlukan, dan menggunakan fungsi seperti i2c_write_blocking dan i2c_read_blocking untuk komunikasi. Baik pada STM32 maupun Raspberry Pi Pico, protokol I2C mengatur sinkronisasi data melalui sinyal clock dan alamat slave, serta dapat mendukung komunikasi dengan banyak perangkat hanya dengan dua jalur.


2. Hardware dan Diagram Blok [Kembali]



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]



4. Flowchart dan Listing Program [Kembali]

 

5. Video Demo [Kembali]



6. Kondisi [Kembali]



7. Video Simulasi [Kembali]



8. Download File[Kembali]

0 comments:

Posting Komentar