HPM SDK
HPMicro Software Development Kit
hpm_mt9m114.c File Reference
#include "hpm_mt9m114.h"
#include "board.h"
#include "hpm_clock_drv.h"
#include <math.h>

Macros

#define DEBUG_INFO(...)
 
#define ERROR_ACTION()   return (status_fail)
 

Functions

hpm_stat_t mt9m114_read_register (camera_context_t *context, uint32_t reg, uint32_t reg_size, void *value)
 MT9M114 read register. More...
 
hpm_stat_t mt9m114_write_register (camera_context_t *context, uint32_t reg, uint32_t reg_size, uint32_t value)
 MT9M114 write register. More...
 
hpm_stat_t mt9m114_modify_register (camera_context_t *context, uint32_t reg, uint32_t reg_size, uint32_t mask, uint32_t value)
 MT9M114 modify register. More...
 
hpm_stat_t mt9m114_multiwrite (camera_context_t *context, const mt9m114_reg_t regs[], uint32_t num)
 MT9M114 multiwrite registers. More...
 
hpm_stat_t mt9m114_host_command (camera_context_t *context, uint16_t command)
 
hpm_stat_t mt9m114_refresh (camera_context_t *context)
 
hpm_stat_t mt9m114_get_current_state (camera_context_t *context, uint8_t *state)
 MT9M114 get current state. More...
 
hpm_stat_t mt9m114_software_reset (camera_context_t *context)
 MT9M114 soft reset. More...
 
hpm_stat_t mt9m114_setstate (camera_context_t *context, uint16_t next_state)
 MT9M114 set next state and switch to it. More...
 
hpm_stat_t mt9m114_set_pixformat (camera_context_t *context, display_pixel_format_t pixformat)
 MT9M114 set pixformat. More...
 
hpm_stat_t mt9m114_set_framerate (camera_context_t *context, int framerate)
 MT9M114 set framerate. More...
 
hpm_stat_t mt9m114_set_brightness (camera_context_t *context, int level)
 MT9M114 set brightness. More...
 
hpm_stat_t mt9m114_start (camera_context_t *handle)
 MT9M114 start to transfer image data. More...
 
hpm_stat_t mt9m114_stop (camera_context_t *handle)
 MT9M114 stop working and enter SUSPEND mode. More...
 
hpm_stat_t mt9m114_check_chip_id (camera_context_t *handle)
 MT9M114 check chipid. More...
 
hpm_stat_t mt9m114_enable_mono (camera_context_t *handle, bool enable)
 MT9M114 enable or disable MONO mode. More...
 
hpm_stat_t mt9m114_init (camera_context_t *context, camera_config_t *camera_config)
 MT9M114 initialization. More...
 

Variables

const mt9m114_reg_t mt9m114_vga []
 
const mt9m114_reg_t mt9m114_init_config []
 

Macro Definition Documentation

◆ DEBUG_INFO

#define DEBUG_INFO (   ...)

◆ ERROR_ACTION

#define ERROR_ACTION ( )    return (status_fail)

Function Documentation

◆ mt9m114_host_command()

hpm_stat_t mt9m114_host_command ( camera_context_t context,
uint16_t  command 
)

◆ mt9m114_refresh()

hpm_stat_t mt9m114_refresh ( camera_context_t context)

Variable Documentation

◆ mt9m114_init_config

