Lập trình ESP32 nâng cao: FreeRTOS, timer, watchdog, flash, PSRAM, HTTPS
Các bài cho người đã quen ESP32 và muốn viết chương trình chạy ổn định lâu dài: chia việc bằng FreeRTOS task, chia sẻ dữ liệu bằng queue, semaphore, mutex; timer phần cứng và ngắt định kỳ; watchdog và lý do khởi động lại; lưu file bằng LittleFS; bảng phân vùng flash và OTA; PSRAM; HTTPS với chứng chỉ gốc; phát âm thanh bằng PWM, DAC, I2S; chọn giữa ESP32, S3, C3, C6. Thứ tự nên đọc và các chủ đề khác có ở Góc kỹ thuật.
29/10/2026
PSRAM là RAM ngoài chip của ESP32: module nào có, chậm hơn SRAM bao nhiêu, dữ liệu nào nên đặt vào PSRAM, ps_malloc và heap_caps_malloc, chương trình kiểm tra bộ nhớ trên mọi bo.
29/10/2026
Bảng phân vùng flash ESP32 gồm những gì, so sánh các Partition Scheme có sẵn, vì sao OTA cần hai ô app, tự đặt partitions.csv đúng quy tắc, chương trình đọc bảng đang nạp.
29/10/2026
HTTPS bảo vệ được gì, chuỗi tin cậy của chứng chỉ, nhúng chứng chỉ gốc ISRG Root X1 vào ESP32, vì sao setInsecure() mở đường cho tấn công xen giữa, chương trình thử ba trường hợp.
29/10/2026
So sánh ba cách phát âm thanh trên ESP32: PWM, DAC 8 bit có DMA và I2S với MAX98357A; tạo sóng sin bằng bảng tra và bộ cộng pha, tránh tiếng tạch, phát giai điệu mẫu.
29/10/2026
LittleFS nằm ở đâu trong flash ESP32, khác Preferences và thẻ nhớ thế nào, đọc ghi file, ghi log CSV xoay vòng để flash bền, phục vụ trang web và file log từ LittleFS.
29/10/2026
Watchdog là gì, task watchdog, interrupt watchdog, panic và brownout trên ESP32, in lý do khởi động lại bằng esp_reset_reason, đếm số lần khởi động, cho task tự đăng ký watchdog.
29/10/2026
Timer phần cứng ESP32 hoạt động thế nào, API timerBegin, timerAlarm của gói esp32 3.x, quy tắc viết hàm ngắt, thí nghiệm so ngắt timer 500 µs với vTaskDelay(1) khi CPU bận.
29/10/2026
Vì sao biến dùng chung bị sai trên ESP32 hai nhân, queue chuyển dữ liệu, semaphore để ngắt báo cho task, mutex bảo vệ Serial, thí nghiệm hai nhân cùng tăng một biến.
29/10/2026
Task trong FreeRTOS là gì, bốn trạng thái, độ ưu tiên, chọn nhân với xTaskCreatePinnedToCore, stack tính bằng byte, vTaskDelay và vTaskDelayUntil, chương trình ba task trên hai nhân.
28/10/2026
So sánh ESP32, ESP32-S3, ESP32-C3, ESP32-C6 về nhân CPU, Wi-Fi, Bluetooth, USB, chân, DAC; gợi ý chọn chip theo việc, những điểm dễ vấp khi chuyển code, chương trình in thông tin chip.