Skip to content
Snippets Groups Projects
Commit 764924c8 authored by Christos Gentsos's avatar Christos Gentsos
Browse files

PMBus: implement FAN_COMMAND_n cmds to set fan RPMs

parent 05451636
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@
#include <COAST.h>
#include <i2c_slave.h>
#include <flash_utils.h>
#include <float_utils.h>
#include <usb_debug.h>
const char MFR_ID[] = "CERN (be/co)";
......@@ -35,6 +36,10 @@ extern uint16_t frpms_lin[3];
uint32_t TMR_ERROR_CNT;
void set_frpms();
uint16_t setfrpms_lin[3];
extern uint16_t setfrpms[3];
static int8_t cmd_data_lengths[] = {
1, // 0x00
-1, // 0x1A
......@@ -52,7 +57,10 @@ static int8_t cmd_data_lengths[] = {
-(int8_t)sizeof(MFR_REV), // 0x9B
-(int8_t)sizeof(MFR_LOC), // 0x9C
-(int8_t)sizeof(MFR_DAT), // 0x9D
-(int8_t)sizeof(MFR_SER)}; // 0x9E
-(int8_t)sizeof(MFR_SER), // 0x9E
2, // 0x3B
2, // 0x3C
2}; // 0x3E
static cmd_t cmds_cmds[] = (cmd_t[]){
{0x00, &cmd_data_lengths[0], (uint8_t *)&page, (fp_t)NULL, &page_chk, (fp_t)NULL},
......@@ -71,7 +79,10 @@ static cmd_t cmds_cmds[] = (cmd_t[]){
{0x9B, &cmd_data_lengths[13], (uint8_t *)&MFR_REV, (fp_t)NULL, (fp_t)NULL, (fp_t)NULL},
{0x9C, &cmd_data_lengths[14], (uint8_t *)&MFR_LOC, (fp_t)NULL, (fp_t)NULL, (fp_t)NULL},
{0x9D, &cmd_data_lengths[15], (uint8_t *)&MFR_DAT, (fp_t)NULL, (fp_t)NULL, (fp_t)NULL},
{0x9E, &cmd_data_lengths[16], (uint8_t *)&MFR_SER, (fp_t)NULL, (fp_t)NULL, (fp_t)NULL}};
{0x9E, &cmd_data_lengths[16], (uint8_t *)&MFR_SER, (fp_t)NULL, (fp_t)NULL, (fp_t)NULL},
{0x3B, &cmd_data_lengths[17], (uint8_t *)&setfrpms_lin[0], (fp_t)NULL, &set_frpms, (fp_t)NULL},
{0x3C, &cmd_data_lengths[18], (uint8_t *)&setfrpms_lin[1], (fp_t)NULL, &set_frpms, (fp_t)NULL},
{0x3E, &cmd_data_lengths[19], (uint8_t *)&setfrpms_lin[2], (fp_t)NULL, &set_frpms, (fp_t)NULL}};
cmd_space_t cmds = {
sizeof(cmds_cmds)/sizeof(cmd_t),
......@@ -167,3 +178,10 @@ void query_prp()
else
query_r = 0;
}
void set_frpms()
{
setfrpms[0] = linear_to_float(setfrpms_lin[0]);
setfrpms[1] = linear_to_float(setfrpms_lin[1]);
setfrpms[2] = linear_to_float(setfrpms_lin[2]);
}
......@@ -42,9 +42,11 @@ static uint16_t fan_ramp_up_count __xMR = 0;
uint16_t tacho_cnt[3];
uint16_t tacho_rpm[3];
pid_cntrl_t PID1 = {1500.0};
pid_cntrl_t PID2 = {1500.0};
pid_cntrl_t PID3 = {1500.0};
uint16_t setfrpms[3] = {1500, 1500, 1500};
pid_cntrl_t PID1;
pid_cntrl_t PID2;
pid_cntrl_t PID3;
uint16_t adc_ch __xMR;
uint16_t adc_vals[12];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment