BAHAN PRESENSTASI UNTUK MATA KULIAH ELEKTRONIKA 2022




Oleh :

Adib Naufal Sayyid

2210953002 


Dosen Pengampu :

Darwison, M.T.

Rizki Wahyu Pratama, M.T


Referensi:

a. Darwison, 2010, ” Teori, Simulasi, dan Aplikasi Elektronika ” ”, Jilid 1, ISBN: 978-602-9081-10-7, CV Ferila, Padang. 
b. Darwison, 2010, ” Teori, Simulasi, dan Aplikasi Elektronika ””,Jilid 2,  ISBN: 978-602-9081-10-8, CV Ferila, Padang.
c. Robert L. Boylestad and Louis Nashelsky, Electronic Devices and Circuit Theory, Pearson, 2013 
d. Jimmie J. Cathey, Theory and Problems of Electronic Device and Circuit, McGraw Hill, 2002.
e. Keith Brindley, Starting Electronics, Newness 3rd Edition, 2005.
f. Ian R. Sinclair and John Dunton, Practical Electronics Handbook, Newness, 2007.
g. John M. Hughes, Practical Electronics: Components and Techniques, O’Reilly Media, 2016.
 


Jurusan Teknik Elektro
Fakultas Teknik
Padang 2022

tp modul 3

 SOAl TUGAS PENDAHULUAN

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

Jawab : 

1. UART (Universal Asynchronous Receiver Transmitter)

Protokol komunikasi serial asynchronous, artinya tidak membutuhkan sinyal clock eksternal.

Komunikasi terjadi dua jalur utama:

  • TX (Transmit)
  • RX (Receive)

Ciri-ciri:

  • Hanya dua kabel (TX dan RX)
  • Komunikasi point-to-point
  • Baud rate harus disepakati kedua perangkat


2. SPI (Serial Peripheral Interface)

Protokol komunikasi serial synchronous yang menggunakan clock eksternal.Biasanya digunakan untuk komunikasi dengan kecepatan tinggi antara mikrokontroler dan peripheral.

Pin SPI:

  • MOSI (Master Out Slave In)
  • MISO (Master In Slave Out)
  • SCLK (Serial Clock)
  • SS/CS (Slave Select / Chip Select)

Ciri-ciri:

  • Full duplex
  • Biasanya 1 master dan banyak slave


3. I2C (Inter-Integrated Circuit)

Protokol komunikasi serial synchronous, tetapi hanya 2 jalur:

  • SDA (Serial Data)
  • SCL (Serial Clock)

Ciri-ciri:

  • Multi-master, multi-slave
  • Setiap perangkat punya alamat unik (7-bit atau 10-bit)


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

jawab:

Hardware:

Komponen yang dibutuhkan:

  • STM32
  • Perangkat komunikasi UART lain (Raspberry Pi Pico, USB to TTL, atau sensor UART)

Koneksi:

  • TX (PA9) → RX perangkat lain
  • RX (PA10) ← TX perangkat lain
  • GND → GND perangkat lain


Software:

Langkah-langkah dengan STM32CubeMX:

  • Buka STM32CubeMX
  • Aktifkan UART1 pada pin PA9 (TX) dan PA10 (RX)
  • Mode: Asynchronous
  • Baud rate: 9600
  • Klik "Project", beri nama, lalu "Generate Code"
  • Buka di STM32CubeIDE
program :

#include "main.h"
UART_HandleTypeDef huart1;

uint8_t msg[] = "Hello from STM32!\r\n";

int main(void)
{
  HAL_Init();
  SystemClock_Config();
  MX_USART1_UART_Init();

  HAL_UART_Transmit(&huart1, msg, sizeof(msg)-1, HAL_MAX_DELAY);

  while (1)
  {
    uint8_t data;
    if (HAL_UART_Receive(&huart1, &data, 1, 1000) == HAL_OK)
    {
      HAL_UART_Transmit(&huart1, &data, 1, 100);  // echo
    }
  }
}



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

a) Konfigurasi SPI STM32

Hardware:

Membutuhkan 4 jalur:

  • MOSI : Master Out Slave In

  • MISO : Master In Slave Out

  • SCK : Clock

  • SS/CS : Optional jika hanya 1 slave

Contoh (STM32F103C8T6 – SPI1):

  • PA5 → SCK

  • PA6 → MISO

  • PA7 → MOSI

  • PA4 → NSS / CS

Software:

Langkah konfigurasi dengan CubeMX:

  1. Aktifkan SPI1 dan set sebagai master

  2. Pilih pin: SCK (PA5), MISO (PA6), MOSI (PA7)

  3. Atur clock polarity (CPOL), phase (CPHA) dan prescaler

  4. Generate code, buka di STM32CubeIDE


program STM32HAL:

uint8_t txData = 0xAA;
uint8_t rxData;

HAL_SPI_Transmit(&hspi1, &txData, 1, 100);  // Kirim data
HAL_SPI_Receive(&hspi1, &rxData, 1, 100);   // Terima data


transmisi full duplex :

HAL_SPI_TransmitReceive(&hspi1, &txData, &rxData, 1, 100);



b. konfigurasi SPI raspberry pi pico 

hardware :
default pin :
GP2 = SCK
GP3 = MOSI
GP4 = MISO
GP5 = CS

software :
microphyton program :

Program phyton 
from machine import Pin, SPI
import time

spi = SPI(0, baudrate=1000000, polarity=0, phase=0,
          sck=Pin(2), mosi=Pin(3), miso=Pin(4))

cs = Pin(5, Pin.OUT)
cs.value(1)

cs.value(0)
spi.write(b'\x9F')  # Kirim perintah misalnya ke flash
cs.value(1)




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

Jawab :

A) Konfigurasi I2C pada STM32

Hardware:

Jalur:

  • SDA

  • SCL

Pin STM32F103C8T6 (I2C1):

  • PB6 → SCL

  • PB7 → SDA

Software:

Langkah konfigurasi:

  1. Buka STM32CubeMX, aktifkan I2C1, dan pilih pin (PB6 = SCL, PB7 = SDA).

  2. Pilih mode: I2C Master

  3. Set timing I2C (default: 100 kHz / 400 kHz)

  4. Generate code, buka di STM32CubeIDE


program :
uint8_t data = 0x01;
uint8_t received = 0;
uint8_t device_address = 0x3C << 1; // Alamat device I2C (harus dikali 2)

HAL_I2C_Mem_Write(&hi2c1, device_address, 0x00, I2C_MEMADD_SIZE_8BIT, &data, 1, 100);

HAL_I2C_Mem_Read(&hi2c1, device_address, 0x00, I2C_MEMADD_SIZE_8BIT, &received, 1, 100);


b) Konfigurasi I2C pada Raspberry Pi Pico

Hardware:

Default pin I2C0 pada Pico:

  • GPIO0 → SDA

  • GPIO1 → SCL

Gunakan pull-up resistor:

  • Nilai: 4.7 kΩ ke 3.3V untuk SDA dan SCL


Software :
from machine import Pin, I2C
import time

# Inisialisasi I2C0 (default)
i2c = I2C(0, scl=Pin(1), sda=Pin(0), freq=100000)

# Scan alamat device I2C
devices = i2c.scan()
print("Device I2C ditemukan:", devices)

# Tulis dan baca register dari device
addr = devices[0]
i2c.writeto_mem(addr, 0x00, b'\x01')  # Tulis 0x01 ke register 0x00
data = i2c.readfrom_mem(addr, 0x00, 1)
print("Data dibaca:", data)

Komentar

Postingan populer dari blog ini