TAPIT - AIoT Learning
TAPIT là bệ phóng tốt nhất cho sinh viên và kỹ sư trong lĩnh vực AIoT, chúng tôi giúp các bạn trang bị các kiến thức kỹ thuật, kỹ năng chuyên môn qua các khóa học trực tuyến và kết nối cộng đồng!
09/05/2026
HỆ THỐNG BUS VI ĐIỀU KHIỂN STM32
Bạn có biết cách Vi xử lý đọc lệnh từ bộ nhớ, đọc ghi dữ liệu các biến và "nói chuyện" với các ngoại vi như ADC hay UART như thế nào không? Bên trong các Vi điều khiển là một hệ thống ma trận Bus cực kỳ tinh vi. Trong video này, chúng ta sẽ cùng tìm hiểu:
- Bus Master & Slave là gì?
- Sự khác biệt giữa Bus AHB và APB.
- Tại sao ARM Cortex M4 lại tách biệt I-Bus, D-Bus và S-Bus?
- Phân tích trường hợp thực tế: Tối ưu hóa chuyển dữ liệu ADC bằng DMA để tăng hiệu suất hệ thống.
Xem chi tiết tại video: https://youtu.be/f_4Yi6g5EJg
Nội dung rất phù hợp cho các bạn sinh viên/kỹ sư đang làm quen với vi điều khiển STM32- Vi xử lý ARM và muốn hiểu sâu về kiến trúc của dòng vi điều khiển này.
Cộng đồng kỹ thuật TAPIT
06/05/2026
4 NHÓM KỸ NĂNG CỐT LÕI ĐỂ CHINH PHỤC LĨNH VỰC EDGE AI
Sự dịch chuyển của điện toán từ Cloud xuống các thiết bị biên (Edge) đang mở ra kỷ nguyên Edge AI. Lĩnh vực đa ngành này đòi hỏi kỹ sư phải trang bị 4 nhóm kỹ năng cốt lõi: Hệ thống nhúng, Điện tử cơ bản, Xử lý tín hiệu số và Học máy. Cùng TAPIT giải mã từng kỹ năng:
🔷Hệ thống nhúng (Embedded System)
- Ngôn ngữ lập trình: C/C++ là ngôn ngữ phù hợp để làm việc trực tiếp với phần cứng, giúp tối ưu hóa tài nguyên bộ nhớ và hiệu năng tính toán khi đối mặt với giới hạn của thiết bị biên.
- Kiến trúc phần cứng: Nắm vững ngắt (Interrupt), Timer, DMA và các chuẩn giao tiếp (I2C, SPI, UART, I2S) để thu thập dữ liệu cảm biến và vận hành hệ thống tối ưu. Đặc biệt, xu hướng mới đòi hỏi kỹ sư làm quen với các bộ tăng tốc phần cứng (Hardware Accelerators / NPU) tích hợp trên vi điều khiển.
- Hệ điều hành: Bên cạnh lập trình Bare-metal, kỹ năng về RTOS (Hệ điều hành thời gian thực) và Embedded Linux là bắt buộc cho các dự án tích hợp phức tạp.
🔷Điện tử cơ bản (Basic Electronics)
Đọc hiểu sơ đồ nguyên lý (Schematic) và phân tích đặc tính, chức năng của linh kiện qua Datasheet.
Khả năng ghép nối, gỡ lỗi tín hiệu giữa vi điều khiển với cảm biến, bộ nhớ. Đặc biệt, kỹ năng thiết kế tối ưu năng lượng (Low-power design) là điểm cộng cực lớn cho các thiết bị Edge AI chạy pin.
🔷Xử lý tín hiệu số (Digital Signal Processing - DSP)
- Dữ liệu đầu vào của Edge AI thường là tín hiệu vật lý time-series data (âm thanh, IMU, y sinh) hoặc ma trận hình ảnh. DSP giúp trích xuất đặc trưng, lọc nhiễu và nén dữ liệu trước khi đưa vào mô hình AI.
- Có kỹ năng DSP như Kỹ thuật Lọc số, Phân tích dữ liệu miền tần số, Trích xuất đặc trưng thường là rất cần thiết để tiền xử lý dữ liệu trước khi đưa vào mô hình Học máy trên thiết bị biên (Edge) nhằm để tối ưu hóa tài nguyên phần cứng cho Edge AI.
🔷Học máy (Machine Learning)
- Cơ sở: Hiểu nguyên lý hoạt động và cách huấn luyện mạng nơ-ron nhân tạo (ANN, CNN, RNN).
- Ngôn ngữ lập trình: Có kinh nghiệm với Python, NumPy và các framework TensorFlow, PyTorch.
- Tối ưu hóa mô hình: Hiểu về kỹ thuật Lượng tử hóa (Quantization) và Cắt tỉa (Pruning) để nén kích thước mô hình, phục vụ triển khai trên vi điều khiển.
👉Cùng phân tích dự án "Phát hiện Từ khóa (Keyword Spotting)” để hiểu rõ sự phối hợp của 4 kỹ năng trên, quy trình thực hiện:
- Bước 1: Thu thập dữ liệu âm thanh qua microphone giao tiếp I2S (Kỹ năng điện tử & Hệ thống nhúng).
- Bước 2: Tiền xử lý, trích xuất đặc trưng MFCC từ tín hiệu âm thanh (Kỹ năng DSP).
- Bước 3: Xây dựng và huấn luyện mô hình phân loại âm thanh (Kỹ năng Học máy).
- Bước 4: Lượng tử hóa mô hình từ float32 xuống int8 để giảm dung lượng (Kỹ năng Học máy / Tối ưu hóa).
- Bước 5: Triển khai suy luận (Inference) trên ESP32 hoặc vi điều khiển STM32 tích hợp NPU (Tổng hợp 4 kỹ năng).
Các bạn đang tập trung nghiên cứu ở khối kiến thức nào trong 4 trụ cột trên? Theo bạn, ngoài 4 yếu tố này, kỹ năng nào là cần thiết cho một dự án Edge AI thực tế? Hãy cùng thảo luận bên dưới nhé! 👇
Cộng đồng kỹ thuật TAPIT.
05/05/2026
Bạn có bao giờ thắc mắc tại sao vi điều khiển STM32 có thể quản lý hàng loạt ngoại vi chỉ qua các địa chỉ bộ nhớ? Trong video này, chúng ta sẽ cùng khám phá "Kiến trúc hệ thống bộ nhớ (Memory Architecture)" của vi xử lý ARM Cortex M3/M4:
Nội dung chính:
- 32bit địa chỉ, cách ARM và ST phối hợp định nghĩa không gian bộ nhớ (Memory Map)
- Cách đánh địa chỉ bộ nhớ Little Endian và Big Endian
- Bit-banding, khả năng đánh địa chỉ cho 1 bit dữ liệu riêng lẽ. giúp tối ưu tốc độ truy xuất dữ liệu
- Phân biệt, hiểu chi tiết vùng nhớ quan trọng: Code, SRAM, và Peripherals.
Mời các bạn xem chi tiết nội dung: https://youtu.be/YwhG4DigYKk
ĐỌC THÊM một số bài viết thảo luận liên quan đến bộ nhớ mà TAPIT đã chia sẻ:
- Chức năng, tổ chức và bản đồ không gian nhớ của Vi xử lý ARM Cortex – M
https://tapit.vn/chuc-nang-chuc-va-ban-khong-gian-nho-cua-vi-xu-ly-arm-cortex-m/
- RAM MEMORY: Cấu trúc, chức năng và thực hành debug trên VĐK STM32 (Phần 1)
https://tapit.vn/ram-memory-cau-truc-chuc-nang-phan-vung-data-bss/
- RAM MEMORY: Cấu trúc, chức năng và thực hành debug trên VĐK STM32 (Phần 2)
https://tapit.vn/ram-memory-cau-truc-chuc-nang-phan-vung-heap-stack/
- Dung lượng bộ nhớ Stack cho dự án nhúng sử dụng Arm Cortex-M
https://tapit.vn/dung-luong-bo-nho-stack-cho-du-nhung-su-dung-arm-cortex-m-p1/
- IC nhớ FLASH,SDRAM và mô hình bộ nhớ của vi điều khiển khi sử dụng bộ nhớ ngoài
https://tapit.vn/ic-nho-flash-sdram-va-mo-hinh-bo-nho-cua-vi-dieu-khien-khi-su-dung-bo-nho-ngoai/
- Bảo vệ chương trình ứng dụng và dữ liệu tại thiết bị
https://tapit.vn/bao-mat-datalogger-bao-ve-chuong-trinh-ung-dung-va-du-lieu-tai-thiet-bi/
Chúc các bạn thành công, đừng quên theo dõi TAPIT để cập nhật các bài đăng một các nhanh nhất!
Cộng đồng kỹ thuật TAPIT.
25/04/2026
QUÁ TRÌNH KHỞI ĐỘNG CỦA VI ĐIỀU KHIỂN STM32
Bạn thắc mắc vi điều khiển khởi động như thế nào? Làm sao vi xử lý có thể thực thi được mã lệnh được lưu trong bộ nhớ?
Video này TAPIT chia sẻ cho các bạn từ những kiến thức nền tảng, kết hợp với việc debug để phân tích sâu và trực quan, dễ hiểu quá trình khởi động của vi điều khiển.
CÁC NỘI DUNG CHÍNH ĐƯỢC TRÌNH BÀY:
-Các phương pháp Reset vi điều khiển từ bên ngoài (Hardware & Power-on Reset)
- Cấu trúc chương trình được lưu trong bộ nhớ Flash & SRAM (MSP, Vector Table, Code, Data)
- Phân tích quá trình vi xử lý khởi động ở cấp độ thanh ghi (Hoạt động của Reset Handler)
- Thực hành Debug trực quan cơ chế khởi động trên phần mềm STM32CubeIDE
- Một số ứng dụng: Bootloader, FOTA và Reset phần mềm (NVIC_SystemReset)
XEM CHI TIẾT TẠI ĐÂY: https://youtu.be/GS-kH6089TM
TAPIT chúc các bạn thành công! Đừng quên Like, Share và Subscribe kênh TAPIT để đón xem thêm nhiều video chất lượng về Lập trình nhúng và Vi xử lý nhé các bạn!
Cộng đồng kỹ thuật TAPIT.
16/04/2026
Tiếp tục với chuỗi bài liên quan đến GIAO THỨC NẠP VÀ MẠCH NẠP. Tại phần này, chúng ta cùng tìm hiểu 3 tính năng phổ biến của cổng USB trên các board mạch phát triển vi điều khiển.
Cổng USB trên một hệ thống nhúng có thể đóng nhiều vai trò khác nhau, từ việc chỉ có chức năng cấp nguồn, làm cầu nối cho giao tiếp nối tiếp (USB-to-UART bridge), cho đến việc đóng vai trò là một thiết bị USB gốc (Native USB) hoặc một giao diện nạp chương trình và gỡ lỗi chuyên dụng (On-board Programmer & Debugger). Nếu chưa hiểu rõ về bản chất của các kết nối này trên board mạch thực hành thì có thể các bạn sẽ không sử dụng đúng tính năng đã được thiết kế, dẫn đến lỗi nạp chương trình không rõ nguyên nhân và hạn chế khả năng gỡ lỗi chuyên sâu trong các dự án phức tạp hơn như IoT hay Edge AI.
TAPIT đã phân tích sâu nhiều dòng board mạch thực hành vi điều khiển khác nhau và thấy được cổng USB trên các board mạch thực hành thường được thiết kế theo 3 trường hợp, mỗi trường hợp yêu cầu các thành phần phần cứng và phần mềm (Toolchain) khác nhau để hoạt động.
1. Cầu nối USB-to-UART (USB Bridge)
Vi điều khiển chính không có bộ ngoại vi USB tích hợp; thay vào đó, một chip cầu nối phụ (Bridge IC) sẽ chuyển đổi tín hiệu USB từ máy tính thành tín hiệu UART để giao tiếp với các chân RX/TX của vi điều khiển.
- Đặc điểm: Vi điều khiển hoàn toàn không "biết" mình đang giao tiếp qua USB với máy tính; nó chỉ nhận thấy dữ liệu nối tiếp truyền thống UART.
- Khả năng nạp chương trình và debug: Có thể nạp chương trình và debug dạng in log qua cổng USB này nếu vi điều khiển được nạp trước một trình khởi động bootloader có khả năng nhận firmware qua UART và ghi vào bộ nhớ chương trình. Nếu không, cổng USB chỉ có chức năng giao tiếp COM Port
- Ví dụ:
+ Arduino Uno R3: Sử dụng chip ATmega16U2 (hoặc CH340 trên các bản clone) làm cầu nối UART cho chip chính ATmega328P.
+ ESP32 DevKit V1: Thường tích hợp CP2102 hoặc CH340 để nạp chương trình qua UART Bootloader.
2. USB gốc (Native USB)
Các vi điều khiển hiện đại sở hữu bộ ngoại vi USB (USB PHY) tích hợp bên trong vi điều khiển. Chân D+ và D- của cổng USB được kết nối trực tiếp vào các chân GPIO đặc biệt của vi điều khiển. Với Native USB, vi điều khiển có thể tự biến mình thành một thiết bị DFU (Device Firmware Update) để nạp code mà không cần bất kỳ chip phụ nào, Vi điều khiển cũng có thể được nạp chương trình thông qua USB Bootloader, Đặc biệt, phần cứng ngoại vi USB của 1 số vi điều khiển có thể được tích hợp tính năng USB-Seria/JTAG để hỗ trợ cho việc nạp chương trình và debug.
- Đặc điểm: Cho phép chip linh hoạt giả lập nhiều loại thiết bị USB khác nhau như bàn phím, chuột(HID), ổ đĩa (Mass Storage), hoặc cổng COM ảo (CDC) thông qua phần mềm.
- Ví dụ:
+ ESP32-S3/C3: Tích hợp bộ USB-Serial/JTAG, cho phép nạp firmware và gỡ lỗi phần cứng trực tiếp qua cổng USB mà không cần chip cầu nối.
+ Raspberry Pi Pico (RP2040): Sử dụng cơ chế nạp trực tiếp qua UF2. Khi nhấn giữ nút BOOTSEL và cắm USB, board hiện lên như một ổ đĩa USB để người dùng kéo-thả file.
3. Mạch nạp/gỡ lỗi tích hợp (On-board Debugger)
Trên board có một "vi điều khiển phụ" thứ hai đã được nạp sẵn firmware chuyên dụng cho việc nạp chương trình và debug (như ST-Link, XDS110-ET...). Cổng USB kết nối với chip phụ này, sau đó chip này giao tiếp với vi điều khiển chính qua các giao thức ICP chuyên dụng JTAG/SWD...
- Đặc điểm: Đây là giải pháp mạnh mẽ nhất vì nó xuất hiện trên máy tính như một thiết bị USB phức hợp (Composite Device) gồm: giao diện gỡ lỗi, cổng COM ảo và ổ đĩa ảo.
- Ví dụ:
+ STM32 Nucleo, STM32Discovery: Tích hợp mạch nạp ST-Link, cho phép gỡ lỗi từng dòng code (Step-by-step) qua giao thức SWD.
+ LP-MSPM0G3507: Các board MSP430 LaunchPad tích hợp sẵn mạch nạp và gỡ lỗi chuyên dụng XDS110-ET của TI.
Lưu ý: Cổng USB cũng được sử dụng với chức năng cấp nguồn cho board mạch, USB không chỉ là một cổng giao tiếp mà còn là một Power Source. Các bạn cũng cần phải lưu ý tránh cắm rất nhiều ngoại vi (motor, relay) vào board và lấy nguồn từ USB máy tính, dẫn đến sụt áp hoặc thậm chí hỏng cổng USB máy tính. Các bạn nên kiểm tra dòng tiêu thụ của mạch để tránh làm hỏng cổng USB của Laptop (thường giới hạn ở 500mA cho USB 2.0).
Hãy cùng theo dõi và đón xem các phần nội dung chi tiết!
Cộng đồng Kỹ thuật TAPIT
15/04/2026
Lập trình STM32: Thiết kế chương trình sử dụng INTERRUPT tối ưu
Interrupt là một thử thách đối với các bạn sinh viên khi mới bắt đầu tìm hiểu về lập trình vi điều khiển, nhiều bạn không hiểu rõ Interrupt chọn cách làm việc với phương pháp Polling và chấp nhận một chương trình không tối ưu, một số bạn khác áp dụng và gặp lỗi thì không thể phân tích logic của chương trình, gặp khó khi tích hợp thêm hay gộp các tính năng.
Interrupt không quá khó, hãy cùng TAPIT tìm hiểu qua nội dung này: (Các bạn có thể xem video tại: https://youtu.be/uMB-iStIras)
CƠ CHẾ HOẠT ĐỘNG CỦA INTERRUPT
- NVIC (Nested Vectored Interrupt Controller): là một ngoại vi của vi xử lý, quản lý các hoạt động của ngắt. Các ngoại vi gửi yêu cầu ngắt đến khối NVIC (Nested Vectored Interrupt Controller). NVIC sẽ điều khiển CPU thực thi ngắt dựa trên cấu hình cho phép ngắt và độ ưu tiên.
- Quy trình thực hiện 1 ngắt:
1. Stacking: Tạm dừng thực thi, lưu trữ ngữ cảnh thực thi hiện tại (1 số các thanh ghi trong CPU) vào bộ nhớ.
2. ISR: Thực thi chương trình phục vụ ngắt (Interrupt Service Routine).
3. Unstacking: Khôi phục ngữ cảnh và tiếp tục chương trình trước đó.
ƯU ĐIỂM CỦA KỸ THUẬT INTERRUPT
- Khả năng đáp ứng: Tốc độ phản hồi cực nhanh ngay khi sự kiện xảy ra, vượt trội so với kỹ thuật Polling
- Tiết kiệm năng lượng: Cho phép vi điều khiển ở chế độ LPM (Sleep/Stop/Standby) và chỉ thức dậy hoạt động khi có ngắt, sau đó quay lại chế độ tiết kiệm.
- Độ ưu tiên (Priority): Có thể cấu hình để các ngắt quan trọng hơn được xử lý trước trong trường hợp có nhiều ngắt xảy ra đồng thời
NGẮT TRÊN VI ĐIỀU KHIỂN STM32
- Cấu hình: Việc cho phép ngắt và thiết lập độ ưu tiên được thực hiện trực quan qua giao diện STM32CubeMX
- Bật tính năng ngắt: Sử dụng các hàm hỗ trợ sẵn của thư viện HAL x_Start_IT để ngoại vi hoạt động với khả năng sinh tín hiệu yêu cầu ngắt (ISR)
- Callback Functions: Các hàm phục vụ ngắt (ISR) được viết dưới dạng các hàm Callback (như HAL_GPIO_EXTI_Callback), các câu lệnh cần thực hiện sẽ được người dùng viết trong các hàm callback tương ứng.
NHƯỢC ĐIỂM CỦA NGẮT
- ISR quá dài có thể làm treo chương trình chính hoặc bỏ lỡ các ngắt khác (trạng thái pending). Ngoài ra, việc gỡ lỗi (debug) khó khăn hơn do luồng chương trình có thể nhảy bất thường đến bất kỳ ISR nào nếu có yêu cầu ngắt vào bất cứ thời điểm nào.
- Giải pháp: Thiết kế ISR cực kỳ ngắn gọn. Kết hợp Interrupt và Polling một cách hợp lý.
Interrupt chắc chắn là một kỹ thuật quan trọng cần nắm vững để có thể xây dựng các ứng dụng nhúng với vi điều khiển hiệu quả, chuyên nghiệp. Việc kết hợp giữa Interrupt (cho tác vụ cần đáp ứng tức thời) và Polling (cho tác vụ không yêu cầu thời gian thực) một cách hợp lý sẽ giúp hệ thống hoạt động ổn định và hiệu quả.
Các tài liệu liên quan đến Polling và Interupt mà TAPIT đã chia sẻ:
- Video Kỹ thuật Interrupt, thiết kế chương trình sử dụng Interrupt tối ưu
https://youtu.be/uMB-iStIras
- Video Kỹ thuật Polling là gì, ưu nhược điểm và demo
https://youtu.be/VTnNZ-VxdT8
- Bài viết Các kỹ thuật thiết kế luồng cho chương trình nhúng
https://tapit.vn/cac-ky-thuat-thiet-ke-luong-chuong-trinh-cho-thong-nhung/
- Bài viết Quy trình thực hiện ngắt của Vi điều khiển
https://tapit.vn/qua-trinh-thuc-hien-ngat-cua-vi-dieu-khien-mcu-interrupt-processing/
- Bài viết Các thanh ghi của vi xử lý Arm Cortex M
https://tapit.vn/co-ban-ve-cau-truc-va-tinh-nang-vi-xu-ly-arm-cortex-mx/
- Video về Exceptions của vi xử lý ARM Cortex M.
https://youtu.be/Q3z8ab7zS30
Hãy thảo luận thêm tại phần bình luận cùng các mentor tại Cộng đồng kỹ thuật TAPIT.
Chúc các bạn thành công!
Click here to claim your Sponsored Listing.
Category
Contact the business
Website
Address
32, Hoa Minh 16
Da Nang
Opening Hours
| Monday | 08:00 - 22:00 |
| Tuesday | 08:00 - 22:00 |
| Wednesday | 08:00 - 22:00 |
| Thursday | 08:00 - 22:00 |
| Friday | 08:00 - 22:00 |
| Saturday | 08:00 - 22:00 |
| Sunday | 09:00 - 21:00 |