annotate src/cs/drivers/drv_app/fchg/fchg_struct.h @ 597:f18b29e27be5

First attempt at MCSI voice path automatic switching The function is implemented at the ACI level in both aci2 and aci3, successfully avoids triggering the DSP bug on the first call, but the shutdown of MCSI upon call completion is not working properly yet in either version.
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 27 Mar 2019 22:18:35 +0000
parents 4c3d05866531
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
322
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * Internal structure definitions for the FCHG SWE reside here.
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * abb_inth.c will also need to include this header in order to
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 * get our T_PWR_CTRL_BLOCK definition.
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 */
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 #ifndef __FCHG_STRUCT_H
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 #define __FCHG_STRUCT_H
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 #include "rv/rv_general.h"
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 #include "rvf/rvf_api.h"
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12 #include "fchg/fchg_common.h"
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 struct charging_config {
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 UINT16 start_delay;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 UINT16 start_thresh;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 UINT16 restart_thresh;
360
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
18 UINT16 ci2cv_thresh;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
19 UINT16 cv_init_set;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
20 UINT16 cv_ctrl_loop_high;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
21 UINT16 cv_ctrl_loop_low;
362
4c3d05866531 FCHG: beginning of the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
22 UINT16 cv_dac_max_incr;
4c3d05866531 FCHG: beginning of the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 360
diff changeset
23 UINT16 cv_dac_max_decr;
360
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
24 UINT16 cv_samples_needed;
322
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 UINT16 overvoltage;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 UINT16 ci_current;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 UINT16 end_current;
360
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
28 UINT16 ichg_max_spike;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
29 UINT16 ichg_samples_needed;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
30 UINT16 charge_time_limit;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
31 UINT16 recharge_delay;
322
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 UINT16 bciconf;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 };
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 /* from original PWR SWE */
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 typedef struct {
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 UINT16 bat_voltage;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 T_PWR_PERCENT remain_capa;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 } T_PWR_THRESHOLDS;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 #define MAX_THRESHOLDS 101
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42
360
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
43 #define ICHG_AVG_WINDOW 6
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
44
322
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 typedef struct {
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 /* RiViera boilerplate */
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 T_RVF_ADDR_ID addr_id;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 T_RVF_MB_ID prim_id;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 /* configuration */
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 struct charging_config config;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 BOOL config_present;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 T_PWR_THRESHOLDS batt_thresholds[MAX_THRESHOLDS];
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 UINT16 nb_thresholds;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 /* state */
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 enum fchg_state state;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 UINT16 batt_mv;
333
8a90038c0173 FCHG: store discharge state as threshold index rather than percentage
Mychaela Falconia <falcon@freecalypso.org>
parents: 331
diff changeset
57 UINT16 curr_disch_thresh;
331
8166b0afcf8c FCHG: main ADC process implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 322
diff changeset
58 /* valid only during a charging cycle */
8166b0afcf8c FCHG: main ADC process implemented
Mychaela Falconia <falcon@freecalypso.org>
parents: 322
diff changeset
59 UINT16 i2v_offset;
360
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
60 UINT16 cv_dac_init;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
61 UINT16 cv_dac_curr;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
62 UINT16 cv_high_vbat_count;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
63 UINT16 cv_low_vbat_count;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
64 UINT16 ichg_avg_buf[ICHG_AVG_WINDOW];
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
65 UINT16 ichg_fill_level;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
66 UINT16 ichg_ring_ptr;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
67 UINT16 ichg_average;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
68 UINT16 ichg_low_count;
ce6d71349af0 FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents: 333
diff changeset
69 UINT32 start_time;
322
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 } T_PWR_CTRL_BLOCK;
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71
c4077830aeeb FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 #endif /* include guard */