OpenBIC
OpenSource Bridge-IC
plat_adc.c File Reference
#include <drivers/adc.h>
#include <drivers/spi.h>
#include "libutil.h"
#include <logging/log.h>
#include "plat_gpio.h"
#include "plat_adc.h"
#include "plat_class.h"
#include "plat_cpld.h"
#include <device.h>
#include "util_sys.h"
#include "plat_i2c_target.h"
#include "plat_pldm_sensor.h"
Include dependency graph for plat_adc.c:

Classes

struct  adc_info_t
 

Macros

#define BUFFER_SIZE   2
 
#define ADC_STACK_SIZE   1024
 
#define MEDHA0_ADC_CHANNEL   8
 
#define MEDHA1_ADC_CHANNEL   6
 
#define ADC_SPI_FREQ   6000000
 

Functions

 LOG_MODULE_REGISTER (plat_adc)
 
 K_THREAD_STACK_DEFINE (adc_thread_stack, ADC_STACK_SIZE)
 
 K_THREAD_STACK_DEFINE (adc_rainbow_thread_stack, ADC_STACK_SIZE)
 
float get_ads7066_vref ()
 
float get_ad4058_vref ()
 
uint16_t get_adc_averge_val (uint8_t idx)
 
uint16_t * get_adc_buf (uint16_t idx)
 
uint16_t * get_vr_buf (uint16_t idx)
 
uint16_t get_adc_averge_times (uint8_t idx)
 
void adc_set_averge_times (uint8_t idx, uint16_t time)
 
uint16_t get_adc_ucr (uint8_t idx)
 
void set_adc_ucr (uint8_t idx, uint16_t ucr)
 
bool get_adc_ucr_status (uint8_t idx)
 
void set_adc_ucr_status (uint8_t idx, bool status)
 
float adc_raw_mv_to_apms (uint16_t v, float vref)
 
uint16_t float_voltage_transfer_to_uint16 (float temp_voltage_value)
 
float uint16_voltage_transfer_to_float (uint16_t temp_voltage_value)
 
 K_WORK_DEFINE (adc_ucr_work, adc_ucr_work_handler)
 
bool adc_get_poll_flag ()
 
void adc_set_poll_flag (uint8_t onoff)
 
void read_adc_info ()
 
uint8_t get_adc_type ()
 
float get_adc_vr_pwr (uint8_t idx)
 
int ads7066_read_reg (uint8_t reg, uint8_t idx)
 
int ads7066_write_reg (uint8_t reg, uint8_t write_val, uint8_t idx)
 
int ad4058_read_reg (uint8_t reg, uint8_t idx)
 
int ad4058_write_reg (uint8_t reg, uint8_t write_val, uint8_t idx)
 
void get_ads7066_voltage ()
 
void get_ad4058_voltage ()
 
void ads7066_mode_init ()
 
void ad4058_mode_init ()
 
void adc_rainbow_polling_handler (void *p1, void *p2, void *p3)
 
void plat_adc_rainbow_init (void)
 

Variables

struct k_thread adc_poll_thread
 
struct k_thread adc_rainbow_poll_thread
 
uint8_t adc_idx_read = 0
 
float ad4058_val_0 = 0
 
float ad4058_val_1 = 0
 
float ads7066_val_0 = 0
 
float ads7066_val_1 = 0
 
const float ads7066_vref = 2.5
 
const float ad4058_vref = 2.5
 
const struct spi_cs_control * cs_ctrl
 
adc_info_t adc_info [ADC_IDX_MAX]
 

Macro Definition Documentation

◆ ADC_SPI_FREQ

#define ADC_SPI_FREQ   6000000

◆ ADC_STACK_SIZE

#define ADC_STACK_SIZE   1024

◆ BUFFER_SIZE

#define BUFFER_SIZE   2

◆ MEDHA0_ADC_CHANNEL

#define MEDHA0_ADC_CHANNEL   8

◆ MEDHA1_ADC_CHANNEL

#define MEDHA1_ADC_CHANNEL   6

Function Documentation

◆ ad4058_mode_init()

void ad4058_mode_init ( )
Here is the call graph for this function:

◆ ad4058_read_reg()

int ad4058_read_reg ( uint8_t  reg,
uint8_t  idx 
)

◆ ad4058_write_reg()

int ad4058_write_reg ( uint8_t  reg,
uint8_t  write_val,
uint8_t  idx 
)

◆ adc_get_poll_flag()

bool adc_get_poll_flag ( )

◆ adc_rainbow_polling_handler()

void adc_rainbow_polling_handler ( void *  p1,
void *  p2,
void *  p3 
)
Here is the call graph for this function:

◆ adc_raw_mv_to_apms()

float adc_raw_mv_to_apms ( uint16_t  v,
float  vref 
)
Here is the call graph for this function:

◆ adc_set_averge_times()

void adc_set_averge_times ( uint8_t  idx,
uint16_t  time 
)

◆ adc_set_poll_flag()

void adc_set_poll_flag ( uint8_t  onoff)

◆ ads7066_mode_init()

void ads7066_mode_init ( )
Here is the call graph for this function:

◆ ads7066_read_reg()

int ads7066_read_reg ( uint8_t  reg,
uint8_t  idx 
)

◆ ads7066_write_reg()

int ads7066_write_reg ( uint8_t  reg,
uint8_t  write_val,
uint8_t  idx 
)

◆ float_voltage_transfer_to_uint16()

uint16_t float_voltage_transfer_to_uint16 ( float  temp_voltage_value)

◆ get_ad4058_voltage()

void get_ad4058_voltage ( )

◆ get_ad4058_vref()

float get_ad4058_vref ( )

◆ get_adc_averge_times()

uint16_t get_adc_averge_times ( uint8_t  idx)

◆ get_adc_averge_val()

uint16_t get_adc_averge_val ( uint8_t  idx)

◆ get_adc_buf()

uint16_t * get_adc_buf ( uint16_t  idx)

◆ get_adc_type()

uint8_t get_adc_type ( )

◆ get_adc_ucr()

uint16_t get_adc_ucr ( uint8_t  idx)

◆ get_adc_ucr_status()

bool get_adc_ucr_status ( uint8_t  idx)

◆ get_adc_vr_pwr()

float get_adc_vr_pwr ( uint8_t  idx)

◆ get_ads7066_voltage()

void get_ads7066_voltage ( )

◆ get_ads7066_vref()

float get_ads7066_vref ( )

◆ get_vr_buf()

uint16_t * get_vr_buf ( uint16_t  idx)

◆ K_THREAD_STACK_DEFINE() [1/2]

K_THREAD_STACK_DEFINE ( adc_rainbow_thread_stack  ,
ADC_STACK_SIZE   
)

◆ K_THREAD_STACK_DEFINE() [2/2]

K_THREAD_STACK_DEFINE ( adc_thread_stack  ,
ADC_STACK_SIZE   
)

◆ K_WORK_DEFINE()

K_WORK_DEFINE ( adc_ucr_work  ,
adc_ucr_work_handler   
)

◆ LOG_MODULE_REGISTER()

LOG_MODULE_REGISTER ( plat_adc  )

◆ plat_adc_rainbow_init()

void plat_adc_rainbow_init ( void  )

◆ read_adc_info()

void read_adc_info ( )
Here is the call graph for this function:

◆ set_adc_ucr()

void set_adc_ucr ( uint8_t  idx,
uint16_t  ucr 
)

◆ set_adc_ucr_status()

void set_adc_ucr_status ( uint8_t  idx,
bool  status 
)

◆ uint16_voltage_transfer_to_float()

float uint16_voltage_transfer_to_float ( uint16_t  temp_voltage_value)

Variable Documentation

◆ ad4058_val_0

float ad4058_val_0 = 0

◆ ad4058_val_1

float ad4058_val_1 = 0

◆ ad4058_vref

const float ad4058_vref = 2.5

◆ adc_idx_read

uint8_t adc_idx_read = 0

◆ adc_info

Initial value:
= { { .avg_times = 20, .ucr = 1255 },
{ .avg_times = 60, .ucr = 1255 },
{ .avg_times = 600, .ucr = 1255 },
{ .avg_times = 800, .ucr = 1255 } }

◆ adc_poll_thread

struct k_thread adc_poll_thread

◆ adc_rainbow_poll_thread

struct k_thread adc_rainbow_poll_thread

◆ ads7066_val_0

float ads7066_val_0 = 0

◆ ads7066_val_1

float ads7066_val_1 = 0

◆ ads7066_vref

const float ads7066_vref = 2.5

◆ cs_ctrl

const struct spi_cs_control* cs_ctrl