CỘNG ĐỒNG ĐIỆN TỬ VIỆT NAM – TẬP ĐOÀN ĐIỆN TỬ VIỆT NAM
UART vs I2C vs SPI:...
 
Chia sẻ:
Notifications
Clear all

UART vs I2C vs SPI: Khi nào chọn cái nào?

0 Bài viết
1 Thành viên
0 Reactions
169 Lượt xem
0
Topic starter
UART vs I2C vs SPI: Khi nào chọn cái nào?
Có thể là đồ họa về văn bản
1> UART - Đơn giản, kết nối 1–1
Bản chất: 2 dây TX, RX (+ GND), không có clock.
Dùng tốt khi:
- Gửi log/debug
- Giao tiếp với PC
- Module Bluetooth/GPS
- Giao diện lệnh đơn giản
Ví dụ: MCU ↔ module Bluetooth để gửi/nhận lệnh AT.
Hạn chế:
- Chủ yếu point-to-point (1–1)
- Tốc độ thường thấp hơn SPI
- Không có addressing nhiều thiết bị trên cùng bus
→ Chọn UART khi ưu tiên đơn giản hơn tốc độ.
2> I2C - Nhiều thiết bị, ít chân
Bản chất: 2 dây SDA, SCL dùng chung bus, có địa chỉ thiết bị.
Dùng tốt khi:
- Nhiều ngoại vi tốc độ thấp
- Sensor, RTC, EEPROM
- Giao tiếp nội bộ trên PCB
Ví dụ: MCU nói chuyện với IMU + cảm biến nhiệt + RTC trên cùng bus I2C.
Hạn chế:
- Chậm hơn SPI
- Cần điện trở pull-up
- Dễ nhạy với nhiễu/đường dây dài
→ Chọn I2C khi cần nhiều thiết bị nhưng ít chân GPIO.
3> SPI — Nhanh, ổn định, timing "chắc"
Bản chất: Có clock, thường full-duplex, master–slave. (SCLK, MOSI, MISO, CS).
Dùng tốt khi:
- Dữ liệu tốc độ cao
- Màn hình, ADC, Flash ngoài
- Truyền thông cần timing xác định (deterministic)
Ví dụ: SPI điều khiển TFT display hoặc đọc/ghi Flash ngoài.
Hạn chế:
- Nhiều dây hơn
- Mỗi slave thường cần 1 chân CS riêng
- Kém "mở rộng" nếu rất nhiều thiết bị
→ Chọn SPI khi cần tốc độ và độ tin cậy/timing quan trọng.

Robotics Việt Nam, Robotics, Robot AI, Robot Công Nghiệp, Robot Vệ Sinh Công Nghiệp, Robot Phục Vụ, Robot Logistics