Chuyển đến nội dung
AIOTAIOT
  • Trang chủ
  • Giới thiệu
  • Tin tức
  • Sản phẩm
  • Giải pháp
    • Chấm công bằng Face ID
    • Thiết bị đọc căn cước
    • IoT trong giáo dục
    • IoT trong quản lý năng lượng
    • IoT trong y tế
  • Đào tạo
    • Khóa đào tạo cơ bản
      • Hệ thống nhúng
      • LabVIEW FPGA
      • Phần cứng máy tính & Truyền thông công nghiệp
      • FPGA cơ bản
    • Khóa đào tạo nâng cao
      • LabVIEW FPGA High Performance
    • Tài liệu
  • PCCC
  • Liên hệ
  • icon
    097 186 8316    |    0839 799 889
Đào tạo, FPGA cơ bản, Khóa đào tạo cơ bản

BÀI 6.1: PWM (ĐIỀU CHẾ ĐỘ RỘNG XUNG) – ĐIỀU KHIỂN ĐỘ SÁNG VÀ TỐC ĐỘ

Đã đăng trên 09/02/202608/02/2026 bởi ThaoNguyen
09
Th2

MODULE 6: GIAO TIẾP THẾ GIỚI THỰC & PROJECT CUỐI KHÓA

Chào bạn! Chúng ta đã cùng nhau đi qua một hành trình dài từ những cổng logic đơn giản đến những cỗ máy trạng thái (FSM) phức tạp. Bây giờ là lúc chúng ta bước ra khỏi “vỏ bọc” logic thuần túy để bắt đầu tương tác với thế giới thực thông qua kỹ thuật điều chế độ rộng xung (PWM).

1. Giới thiệu

Cho đến nay, bạn đã biết rằng FPGA hoạt động dựa trên hai mức điện áp dứt khoát: 0V (Logic 0) và 3.3V (Logic 1). Tuy nhiên, trong thực tế, chúng ta thường cần những mức độ “ở giữa”. Ví dụ: làm thế nào để đèn LED sáng mờ đi một nửa, hay làm thế nào để động cơ chạy chậm lại thay vì chỉ quay hết công suất hoặc dừng hẳn?

Đó chính là lúc PWM (Pulse Width Modulation) xuất hiện. PWM là kỹ thuật “đánh lừa” thị giác và các thiết bị vật lý bằng cách bật tắt tín hiệu số cực nhanh. Trong công nghiệp, PWM là linh hồn của các bộ biến tần, bộ điều khiển robot và các hệ thống sạc pin thông minh.

Điểm đặc biệt của chip Artix-7 XC7A100T trên bo mạch AIOT-ARTIX7 là khả năng tạo ra hàng trăm kênh PWM hoàn toàn song song với độ chính xác cực cao. Bạn có thể điều khiển độ sáng của 8 đèn LED với 8 mức độ khác nhau cùng một lúc mà không làm CPU (như trên i.MX93) bị quá tải. Đây chính là lợi thế tuyệt đối của tư duy phần cứng.

2. Nội dung chính

2.1. Bản chất của PWM: “Bật và Tắt” thật nhanh

Hãy tưởng tượng bạn có một công tắc đèn:

  • Nếu bạn bật nó 1 giây rồi tắt 1 giây, bạn sẽ thấy đèn nhấp nháy.
  • Nhưng nếu bạn bật/tắt nó 1.000 lần trong 1 giây, mắt người sẽ không còn thấy nó nhấp nháy nữa. Thay vào đó, bạn sẽ thấy đèn sáng mờ đi vì năng lượng trung bình cung cấp cho đèn chỉ còn một nửa.

Các thông số quan trọng:

  • Duty Cycle (Chu kỳ nhiệm vụ): Là tỉ lệ thời gian “Bật” (1) so với tổng thời gian của một chu kỳ.
    • Duty Cycle 0%: Đèn tắt hoàn toàn.
    • Duty Cycle 50%: Đèn sáng một nửa.
    • Duty Cycle 100%: Đèn sáng hết công suất.
  • Frequency (Tần số): Tốc độ bật tắt. Để điều khiển LED không bị rung (flicker), chúng ta thường dùng tần số trên 1kHz (1000 lần/giây).

2.2. Tại sao FPGA lại là “Bậc thầy PWM”?

So sánh sức mạnh điều phối dữ liệu giữa hai nền tảng:

  • Vi điều khiển (như Arduino hay nhân M33 trên i.MX93): Các vi điều khiển thường chỉ có một vài bộ Timer cứng để tạo ra PWM. Nếu bạn muốn điều khiển 100 bóng đèn LED độc lập, vi điều khiển sẽ “bó tay” hoặc bị trễ nặng do quá tải xử lý tuần tự.
  • Với FPGA (Artix-7): Vì mọi thứ là song song, bạn có thể tự thiết kế 100 bộ tạo PWM riêng biệt bằng VHDL. Mỗi bộ PWM có “lối đi” riêng, không dùng chung tài nguyên với nhau. Điều này cho phép điều khiển robot nhiều trục hoặc các tấm màn hình LED khổng lồ một cách mượt mà.

