Commit 3866c25f authored by Henrique Silva's avatar Henrique Silva

Move SDR definitions to the port folder

A user defined funtions was also implemented in order to initialize all
wanted sensors in the board
parent e6d3582e
......@@ -65,6 +65,9 @@ size_t sdr_get_size_by_entry(uint8_t id)
void sensor_init( void )
{
/* This function must be provided by the board port */
user_sdr_init();
hotswap_init();
LM75_init();
ina220_init();
......
......@@ -216,5 +216,6 @@ void sdr_init( void );
void sensor_init( void );
void sdr_insert_entry( SDR_TYPE type, void * sdr, TaskHandle_t *monitor_task, uint8_t diag_id, uint8_t slave_addr );
void check_sensor_event( sensor_t * sensor );
void user_sdr_init( void );
#endif
......@@ -15,8 +15,6 @@ endif()
if (";${TARGET_MODULES};" MATCHES ";VOLTAGE_SENSOR;")
set(PROJ_SRCS ${PROJ_SRCS} ${SENSOR_PATH}/ina220.c)
#INA220 SDR is in a different source because it's too large and would polute the ina220.c
set(PROJ_SRCS ${PROJ_SRCS} ${SENSOR_PATH}/ina220_sdr.c)
set(MODULES_FLAGS "${MODULES_FLAGS} -DMODULE_VOLTAGE_SENSOR")
endif()
......
......@@ -102,8 +102,6 @@ void hotswap_init( void )
/* Create Hot Swap task */
xTaskCreate( vTaskHotSwap, "Hot Swap", 200, (void *) NULL, tskHOTSWAP_PRIORITY, &vTaskHotSwap_Handle);
sdr_insert_entry( TYPE_02, (void *) &SDR_HOT_SWAP, &vTaskHotSwap_Handle, 0, 0 );
for ( uint8_t i = 0; i < sdr_count; i++ ) {
/* Check if the handle pointer is not NULL */
......@@ -219,44 +217,3 @@ void hotswap_set_mask_bit( uint8_t mask )
hotswap_sensor->readout_value |= mask;
}
}
/* AMC Hot-Swap sensor SDR */
const SDR_type_02h_t SDR_HOT_SWAP = {
.hdr.recID_LSB = 0x00, /* Filled by sdr_insert_entry() */
.hdr.recID_MSB = 0x00,
.hdr.SDRversion = 0x51,
.hdr.rectype = TYPE_02,
.hdr.reclength = sizeof(SDR_type_02h_t) - sizeof(SDR_entry_hdr_t),
.ownerID = 0x00, /* i2c address, -> SDR_Init */
.ownerLUN = 0x00, /* sensor owner LUN */
.sensornum = 0x00, /* Filled by sdr_insert_entry() */
/* record body bytes */
.entityID = 0xC1, /* entity id: AMC Module */
.entityinstance = 0x00, /* entity instance -> SDR_Init */
.sensorinit = 0x03, /* init: event generation + scanning enabled */
.sensorcap = 0xc1, /* capabilities: auto re-arm,*/
.sensortype = SENSOR_TYPE_HOT_SWAP, /* sensor type: HOT SWAP*/
.event_reading_type = 0x6f, /* sensor reading*/
.assertion_event_mask = { 0x00, /* LSB assert event mask: 3 bit value */
0x00 }, /* MSB assert event mask */
.deassertion_event_mask = { 0x00, /* LSB deassert event mask: 3 bit value */
0x00 }, /* MSB deassert event mask */
.readable_threshold_mask = 0x00, /* LSB: readable Threshold mask: no thresholds are readable: */
.settable_threshold_mask = 0x00, /* MSB: setable Threshold mask: no thresholds are setable: */
.sensor_units_1 = 0xc0, /* sensor units 1 : Does not return analog reading*/
.sensor_units_2 = 0x00, /* sensor units 2 :*/
.sensor_units_3 = 0x00, /* sensor units 3 :*/
.record_sharing[0] = 0x00,
.record_sharing[1] = 0x00,
.pos_thr_hysteresis = 0x00, /* positive going Threshold hysteresis value */
.neg_thr_hysteresis = 0x00, /* negative going Threshold hysteresis value */
.reserved1 = 0x00, /* reserved */
.reserved2 = 0x00, /* reserved */
.reserved3 = 0x00, /* reserved */
.OEM = 0x00, /* OEM reserved */
.IDtypelen = 0xc0 | STR_SIZE("HOTSWAP HANDLE"), /* 8 bit ASCII, number of bytes */
.IDstring = "HOTSWAP HANDLE" /* sensor string */
};
......@@ -60,10 +60,12 @@ static t_ina220_data ina220_data[MAX_INA220_COUNT];
void vTaskINA220( void *Parameters )
{
uint8_t i;
TickType_t xLastWakeTime;
/* Task will run every 100ms */
const TickType_t xFrequency = INA220_UPDATE_RATE / portTICK_PERIOD_MS;
extern const SDR_type_01h_t SDR_FMC1_12V;
sensor_t * ina220_sensor;
t_ina220_data * data_ptr;
......@@ -191,25 +193,6 @@ void ina220_init( void )
xTaskCreate( vTaskINA220, "INA220", 400, (void *) NULL, tskINA220SENSOR_PRIORITY, &vTaskINA220_Handle);
/* FMC1 Voltage */
sdr_insert_entry( TYPE_01, (void *) &SDR_FMC1_12V, &vTaskINA220_Handle, FMC1_12V_DEVID, 0x45 );
sdr_insert_entry( TYPE_01, (void *) &SDR_FMC1_VADJ, &vTaskINA220_Handle, FMC1_VADJ_DEVID, 0x41 );
sdr_insert_entry( TYPE_01, (void *) &SDR_FMC1_P3V3, &vTaskINA220_Handle, FMC1_P3V3_DEVID, 0x43 );
/* FMC1 Current */
sdr_insert_entry( TYPE_01, (void *) &SDR_FMC1_12V_CURR, &vTaskINA220_Handle, FMC1_12V_CURR_DEVID, 0x45 );
sdr_insert_entry( TYPE_01, (void *) &SDR_FMC1_VADJ_CURR, &vTaskINA220_Handle, FMC1_VADJ_CURR_DEVID, 0x41 );
sdr_insert_entry( TYPE_01, (void *) &SDR_FMC1_P3V3_CURR, &vTaskINA220_Handle, FMC1_P3V3_CURR_DEVID, 0x43 );
/* FMC2 Voltage */
sdr_insert_entry( TYPE_01, (void *) &SDR_FMC2_12V, &vTaskINA220_Handle, FMC2_12V_DEVID, 0x40 );
sdr_insert_entry( TYPE_01, (void *) &SDR_FMC2_VADJ, &vTaskINA220_Handle, FMC2_VADJ_DEVID, 0x42 );
sdr_insert_entry( TYPE_01, (void *) &SDR_FMC2_P3V3, &vTaskINA220_Handle, FMC2_P3V3_DEVID, 0x44 );
/* FMC2 Current */
sdr_insert_entry( TYPE_01, (void *) &SDR_FMC2_12V_CURR, &vTaskINA220_Handle, FMC2_12V_CURR_DEVID, 0x40 );
sdr_insert_entry( TYPE_01, (void *) &SDR_FMC2_VADJ_CURR, &vTaskINA220_Handle, FMC2_VADJ_CURR_DEVID, 0x42 );
sdr_insert_entry( TYPE_01, (void *) &SDR_FMC2_P3V3_CURR, &vTaskINA220_Handle, FMC2_P3V3_CURR_DEVID, 0x44 );
for ( j = 0; j < sdr_count; j++ ) {
/* Update their SDR */
/* Check if the handle pointer is not NULL */
......
This diff is collapsed.
......@@ -35,10 +35,10 @@
extern TaskHandle_t vTaskLM75_Handle;
const SDR_type_01h_t SDR_LM75_uC;
const SDR_type_01h_t SDR_LM75_CLOCK_SWITCH;
const SDR_type_01h_t SDR_LM75_DCDC;
const SDR_type_01h_t SDR_LM75_RAM;
extern const SDR_type_01h_t SDR_LM75_uC;
extern const SDR_type_01h_t SDR_LM75_CLOCK_SWITCH;
extern const SDR_type_01h_t SDR_LM75_DCDC;
extern const SDR_type_01h_t SDR_LM75_RAM;
void LM75_init( void );
void vTaskLM75( void* Parameters );
......
......@@ -24,6 +24,8 @@ set(TARGET_MODULES
set(BOARD_PATH ${CMAKE_CURRENT_SOURCE_DIR})
#Include the modules sources
##Sensors SDR list
set( PROJ_SRCS ${PROJ_SRCS} ${BOARD_PATH}/sdr_list.c )
#Extra definitions
if (WRITE_ID_EEPROM)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment