From 29e2c0918b7ca7d27c447bb1c261e6c337843825 Mon Sep 17 00:00:00 2001 From: iabdalkader Date: Mon, 17 May 2021 16:01:46 +0200 Subject: [PATCH] GC2145 driver fixes. --- src/omv/ports/stm32/sensor.c | 3 +++ src/omv/sensors/gc2145.c | 4 ++-- src/omv/sensors/gc2145.h | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/omv/ports/stm32/sensor.c b/src/omv/ports/stm32/sensor.c index 5449e81c1..ff607cd43 100644 --- a/src/omv/ports/stm32/sensor.c +++ b/src/omv/ports/stm32/sensor.c @@ -498,6 +498,9 @@ int sensor_init() #if (OMV_ENABLE_GC2145 == 1) case GC2145_ID: + if (extclk_config(GC2145_XCLK_FREQ) != 0) { + return -3; + } init_ret = gc2145_init(&sensor); break; #endif //(OMV_ENABLE_GC2145 == 1) diff --git a/src/omv/sensors/gc2145.c b/src/omv/sensors/gc2145.c index fda96ce5d..f8dfc1189 100644 --- a/src/omv/sensors/gc2145.c +++ b/src/omv/sensors/gc2145.c @@ -785,8 +785,8 @@ static int set_framesize(sensor_t *sensor, framesize_t framesize) return -1; } - // Write pixel format registers - for (int i=0; regs[i][0] != 0xFF; i++) { + // Write frame size registers + for (int i=0; regs[i][0]; i++) { ret |= cambus_writeb(&sensor->bus, sensor->slv_addr, regs[i][0], regs[i][1]); } return ret; diff --git a/src/omv/sensors/gc2145.h b/src/omv/sensors/gc2145.h index dfcf0dd1c..080af9e32 100644 --- a/src/omv/sensors/gc2145.h +++ b/src/omv/sensors/gc2145.h @@ -10,5 +10,6 @@ */ #ifndef __GC2145_H__ #define __GC2145_H__ +#define GC2145_XCLK_FREQ (6000000) int gc2145_init(sensor_t *sensor); #endif // __GC2145_H__