Керування LEDC таймерами мікроконтролера ESP32 за допомогою регістрів
Анотація
Актуальність. У статті розглядаються питання точного формування та керування широтно-імпульсними (ШІМ) сигналами на базі підсистеми LEDC мікроконтролера ESP32 шляхом прямого доступу до регістрів. Через зростаючі вимоги до точності таймінгу у світлодіодних драйверах, керуванні двигунами та силовій електроніці, а також обмеження високорівневих драйверних інтерфейсів, дослідження є актуальним для розробників вбудованих реального-часу систем.
Мета дослідження. Проаналізувати можливості керування LEDC-таймерами ESP32 через прямий запис у регістри, експериментально оцінити точність та стабільність сформованих PWM-сигналів для ряду конфігурацій і розробити практичні рекомендації щодо оптимізації параметрів.
Методи дослідження. Застосовано регістрове програмування в середовищі ESP-IDF на платі ESP32-DevKitC V4 (WROOM-32D), експериментальні вимірювання часових характеристик вихідних сигналів логічним аналізатором (Logic Analyzer, 24 MHz, 8ch), порівняльний аналіз теоретичних розрахунків (формули частоти, прескейлера, розрядності лічильника) та практичних вимірювань для набора з 18 конфігурацій (RES, DIV, DUTY).
Результати. Розглянуто архітектуру LEDC та структуру відповідних регістрів таймерів і каналів; реалізовано алгоритм налаштування HSTIMER0 та HS-каналу через пряме записування в регістри і виведення сигналу на GPIO. Експериментально підтверджено високу відповідність розрахунків і вимірювань: максимальна відносна похибка частоти і періоду не перевищувала ±0,03%, а тривалості високого рівня — ±0,6%.
Висновки. Прямий регістровий доступ до LEDC дозволяє отримати детерміновані, високоточні ШІМ-сигнали з мінімальною затримкою оновлення параметрів, що є придатними для застосувань у робототехніці, силовій електроніці та інших системах з високими вимогами до синхронізації. Рекомендовано подальші дослідження на тему впливу альтернативних джерел такту, режимів низької швидкості LEDC, інтеграції з ISR/FreeRTOS та розширення підходу на інші таймери й канали.
Завантаження
Посилання
/Посилання
Valvano J.W., Yerraballi R. (2014). Embedded Systems — Shape the World: A Cyber-Physical Systems Approach [e-book]. Austin, TX: The University of Texas at Austin. Available at: https://users.ece.utexas.edu/~valvano/Volume1/E-Book/
Barr M. (1999). Programming Embedded Systems in C and C++. O’Reilly. 174 p. Available at: https://archive.org/details/programmingembed0000barr
Microchip Technology Inc. (2015). ATmega328P — 8-bit AVR Microcontroller with 32K Bytes In-System Programmable Flash. Datasheet. [Electronic resource]. Available at: https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf (accessed: 22.09.2025).
Microchip Technology Inc. (2014). ATmega640/1280/1281/2560/2561 — 8-bit AVR Microcontroller. Datasheet. [Electronic resource]. Available at: https://ww1.microchip.com/downloads/en/devicedoc/atmel-2549-8-bit-avr-microcontroller-atmega640-1280-1281-2560-2561_datasheet.pdf (accessed: 22.09.2025).
Kotvytskyi, A. T. (2024). Intellectual capital as a basis for innovative development: robotic systems. In Monographic series «European Science» (Book 28, Part 1). Karlsruhe: ScientificWorld-NetAkhatAV. 168 p. ISBN 978-3-98924-041-4. DOI: 10.30890/2709-2313.2024-28-01. Available at: https://desymp.promonograph.org/index.php/sge/issue/view/sge28-01/sge28-01
Arduino Store (2025). Arduino UNO Rev3 – Official Product Page. Arduino AG, Italy. [Electronic resource]. Available at: https://store.arduino.cc/collections/uno (accessed: 07.10.2025).
Arduino Store (2025). Arduino MEGA 2560 Rev3 – Official Product Page. Arduino AG, Italy. [Electronic resource]. Available at: https://store.arduino.cc/collections/giga (accessed: 07.10.2025).
Espressif Systems Official Store (2025). Official Manufacturer Page on AliExpress. Espressif Systems. [Electronic resource]. Available at: https://www.aliexpress.com/store/1100220184 (accessed: 07.10.2025).
Arduino (n.d.). Getting Started with Arduino — official documentation (Arduino Docs). [Electronic resource]. Available at: https://docs.arduino.cc/learn/starting-guide/getting-started-arduino/ (accessed: 01.10.2025).
All About Circuits (2021). Pulse-width Modulation (PWM) Timers in Microcontrollers. [Electronic resource]. Available at: https://www.allaboutcircuits.com/technical-articles/introduction-to-microcontroller-timers-pwm-timers/ (accessed: 01.10.2025).
University of Washington (2010). Lecture 7: ATmega328 Timers and Interrupts (Course CSE P567: Embedded Systems). Seattle: University of Washington. 32 p. Available at: https://courses.cs.washington.edu/courses/csep567/10wi/lectures/Lecture7.pdf
Espressif Systems (2020). Technical Reference Manual for ESP32. Version 5.5. 661 p. [Electronic resource]. Available at: https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf (accessed: 01.10.2025).
Espressif Systems (2024). LED Control (LEDC) – Programming Guide for ESP32. ESP-IDF v5.5.1. [Electronic resource]. Available at: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/peripherals/ledc.html (accessed: 01.10.2025).
Saleae Support (2025). Using Logic. [Electronic resource]. Available at: https://support.saleae.com/user-guide/using-logic (accessed: 01.10.2025).
Valvano J.W., Yerraballi R. (2014). Embedded Systems — Shape the World: A Cyber-Physical Systems Approach [e-book]. Austin, TX: The University of Texas at Austin. Available at: https://users.ece.utexas.edu/~valvano/Volume1/E-Book/
Barr M. (1999). Programming Embedded Systems in C and C++. O’Reilly. 174 p. Available at: https://archive.org/details/programmingembed0000barr
Microchip Technology Inc. (2015). ATmega328P — 8-bit AVR Microcontroller with 32K Bytes In-System Programmable Flash. Datasheet. [Electronic resource]. Available at: https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf (accessed: 22.09.2025).
Microchip Technology Inc. (2014). ATmega640/1280/1281/2560/2561 — 8-bit AVR Microcontroller. Datasheet. [Electronic resource]. Available at: https://ww1.microchip.com/downloads/en/devicedoc/atmel-2549-8-bit-avr-microcontroller-atmega640-1280-1281-2560-2561_datasheet.pdf (accessed: 22.09.2025).
Kotvytskyi, A. T. (2024). Intellectual capital as a basis for innovative development: robotic systems. In Monographic series «European Science» (Book 28, Part 1). Karlsruhe: ScientificWorld-NetAkhatAV. 168 p. ISBN 978-3-98924-041-4. DOI: 10.30890/2709-2313.2024-28-01. Available at: https://desymp.promonograph.org/index.php/sge/issue/view/sge28-01/sge28-01
Arduino Store (2025). Arduino UNO Rev3 – Official Product Page. Arduino AG, Italy. [Electronic resource]. Available at: https://store.arduino.cc/collections/uno (accessed: 07.10.2025).
Arduino Store (2025). Arduino MEGA 2560 Rev3 – Official Product Page. Arduino AG, Italy. [Electronic resource]. Available at: https://store.arduino.cc/collections/giga (accessed: 07.10.2025).
Espressif Systems Official Store (2025). Official Manufacturer Page on AliExpress. Espressif Systems. [Electronic resource]. Available at: https://www.aliexpress.com/store/1100220184 (accessed: 07.10.2025).
Arduino (n.d.). Getting Started with Arduino — official documentation (Arduino Docs). [Electronic resource]. Available at: https://docs.arduino.cc/learn/starting-guide/getting-started-arduino/ (accessed: 01.10.2025).
All About Circuits (2021). Pulse-width Modulation (PWM) Timers in Microcontrollers. [Electronic resource]. Available at: https://www.allaboutcircuits.com/technical-articles/introduction-to-microcontroller-timers-pwm-timers/ (accessed: 01.10.2025).
University of Washington (2010). Lecture 7: ATmega328 Timers and Interrupts (Course CSE P567: Embedded Systems). Seattle: University of Washington. 32 p. Available at: https://courses.cs.washington.edu/courses/csep567/10wi/lectures/Lecture7.pdf
Espressif Systems (2020). Technical Reference Manual for ESP32. Version 5.5. 661 p. [Electronic resource]. Available at: https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf (accessed: 01.10.2025).
Espressif Systems (2024). LED Control (LEDC) – Programming Guide for ESP32. ESP-IDF v5.5.1. [Electronic resource]. Available at: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/peripherals/ledc.html (accessed: 01.10.2025).
Saleae Support (2025). Using Logic. [Electronic resource]. Available at: https://support.saleae.com/user-guide/using-logic (accessed: 01.10.2025).