mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Make all sensor drivers configurable.
This commit is contained in:
parent
ba7a3a5b50
commit
2e0275330a
@ -42,6 +42,16 @@
|
||||
// RAW buffer size
|
||||
#define OMV_RAW_BUF_SIZE (153600)
|
||||
|
||||
// Enable sensor drivers
|
||||
#define OMV_ENABLE_OV2640 (0)
|
||||
#define OMV_ENABLE_OV5640 (0)
|
||||
#define OMV_ENABLE_OV7690 (0)
|
||||
#define OMV_ENABLE_OV7725 (1)
|
||||
#define OMV_ENABLE_OV9650 (0)
|
||||
#define OMV_ENABLE_MT9V034 (0)
|
||||
#define OMV_ENABLE_LEPTON (0)
|
||||
#define OMV_ENABLE_HM01B0 (0)
|
||||
|
||||
// If buffer size is bigger than this threshold, the quality is reduced.
|
||||
// This is only used for JPEG images sent to the IDE not normal compression.
|
||||
#define JPEG_QUALITY_THRESH (160*120*2)
|
||||
|
||||
@ -42,6 +42,16 @@
|
||||
// RAW buffer size
|
||||
#define OMV_RAW_BUF_SIZE (307200)
|
||||
|
||||
// Enable sensor drivers
|
||||
#define OMV_ENABLE_OV2640 (0)
|
||||
#define OMV_ENABLE_OV5640 (0)
|
||||
#define OMV_ENABLE_OV7690 (0)
|
||||
#define OMV_ENABLE_OV7725 (1)
|
||||
#define OMV_ENABLE_OV9650 (0)
|
||||
#define OMV_ENABLE_MT9V034 (0)
|
||||
#define OMV_ENABLE_LEPTON (0)
|
||||
#define OMV_ENABLE_HM01B0 (0)
|
||||
|
||||
// If buffer size is bigger than this threshold, the quality is reduced.
|
||||
// This is only used for JPEG images sent to the IDE not normal compression.
|
||||
#define JPEG_QUALITY_THRESH (160*120*2)
|
||||
|
||||
@ -45,12 +45,15 @@
|
||||
// Enable hardware JPEG
|
||||
#define OMV_HARDWARE_JPEG (1)
|
||||
|
||||
// Enable MT9V034 and LEPTON sensors
|
||||
// Enable sensor drivers
|
||||
#define OMV_ENABLE_OV2640 (1)
|
||||
#define OMV_ENABLE_OV5640 (1)
|
||||
#define OMV_ENABLE_OV7690 (1)
|
||||
#define OMV_ENABLE_OV7725 (1)
|
||||
#define OMV_ENABLE_OV9650 (1)
|
||||
#define OMV_ENABLE_MT9V034 (1)
|
||||
#define OMV_ENABLE_LEPTON (1)
|
||||
|
||||
// Enable OV7690
|
||||
#define OMV_ENABLE_OV7690 (1)
|
||||
#define OMV_ENABLE_HM01B0 (0)
|
||||
|
||||
// Enable WiFi debug
|
||||
#define OMV_ENABLE_WIFIDBG (1)
|
||||
|
||||
@ -49,9 +49,15 @@
|
||||
// Enable hardware JPEG
|
||||
#define OMV_HARDWARE_JPEG (1)
|
||||
|
||||
// Enable MT9V034 and LEPTON sensors
|
||||
// Enable sensor drivers
|
||||
#define OMV_ENABLE_OV2640 (1)
|
||||
#define OMV_ENABLE_OV5640 (1)
|
||||
#define OMV_ENABLE_OV7690 (0)
|
||||
#define OMV_ENABLE_OV7725 (1)
|
||||
#define OMV_ENABLE_OV9650 (1)
|
||||
#define OMV_ENABLE_MT9V034 (1)
|
||||
#define OMV_ENABLE_LEPTON (1)
|
||||
#define OMV_ENABLE_HM01B0 (0)
|
||||
|
||||
// Enable WiFi debug
|
||||
#define OMV_ENABLE_WIFIDBG (1)
|
||||
|
||||
@ -46,7 +46,14 @@
|
||||
// Enable hardware JPEG
|
||||
#define OMV_HARDWARE_JPEG (1)
|
||||
|
||||
// Enable HIMAX HM01B0 sensor
|
||||
// Enable sensor drivers
|
||||
#define OMV_ENABLE_OV2640 (0)
|
||||
#define OMV_ENABLE_OV5640 (0)
|
||||
#define OMV_ENABLE_OV7690 (0)
|
||||
#define OMV_ENABLE_OV7725 (0)
|
||||
#define OMV_ENABLE_OV9650 (0)
|
||||
#define OMV_ENABLE_MT9V034 (0)
|
||||
#define OMV_ENABLE_LEPTON (0)
|
||||
#define OMV_ENABLE_HM01B0 (1)
|
||||
|
||||
// Enable WiFi debug
|
||||
|
||||
@ -18,7 +18,8 @@
|
||||
#include "omv_boardconfig.h"
|
||||
#include "common.h"
|
||||
|
||||
#if defined(OMV_ENABLE_LEPTON)
|
||||
#if (OMV_ENABLE_LEPTON == 1)
|
||||
|
||||
#include "crc16.h"
|
||||
#include "LEPTON_SDK.h"
|
||||
#include "LEPTON_AGC.h"
|
||||
@ -734,9 +735,4 @@ int lepton_init(sensor_t *sensor)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int lepton_init(sensor_t *sensor)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
#endif //defined(OMV_ENABLE_LEPTON)
|
||||
#endif // (OMV_ENABLE_LEPTON == 1)
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
#include "sensor.h"
|
||||
#include "omv_boardconfig.h"
|
||||
|
||||
#if defined(OMV_ENABLE_MT9V034)
|
||||
#if (OMV_ENABLE_MT9V034 == 1)
|
||||
#define MT9V034_MAX_HEIGHT (480)
|
||||
#define MT9V034_MAX_WIDTH (752)
|
||||
#define MT9V034_CHIP_VERSION (0x00)
|
||||
@ -400,9 +400,4 @@ int mt9v034_init(sensor_t *sensor)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
int mt9v034_init(sensor_t *sensor)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
#endif //defined(OMV_ENABLE_MT9V034)
|
||||
#endif // (OMV_ENABLE_MT9V034 == 1)
|
||||
|
||||
@ -18,6 +18,8 @@
|
||||
#include "systick.h"
|
||||
#include "omv_boardconfig.h"
|
||||
|
||||
#if (OMV_ENABLE_OV2640 == 1)
|
||||
|
||||
#define CIF_WIDTH (400)
|
||||
#define CIF_HEIGHT (296)
|
||||
|
||||
@ -855,3 +857,4 @@ int ov2640_init(sensor_t *sensor)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif // (OMV_ENABLE_OV2640 == 1)
|
||||
|
||||
@ -18,6 +18,8 @@
|
||||
#include "systick.h"
|
||||
#include "omv_boardconfig.h"
|
||||
|
||||
#if (OMV_ENABLE_OV5640 == 1)
|
||||
|
||||
#define BLANK_LINES 8
|
||||
#define DUMMY_LINES 6
|
||||
|
||||
@ -1031,3 +1033,4 @@ int ov5640_init(sensor_t *sensor)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif // (OMV_ENABLE_OV5640 == 1)
|
||||
|
||||
@ -18,6 +18,8 @@
|
||||
#include "systick.h"
|
||||
#include "omv_boardconfig.h"
|
||||
|
||||
#if (OMV_ENABLE_OV7725 == 1)
|
||||
|
||||
static const uint8_t default_regs[][2] = {
|
||||
|
||||
// From App Note.
|
||||
@ -623,3 +625,4 @@ int ov7725_init(sensor_t *sensor)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif // (OMV_ENABLE_OV7725 == 1)
|
||||
|
||||
@ -18,6 +18,8 @@
|
||||
#include "ov9650_regs.h"
|
||||
#include "omv_boardconfig.h"
|
||||
|
||||
#if (OMV_ENABLE_OV9650 == 1)
|
||||
|
||||
#define NUM_BR_LEVELS 7
|
||||
|
||||
static const uint8_t default_regs[][2] = {
|
||||
@ -539,3 +541,4 @@ int ov9650_init(sensor_t *sensor)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif // (OMV_ENABLE_OV9650 == 1)
|
||||
|
||||
148
src/omv/sensor.c
148
src/omv/sensor.c
@ -347,75 +347,93 @@ int sensor_init()
|
||||
sensor.snapshot = sensor_snapshot;
|
||||
|
||||
switch (sensor.slv_addr) {
|
||||
case OV2640_SLV_ADDR:
|
||||
cambus_readb(&sensor.i2c, sensor.slv_addr, OV_CHIP_ID, &sensor.chip_id);
|
||||
break;
|
||||
case OV5640_SLV_ADDR:
|
||||
cambus_readb2(&sensor.i2c, sensor.slv_addr, OV5640_CHIP_ID, &sensor.chip_id);
|
||||
break;
|
||||
case OV7725_SLV_ADDR: // Same for OV7690.
|
||||
cambus_readb(&sensor.i2c, sensor.slv_addr, OV_CHIP_ID, &sensor.chip_id);
|
||||
break;
|
||||
case MT9V034_SLV_ADDR:
|
||||
cambus_readb(&sensor.i2c, sensor.slv_addr, ON_CHIP_ID, &sensor.chip_id);
|
||||
break;
|
||||
case LEPTON_SLV_ADDR:
|
||||
sensor.chip_id = LEPTON_ID;
|
||||
break;
|
||||
#if (OMV_ENABLE_HM01B0 == 1)
|
||||
case HM01B0_SLV_ADDR:
|
||||
cambus_readb2(&sensor.i2c, sensor.slv_addr, HIMAX_CHIP_ID, &sensor.chip_id);
|
||||
break;
|
||||
#endif //(OMV_ENABLE_HM01B0 == 1)
|
||||
default:
|
||||
return -3;
|
||||
break;
|
||||
case OV2640_SLV_ADDR: // Or OV9650.
|
||||
cambus_readb(&sensor.i2c, sensor.slv_addr, OV_CHIP_ID, &sensor.chip_id);
|
||||
break;
|
||||
case OV5640_SLV_ADDR:
|
||||
cambus_readb2(&sensor.i2c, sensor.slv_addr, OV5640_CHIP_ID, &sensor.chip_id);
|
||||
break;
|
||||
case OV7725_SLV_ADDR: // Or OV7690.
|
||||
cambus_readb(&sensor.i2c, sensor.slv_addr, OV_CHIP_ID, &sensor.chip_id);
|
||||
break;
|
||||
case MT9V034_SLV_ADDR:
|
||||
cambus_readb(&sensor.i2c, sensor.slv_addr, ON_CHIP_ID, &sensor.chip_id);
|
||||
break;
|
||||
case LEPTON_SLV_ADDR:
|
||||
sensor.chip_id = LEPTON_ID;
|
||||
break;
|
||||
case HM01B0_SLV_ADDR:
|
||||
cambus_readb2(&sensor.i2c, sensor.slv_addr, HIMAX_CHIP_ID, &sensor.chip_id);
|
||||
break;
|
||||
default:
|
||||
return -3;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (sensor.chip_id) {
|
||||
case OV2640_ID:
|
||||
init_ret = ov2640_init(&sensor);
|
||||
break;
|
||||
case OV5640_ID:
|
||||
if (extclk_config(OV5640_XCLK_FREQ) != 0) {
|
||||
#if (OMV_ENABLE_OV2640 == 1)
|
||||
case OV2640_ID:
|
||||
init_ret = ov2640_init(&sensor);
|
||||
break;
|
||||
#endif // (OMV_ENABLE_OV2640 == 1)
|
||||
|
||||
#if (OMV_ENABLE_OV5640 == 1)
|
||||
case OV5640_ID:
|
||||
if (extclk_config(OV5640_XCLK_FREQ) != 0) {
|
||||
return -3;
|
||||
}
|
||||
init_ret = ov5640_init(&sensor);
|
||||
break;
|
||||
#endif // (OMV_ENABLE_OV5640 == 1)
|
||||
|
||||
#if (OMV_ENABLE_OV7690 == 1)
|
||||
case OV7690_ID:
|
||||
if (extclk_config(OV7690_XCLK_FREQ) != 0) {
|
||||
return -3;
|
||||
}
|
||||
init_ret = ov7690_init(&sensor);
|
||||
break;
|
||||
#endif // (OMV_ENABLE_OV7690 == 1)
|
||||
|
||||
#if (OMV_ENABLE_OV7725 == 1)
|
||||
case OV7725_ID:
|
||||
init_ret = ov7725_init(&sensor);
|
||||
break;
|
||||
#endif // (OMV_ENABLE_OV7725 == 1)
|
||||
|
||||
#if (OMV_ENABLE_OV9650 == 1)
|
||||
case OV9650_ID:
|
||||
init_ret = ov9650_init(&sensor);
|
||||
break;
|
||||
#endif // (OMV_ENABLE_OV9650 == 1)
|
||||
|
||||
#if (OMV_ENABLE_MT9V034 == 1)
|
||||
case MT9V034_ID:
|
||||
if (extclk_config(MT9V034_XCLK_FREQ) != 0) {
|
||||
return -3;
|
||||
}
|
||||
init_ret = mt9v034_init(&sensor);
|
||||
break;
|
||||
#endif //(OMV_ENABLE_MT9V034 == 1)
|
||||
|
||||
#if (OMV_ENABLE_LEPTON == 1)
|
||||
case LEPTON_ID:
|
||||
if (extclk_config(LEPTON_XCLK_FREQ) != 0) {
|
||||
return -3;
|
||||
}
|
||||
init_ret = lepton_init(&sensor);
|
||||
break;
|
||||
#endif // (OMV_ENABLE_LEPTON == 1)
|
||||
|
||||
#if (OMV_ENABLE_HM01B0 == 1)
|
||||
case HM01B0_ID:
|
||||
init_ret = hm01b0_init(&sensor);
|
||||
break;
|
||||
#endif //(OMV_ENABLE_HM01B0 == 1)
|
||||
|
||||
default:
|
||||
return -3;
|
||||
}
|
||||
init_ret = ov5640_init(&sensor);
|
||||
break;
|
||||
case OV7725_ID:
|
||||
init_ret = ov7725_init(&sensor);
|
||||
break;
|
||||
#if (OMV_ENABLE_OV7690 == 1)
|
||||
case OV7690_ID:
|
||||
if (extclk_config(OV7690_XCLK_FREQ) != 0) {
|
||||
return -3;
|
||||
}
|
||||
init_ret = ov7690_init(&sensor);
|
||||
break;
|
||||
#endif //(OMV_ENABLE_OV7690 == 1)
|
||||
case OV9650_ID:
|
||||
init_ret = ov9650_init(&sensor);
|
||||
break;
|
||||
case MT9V034_ID:
|
||||
if (extclk_config(MT9V034_XCLK_FREQ) != 0) {
|
||||
return -3;
|
||||
}
|
||||
init_ret = mt9v034_init(&sensor);
|
||||
break;
|
||||
case LEPTON_ID:
|
||||
if (extclk_config(LEPTON_XCLK_FREQ) != 0) {
|
||||
return -3;
|
||||
}
|
||||
init_ret = lepton_init(&sensor);
|
||||
break;
|
||||
#if (OMV_ENABLE_HM01B0 == 1)
|
||||
case HM01B0_ID:
|
||||
init_ret = hm01b0_init(&sensor);
|
||||
break;
|
||||
#endif //(OMV_ENABLE_HM01B0 == 1)
|
||||
default:
|
||||
return -3;
|
||||
break;
|
||||
break;
|
||||
}
|
||||
|
||||
if (init_ret != 0 ) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user