Nordic Semiconductor nRF5 AirFuel SDK  version 2.2.0
PRU sensors API

Data Structures

struct  pru_sensor_data_t
 Definition of PRU reporting data. More...
 

General API functions

void pru_sensors_init (pru_sm_handler_t pru_sm_handler)
 Initialize sensors and read default values. More...
 
void pru_sensors_read_all (void)
 Read PRU sensors.
 
const pru_sensor_data_tpru_sensors_data_get (void)
 Get the latest data from the PRU sensors. More...
 
uint32_t pru_sensor_alerts_get (bool *new_alert_occured, pru_alert_t *p_pru_alert)
 Extract alerts from the latest data read from PRU sensors. More...
 
uint32_t pru_sensors_board_read_all (pru_sensor_data_t *p_sensor_data)
 Read PRU HW specific sensors. More...
 
void pru_sensors_gen_evts (void)
 Generate PRU state machine events from sensor data. More...
 

Detailed Description

Function Documentation

void pru_sensors_init ( pru_sm_handler_t  pru_sm_handler)

Initialize sensors and read default values.

Parameters
pru_sm_handlerState machine event handler
Returns
NRF_SUCCESS on success, otherwise an error code.

Definition at line 42 of file pru_sensors.c.

43 {
44  // Initialize 'static' PRU dynamic values
45  memset(&m_pru_sensor_data,0,sizeof(m_pru_sensor_data));
46  memset(&m_prev_alerts, 0, sizeof(pru_alert_t));
47  m_signal_handler = sm_handler;
48  m_hv_counter = 0;
49 }
static pru_sensor_data_t m_pru_sensor_data
Definition: pru_sensors.c:30
PRU Alert Parameter structure.
Definition: wpt.h:145
static uint32_t m_hv_counter
Definition: pru_sensors.c:31
static pru_alert_t m_prev_alerts
Definition: pru_sensors.c:32
static pru_sm_handler_t m_signal_handler
Definition: pru_sensors.c:33
const pru_sensor_data_t* pru_sensors_data_get ( void  )

Get the latest data from the PRU sensors.

Returns
Pointer to the report data.

Definition at line 146 of file pru_sensors.c.

147 {
148  return &m_pru_sensor_data;
149 }
static pru_sensor_data_t m_pru_sensor_data
Definition: pru_sensors.c:30
uint32_t pru_sensor_alerts_get ( bool *  new_alert_occured,
pru_alert_t p_pru_alert 
)

Extract alerts from the latest data read from PRU sensors.

Parameters
[out]new_alert_occuredreturns true if an alert should be sent to PTU.
[out]p_pru_alertpointer to where to write alert data.
Returns
NRF_SUCCESS on success, otherwise an error code.

Definition at line 151 of file pru_sensors.c.

152 {
153  ASSERT(p_pru_alert != NULL);
154  ASSERT(new_alert_occured != NULL);
155 
156  if((p_pru_alert != NULL) && (new_alert_occured != NULL))
157  {
158  memset(p_pru_alert, 0, sizeof(pru_alert_t));
165 
166  if((p_pru_alert->alerts.pru_over_voltage ||
167  p_pru_alert->alerts.pru_over_current ||
168  p_pru_alert->alerts.pru_over_temperature ||
169  p_pru_alert->alerts.charge_complete ||
170  p_pru_alert->alerts.wired_charge_detect) &&
171  (memcmp(&m_prev_alerts, p_pru_alert, sizeof(pru_alert_t) != 0)))
172  {
173  *new_alert_occured = true;
174  }
175  else
176  {
177  *new_alert_occured = false;
178  }
179 
180  memcpy(&m_prev_alerts, p_pru_alert, sizeof(pru_alert_t));
181 
182  return NRF_SUCCESS;
183  }
184  else
185  {
186  return NRF_ERROR_NULL;
187  }
188 }
static pru_sensor_data_t m_pru_sensor_data
Definition: pru_sensors.c:30
uint8_t wired_charge_detect
Definition: wpt.h:139
uint8_t over_voltage
Definition: pru_sensors.h:33
PRU Alert Parameter structure.
Definition: wpt.h:145
uint8_t over_temperature
Definition: pru_sensors.h:35
static pru_alert_t m_prev_alerts
Definition: pru_sensors.c:32
uint8_t pru_over_voltage
Definition: wpt.h:134
uint8_t charge_complete
Definition: pru_sensors.h:39
uint8_t pru_over_current
Definition: wpt.h:135
uint8_t pru_over_temperature
Definition: wpt.h:136
uint8_t wired_charge_detect
Definition: pru_sensors.h:37
#define BLE_WPTS_PRU_ALERT_NO_SELF_PROTECTION_VAL
uint8_t over_current
Definition: pru_sensors.h:34
uint8_t pru_self_protection
Definition: wpt.h:137
pru_alert_bits_t alerts
Definition: wpt.h:147
uint8_t charge_complete
Definition: wpt.h:138
uint32_t pru_sensors_board_read_all ( pru_sensor_data_t p_sensor_data)

Read PRU HW specific sensors.

Function that can be customized for HW.

Parameters
[out]p_sensor_datapointer in which to return sensor data.
Returns
NRF_SUCCESS on success, otherwise an error code.
void pru_sensors_gen_evts ( void  )

Generate PRU state machine events from sensor data.

Definition at line 190 of file pru_sensors.c.

191 {
192  if(m_signal_handler != NULL)
193  {
194  const pru_sensor_data_t * p_sensor_data = pru_sensors_data_get();
195  bool system_error = (p_sensor_data->over_voltage || p_sensor_data->over_current || p_sensor_data->over_temperature);
196 
197  // System Error or System OK Event
198  if(system_error)
200 
201  if(p_sensor_data->vrect >= PRU_VRECT_BOOT)
203 
204  if(p_sensor_data->vrect < PRU_VRECT_UVLO)
206 
207  if(p_sensor_data->charge_complete || p_sensor_data->wired_charge_detect)
209  }
210 }
uint8_t over_voltage
Definition: pru_sensors.h:33
uint8_t over_temperature
Definition: pru_sensors.h:35
const pru_sensor_data_t * pru_sensors_data_get(void)
Get the latest data from the PRU sensors.
Definition: pru_sensors.c:146
Definition of PRU reporting data.
Definition: pru_sensors.h:26
#define PRU_VRECT_BOOT
Definition: pru_hw_config.h:23
uint8_t charge_complete
Definition: pru_sensors.h:39
uint8_t wired_charge_detect
Definition: pru_sensors.h:37
#define PRU_VRECT_UVLO
Definition: pru_hw_config.h:24
uint8_t over_current
Definition: pru_sensors.h:34
static pru_sm_handler_t m_signal_handler
Definition: pru_sensors.c:33