SPI Clock speed
Posted: Sun Apr 30, 2023 6:57 am
Hi everyone,
Please accept my apologies if this has been covered elsewhere. I tried to search on the forum but for some reason it seemed to time out each time.
I'm wondering if someone can help to clarify what is meant by the parameter spi_device_interface_config_t .clock_speed_hz?
I have been following a tutorial that states this is the divider for the clock speed (e.g. 10) and indeed the espressif docs seem to suggest this:
int clock_speed_hz
Clock speed, divisors of the SPI clock_source, in Hz.
However, I was having no luck with this and eventually tried entering a clock speed directly and was surprised to see that the output on my logic analyser showed the correct frequency.
I checked the source code of the espidf lcd example on github and that seems to confirm that it is necessary to enter the actual clock speed.
ifdef CONFIG_LCD_OVERCLOCK
.clock_speed_hz=26*1000*1000, //Clock out at 26 MHz
#else
.clock_speed_hz=10*1000*1000, //Clock out at 10 MHz
Would it be possible to make the manual a little clearer on this point? Without a logic analyser this would have been quite difficult to spot.
Andy
Please accept my apologies if this has been covered elsewhere. I tried to search on the forum but for some reason it seemed to time out each time.
I'm wondering if someone can help to clarify what is meant by the parameter spi_device_interface_config_t .clock_speed_hz?
I have been following a tutorial that states this is the divider for the clock speed (e.g. 10) and indeed the espressif docs seem to suggest this:
int clock_speed_hz
Clock speed, divisors of the SPI clock_source, in Hz.
However, I was having no luck with this and eventually tried entering a clock speed directly and was surprised to see that the output on my logic analyser showed the correct frequency.
I checked the source code of the espidf lcd example on github and that seems to confirm that it is necessary to enter the actual clock speed.
ifdef CONFIG_LCD_OVERCLOCK
.clock_speed_hz=26*1000*1000, //Clock out at 26 MHz
#else
.clock_speed_hz=10*1000*1000, //Clock out at 10 MHz
Would it be possible to make the manual a little clearer on this point? Without a logic analyser this would have been quite difficult to spot.
Andy