2.3. Cách thiết kế PWM bằng VHDL trên Artix-7

Để tạo ra PWM, chúng ta cần phối hợp những gì đã học ở Module 5:

  • Bộ đếm (Counter): Chạy liên tục từ 0 đến một giá trị cực đại (ví dụ 255). Nó sử dụng xung nhịp 50MHz trên bo mạch để đếm.
  • Bộ so sánh (Comparator): So sánh giá trị của bộ đếm với một giá trị đích (Set point).
    • Nếu Counter < Set_point -> Đầu ra = 1.
    • Nếu Counter >= Set_point -> Đầu ra = 0.
  • Kết quả: Bằng cách thay đổi Set_point, bạn sẽ thay đổi được Duty Cycle (độ rộng mức cao).

Simulation results for the PWM Generator in VHDL

2.4. Thực hành trên bo mạch AIOT-ARTIX7

Chúng ta sẽ thực hiện một thí nghiệm trực quan để thấy rõ tác động của PWM:

  • Đầu vào: Sử dụng 8 Switch (SW1-SW8) để đại diện cho giá trị Set_point (từ 0 đến 255).
  • Đầu ra: Đèn LED1.
  • Trải nghiệm: Khi bạn gạt các Switch để tăng giá trị nhị phân, bạn sẽ thấy LED1 sáng dần lên một cách mịn màng. Dòng điện đang được “băm nhỏ” bên trong chip Artix-7 theo đúng ý muốn của bạn mà không hề có độ trễ phần mềm.

3. Tổng kết

  • PWM: Là cách tạo ra giá trị năng lượng trung bình (tương tự Analog) từ tín hiệu số dứt khoát (0 và 1) bằng cách bật tắt cực nhanh.
  • Duty Cycle: Quyết định năng lượng đầu ra trung bình (độ sáng LED, tốc độ động cơ).
  • Cấu trúc phần cứng: PWM trong FPGA được xây dựng từ một bộ đếm và một bộ so sánh hoạt động đồng bộ với xung Clock.
  • Tính song song: FPGA có thể tạo ra vô số kênh PWM mà không làm giảm hiệu suất hệ thống hay ảnh hưởng đến các tác vụ khác.

Kiểm tra kiến thức

Hãy cùng kiểm tra lại tư duy của bạn về kỹ thuật điều khiển PWM quan trọng này.

  1. Câu 1: Thông số nào quyết định độ sáng của đèn LED khi sử dụng kỹ thuật PWM?
    A. Tần số (Frequency).
    B. Chu kỳ nhiệm vụ (Duty Cycle).
    C. Màu sắc của dây dẫn.
    D. Kích thước của chip Artix-7.
    Xem đáp án & Giải thích

    Đáp án đúng: B

    Giải thích: Duty Cycle (tỉ lệ thời gian bật) tỉ lệ thuận với năng lượng trung bình cung cấp cho đèn LED, do đó quyết định độ sáng mà mắt người cảm nhận được.

  2. Câu 2: Nếu Duty Cycle của một tín hiệu PWM là 25%, điều đó có nghĩa là gì?
    A. Tín hiệu ở mức cao (1) trong 25% thời gian của một chu kỳ.
    B. Tín hiệu nhấp nháy 25 lần mỗi giây.
    C. Điện áp đầu ra luôn là 25V.
    D. Mạch điện chỉ sử dụng 25 cổng logic.
    Xem đáp án & Giải thích

    Đáp án đúng: A

    Giải thích: Đây là định nghĩa cơ bản của Duty Cycle: khoảng thời gian tín hiệu ở mức tích cực so với tổng thời gian một chu kỳ xung.

  3. Câu 3: Tại sao trong FPGA chúng ta có thể điều khiển 10 động cơ với các tốc độ khác nhau cùng một lúc một cách dễ dàng?
    A. Vì FPGA chạy phần mềm Python rất nhanh.
    B. Vì FPGA có thể tạo ra 10 khối PWM vật lý độc lập chạy song song.
    C. Vì các động cơ tự động biết cách chia sẻ năng lượng.
    D. Vì chúng ta sử dụng xung Clock chậm.
    Xem đáp án & Giải thích

    Đáp án đúng: B

    Giải thích: Tính song song (Parallelism) cho phép FPGA nhân bản cấu trúc phần cứng của bộ tạo PWM để phục vụ nhiều thiết bị đầu ra độc lập cùng lúc.

  4. Câu 4: Thành phần nào bên trong FPGA thường được dùng để tạo ra nhịp thời gian cho PWM?
    A. Cổng NOT.
    B. Bộ giải mã (Decoder).
    C. Bộ đếm (Counter) kết hợp với xung Clock.
    D. Cổng USB-UART.
    Xem đáp án & Giải thích

    Đáp án đúng: C

    Giải thích: Bộ đếm dựa trên xung nhịp ổn định của hệ thống xác định độ dài của một chu kỳ và điểm chuyển đổi trạng thái mức cao/thấp của tín hiệu PWM.

  5. Câu 5: Nếu bạn muốn làm đèn LED sáng mờ đi khi gạt Switch trên bo AIOT-ARTIX7, bạn cần thay đổi giá trị của thành phần nào trong mạch so sánh?
    A. Tần số xung Clock.
    B. Giá trị đích (Set point/Threshold) để so sánh với bộ đếm.
    C. Tên của Entity trong VHDL.
    D. Số lượng đèn LED trên bo mạch.
    Xem đáp án & Giải thích

    Đáp án đúng: B

    Giải thích: Thay đổi điểm so sánh (Set point) sẽ trực tiếp làm thay đổi khoảng thời gian tín hiệu ở mức cao so với mức thấp trong một chu kỳ cố định, từ đó thay đổi Duty Cycle.

