Page 1 of 1

How to make ESP32 output 20MHZ's clock

Posted: Tue Jan 24, 2017 12:58 am
by roctwo
Hi!
How to make ESP32 output 20MHZ's clock? And can you provide code?

Re: How to make ESP32 output 20MHZ's clock

Posted: Tue Jan 24, 2017 1:17 am
by kolban
Do you mean you want a square wave output on a GPIO pin that has a frequency of 20MHz? If so, you can likely use the PWM functions.

Re: How to make ESP32 output 20MHZ's clock

Posted: Tue Jan 24, 2017 3:27 am
by roctwo
OK ,Thank you,sorry for my bad English.I will check it

Re: How to make ESP32 output 20MHZ's clock

Posted: Thu Sep 21, 2017 6:41 pm
by ppisljar
seems pwm can only be used to generate 333k clock ... what about higher frequencies ?

Re: How to make ESP32 output 20MHZ's clock

Posted: Thu Sep 21, 2017 9:53 pm
by ESP_krzychb
roctwo wrote:How to make ESP32 output 20MHZ's clock? And can you provide code?

Below is an example how to generate 20MHz square wave at 50% duty on GPIO18.

  1. #include "driver/ledc.h"
  2.  
  3. ledc_timer_config_t ledc_timer = {
  4.     .speed_mode = LEDC_HIGH_SPEED_MODE,
  5.     .timer_num  = LEDC_TIMER_0,
  6.     .bit_num    = 2,
  7.     .freq_hz    = 20000000
  8. };
  9.  
  10. ledc_channel_config_t ledc_channel = {
  11.     .channel    = LEDC_CHANNEL_0,
  12.     .gpio_num   = 18,
  13.     .speed_mode = LEDC_HIGH_SPEED_MODE,
  14.     .timer_sel  = LEDC_TIMER_0,
  15.     .duty       = 2
  16. };
  17.  
  18. void app_main()
  19. {
  20.     ledc_timer_config(&ledc_timer);
  21.     ledc_channel_config(&ledc_channel);
  22.     while (1) {
  23.         ;
  24.     }
  25. }
The LED PWM Controller can generate up to 40MHz square wave.