Skip to content

Commit af674d5

Browse files
committed
_set_size_and_colorspace: Boost pixel clock
Limor noticed that the pixel clock was very low, leading to a frame rate of just 7.6Hz from the camera. Because the structure of the parallel capture driver means dropping at least half of all frames, this led to a really low LCD refresh rate of just 3.8Hz. Bump the PLL multiplier for non-JPEG modes from 8 to 32. This gives a capture framerate of about 30FPS and an LCD refresh rate of about 15Hz. Going significantly higher (multiplier 48) gives a jumbled display, but even going slightly higher doesn't have a big effect on frame rate because the total LCD data transmission time of about 30ms starts to overlap with the next frame. Increasing the multiplier to 40 increases the capture frame rate to 40Hz but the LCD refresh rate decreaseds to just 13Hz, because only 1/3 of captured frames are displayed instead of 1/2. This is highly dependent on the LCD resolution & speed.
1 parent 488e990 commit af674d5

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

adafruit_ov5640.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1065,7 +1065,7 @@ def _set_size_and_colorspace(self): # pylint: disable=too-many-locals
10651065
sys_mul = 180
10661066
self._set_pll(False, sys_mul, 4, 2, False, 2, True, 4)
10671067
else:
1068-
self._set_pll(False, 8, 1, 1, False, 1, True, 4)
1068+
self._set_pll(False, 32, 1, 1, False, 1, True, 4)
10691069

10701070
self._set_colorspace()
10711071

0 commit comments

Comments
 (0)