“Chúc mừng bạn đã hoàn thành bài học về PWM! Hãy chuẩn bị để kết nối ‘cơ bắp’ này với ‘bộ não’ i.MX93 trong bài học về giao tiếp UART tiếp theo nhé.”

Mở rộng khả năng giao tiếp của FPGA?

Tiếp theo Bài 6.2: UART – Cây cầu kết nối với thế giới số →

Mục nhập này đã được đăng trong Đào tạo, FPGA cơ bản, Khóa đào tạo cơ bản và được gắn thẻ FPGA AIOT-ARTIX7.
ThaoNguyen

BÀI 5.3: MÁY TRẠNG THÁI (FSM) – TƯ DUY ĐIỀU KHIỂN THÔNG MINH
BÀI 6.2: UART – CẦU NỐI GIAO TIẾP GIỮA “BRAIN” VÀ “MUSCLE”

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bài viết mới
  • [Embedded Series – Bài 9] Nhập Môn Cấu Trúc Dữ Liệu Và Giải Thuật: Sức Mạnh Của Danh Sách Liên Kết
  • [Embedded Series – Bài 8] Thao Tác Với Tệp Tin (File I/O) Trong Lập Trình C
  • [Embedded Series – Bài 7] Kiểu Dữ Liệu Cấu Trúc (Struct) Và Quản Lý Dữ Liệu Phức Hợp
  • [Embedded Series – Bài 6] Con Trỏ Nâng Cao: Quản Lý Bộ Nhớ Động Và Chuẩn Hóa Mã Nguồn
  • [Embedded Series – Bài 5] Làm Chủ Con Trỏ (Pointer) Và Quy Ước Lập Trình C
Danh mục
  • Đào tạo
  • FPGA cơ bản
  • Giải pháp
  • Hệ thống nhúng
  • IoT trong giáo dục
  • IoT trong y tế
  • Khóa đào tạo cơ bản
  • Khóa đào tạo nâng cao
  • LabVIEW FPGA
  • LabVIEW FPGA High Performance
  • Phần cứng máy tính & Truyền thông công nghiệp
  • Sản xuất công nghiệp
  • Thiết bị dịch vụ thông minh
  • Thiết bị đọc căn cước
  • Tin tức

CÔNG TY CỔ PHẦN HỆ THỐNG AIOT

VPGD: Số A21-TT9 Đường Foresa 1 KĐT Xuân Phương, Phường Xuân Phương, Hà Nội.

Địa chỉ kinh doanh: Đường Phú Diễn, Tổ dân phố 18, phường Phú Diễn, Thành phố Hà Nội, Việt Nam

Hotline/Zalo: 097 186 8316 | 0839 799 889

Email: aiot@aiots.vn

VỀ CHÚNG TÔI

Giới thiệu

Sản phẩm

Giải pháp

Đào tạo

Tin tức

QUY ĐỊNH & CHÍNH SÁCH

Chính sách thanh toán

Chính sách vận chuyển

Chính sách bảo hành

Chính sách đổi trả

Chính sách bảo mật

ĐỊA CHỈ VĂN PHÒNG GIAO DỊCH

Copyright 2024 © Bản quyền thuộc về AIOT. Thiết kế bởi Jamina JSC
  • Trang chủ
  • Giới thiệu
  • Tin tức
  • Sản phẩm
  • Giải pháp
    • Chấm công bằng Face ID
    • Thiết bị đọc căn cước
    • IoT trong giáo dục
    • IoT trong quản lý năng lượng
    • IoT trong y tế
  • Đào tạo
    • Khóa đào tạo cơ bản
      • Hệ thống nhúng
      • LabVIEW FPGA
      • Phần cứng máy tính & Truyền thông công nghiệp
      • FPGA cơ bản
    • Khóa đào tạo nâng cao
      • LabVIEW FPGA High Performance
    • Tài liệu
  • PCCC
  • Liên hệ
Zalo
Phone

Đăng nhập

Quên mật khẩu?