const mt9m114_reg_t mt9m114_init_config[]
Initial value:
= {
{ 0x098E , 2u, 0x1000},
{ 0xC97E , 1u, 0x01},
{ 0xC980 , 2u, 0x0120},
{ 0xC982 , 2u, 0x0700},
{ 0xC808 , 4u, 0x2DC6C00},
{0x316A, 2, 0x8270},
{0x316C, 2, 0x8270},
{0x3ED0, 2, 0x2305},
{0x3ED2, 2, 0x77CF},
{0x316E, 2, 0x8202},
{0x3180, 2, 0x87FF},
{0x30D4, 2, 0x6080},
{0xA802, 2, 0x0008},
{0x3E14, 2, 0xFF39},
{0xC95E, 2u, 0x0000},
{ 0xC80C , 2u, 0x0001},
{ 0xC80E , 2u, 0x01C3},
{ 0xC810 , 2u, 0x03BA},
{ 0xC812 , 2u, 0x02DE},
{ 0xC814 , 2u, 0x04A5},
{ 0xC816 , 2u, 0x00E0},
{ 0xC826 , 2u, 0x0020},
{ 0xC834 , 2u, 0x0332},
{ 0xC854 , 2u, 0x0000},
{ 0xC856 , 2u, 0x0000},
{ 0xC85C , 1u, 0x03},
{ 0xC878 , 1u, 0x00},
{ 0xC88C , 2u, 0x3700},
{ 0xC88E , 2u, 0x3700},
{0xC892, 2u, 0x0267},
{0xC894, 2u, 0xFF1A},
{0xC896, 2u, 0xFFB3},
{0xC898, 2u, 0xFF80},
{0xC89A, 2u, 0x0166},
{0xC89C, 2u, 0x0003},
{0xC89E, 2u, 0xFF9A},
{0xC8A0, 2u, 0xFEB4},
{0xC8A2, 2u, 0x024D},
{0xC8A4, 2u, 0x01BF},
{0xC8A6, 2u, 0xFF01},
{0xC8A8, 2u, 0xFFF3},
{0xC8AA, 2u, 0xFF75},
{0xC8AC, 2u, 0x0198},
{0xC8AE, 2u, 0xFFFD},
{0xC8B0, 2u, 0xFF9A},
{0xC8B2, 2u, 0xFEE7},
{0xC8B4, 2u, 0x02A8},
{0xC8B6, 2u, 0x01D9},
{0xC8B8, 2u, 0xFF26},
{0xC8BA, 2u, 0xFFF3},
{0xC8BC, 2u, 0xFFB3},
{0xC8BE, 2u, 0x0132},
{0xC8C0, 2u, 0xFFE8},
{0xC8C2, 2u, 0xFFDA},
{0xC8C4, 2u, 0xFECD},
{0xC8C6, 2u, 0x02C2},
{0xC8C8, 2u, 0x0075},
{0xC8CA, 2u, 0x011C},
{0xC8CC, 2u, 0x009A},
{0xC8CE, 2u, 0x0105},
{0xC8D0, 2u, 0x00A4},
{0xC8D2, 2u, 0x00AC},
{0xC8D4, 2u, 0x0A8C},
{0xC8D6, 2u, 0x0F0A},
{0xC8D8, 2u, 0x1964},
{ 0xC904 , 2u, 0x0033},
{ 0xC906 , 2u, 0x003C},
{ 0xC8F2 , 1u, 0x03},
{ 0xC8F3 , 1u, 0x02},
{0xC8F4, 2u, 0x0000},
{0xC8F6, 2u, 0x0000},
{0xC8F8, 2u, 0x0000},
{0xC8FA, 2u, 0xE724},
{0xC8FC, 2u, 0x1583},
{0xC8FE, 2u, 0x2045},
{0xC900, 2u, 0x03FF},
{0xC902, 2u, 0x007C},
{0xC90C, 1u, 0x80},
{0xC90D, 1u, 0x80},
{0xC90E, 1u, 0x80},
{0xC90F, 1u, 0x88},
{0xC910, 1u, 0x80},
{0xC911, 1u, 0x80},
{0xC926, 2u, 0x0020},
{0xC928, 2u, 0x009A},
{0xC946, 2u, 0x0070},
{0xC948, 2u, 0x00F3},
{0xC944, 1u, 0x20},
{0xC945, 1u, 0x9A},
{0xC92A, 1u, 0x80},
{0xC92B, 1u, 0x4B},
{0xC92C, 1u, 0x00},
{0xC92D, 1u, 0xFF},
{0xC92E, 1u, 0x3C},
{0xC92F, 1u, 0x02},
{0xC930, 1u, 0x06},
{0xC931, 1u, 0x64},
{0xC932, 1u, 0x01},
{0xC933, 1u, 0x0C},
{0xC934, 1u, 0x3C},
{0xC935, 1u, 0x3C},
{0xC936, 1u, 0x3C},
{0xC937, 1u, 0x0F},
{0xC938, 1u, 0x64},
{0xC939, 1u, 0x64},
{0xC93A, 1u, 0x64},
{0xC93B, 1u, 0x32},
{0xC93C, 2u, 0x0020},
{0xC93E, 2u, 0x009A},
{0xC940, 2u, 0x00DC},
{0xC942, 1u, 0x38},
{0xC943, 1u, 0x30},
{0xC944, 1u, 0x50},
{0xC945, 1u, 0x19},
{0xC94A, 2u, 0x0230},
{0xC94C, 2u, 0x0010},
{0xC94E, 2u, 0x01CD},
{0xC950, 1u, 0x05},
{0xC951, 1u, 0x40},
{0xC87B, 1u, 0x1B},
{0xC890, 2u, 0x0080},
{0xC886, 2u, 0x0100},
{0xC87C, 2u, 0x005A},
{0xB42A, 1u, 0x05},
{0xA80A, 1u, 0x20},
{ 0xC914 , 2u, 0x0000},
{ 0xC916 , 2u, 0x0000},
{ 0xC91C , 2u, 0x0000},
{ 0xC91E , 2u, 0x0000},
{ 0x001E , 2u, 0x0777},
{ 0xC86E , 2u, 0x0038},
}

◆ mt9m114_vga

const mt9m114_reg_t mt9m114_vga[]
Initial value:
= {
{ 0xC800 , 2, 0x0000},
{ 0xC802 , 2, 0x0000},
{ 0xC804 , 2, 0x03CD},
{ 0xC806 , 2, 0x050D},
{ 0xC818 , 2, 0x01E3},
{ 0xC858 , 2, 0x0280},
{ 0xC85A , 2, 0x01E0},
{ 0xC868 , 2, 0x0280},
{ 0xC86A , 2, 0x01E0},
{ 0xC918 , 2, 0x027F},
{ 0xC91A , 2, 0x01DF},
{ 0xC920 , 2, 0x007F},
{ 0xC922 , 2, 0x005F},
}