Checklist
Issue or Suggestion Description
- ov5640 driver sets:
|
ret = set_pll(sensor, false, sys_mul, 4, 2, false, 2, true, 4); |
//Set PLL: bypass: 0, multiplier: sys_mul, sys_div: 4, pre_div: 2, root_2x: 0, pclk_root_div: 2, pclk_manual: 1, pclk_div: 4
VCO = XCLK / pre_div * multiplier = 20000000 / 2 * 180 = 1800 MHz
which is way too high the limit 500-1000Mhz of PLL1 output:
So how does it work?
- In the code VCO is calculated differently to diagram and application note, with division by root_2x_div:
|
unsigned int VCO = REFIN * pll_multiplier / root_2x_div; |
Why?
Checklist
Issue or Suggestion Description
esp32-camera/sensors/ov5640.c
Line 442 in ddd00c5
//Set PLL: bypass: 0, multiplier: sys_mul, sys_div: 4, pre_div: 2, root_2x: 0, pclk_root_div: 2, pclk_manual: 1, pclk_div: 4
VCO = XCLK / pre_div * multiplier = 20000000 / 2 * 180 = 1800 MHz
which is way too high the limit 500-1000Mhz of PLL1 output:
So how does it work?
esp32-camera/sensors/ov5640.c
Line 192 in ddd00c5
Why?