123

Dependencies:   mbed

Fork of LG by igor Apu

Committer:
Diletant
Date:
Sun May 15 19:12:12 2016 +0000
Revision:
161:efd949e8d536
Child:
166:c3c0b8a90d81
Device & ... update. Not final!!!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Diletant 161:efd949e8d536 1 #ifndef __DEVICE_ISACS_H__
Diletant 161:efd949e8d536 2 #define __DEVICE_ISACS_H__
Diletant 161:efd949e8d536 3
Diletant 161:efd949e8d536 4 #include "DeviceISACSPotentiometers.h"
Diletant 161:efd949e8d536 5
Diletant 161:efd949e8d536 6 //Information signal amplitude control system
Diletant 161:efd949e8d536 7 // input(photodetector - amplifier - potentiometers - amplitude detector - ADC - low pass filter - code - voltage)
Diletant 161:efd949e8d536 8 // regulator
Diletant 161:efd949e8d536 9 // output(voltage - code - DAC - Amplifier - control unit - hfo)
Diletant 161:efd949e8d536 10
Diletant 161:efd949e8d536 11 //Information signal amplitude control system output ( = DAC + amplifier + control unit + hfo) typedefs
Diletant 161:efd949e8d536 12 typedef struct _DeviceISACSOutputSettings {
Diletant 161:efd949e8d536 13 uint32_t points; //Number of actual control points (up to 16)
Diletant 161:efd949e8d536 14 uint32_t voltage[16]; //Output voltage control points in signed 16.16 fixed point format
Diletant 161:efd949e8d536 15 uint32_t code[16]; //DAC code control points
Diletant 161:efd949e8d536 16 } DeviceISACSOutputSettings;
Diletant 161:efd949e8d536 17
Diletant 161:efd949e8d536 18 typedef struct _DeviceISACSOutputState {
Diletant 161:efd949e8d536 19 uint32_t voltage; //Output voltage
Diletant 161:efd949e8d536 20 uint32_t code; //DAC code
Diletant 161:efd949e8d536 21 } DeviceISACSOutputState;
Diletant 161:efd949e8d536 22
Diletant 161:efd949e8d536 23 typedef struct _DeviceISACSOutput {
Diletant 161:efd949e8d536 24 DeviceISACSOutputSettings settings;
Diletant 161:efd949e8d536 25 DeviceISACSOutputState state;
Diletant 161:efd949e8d536 26 } DeviceISACSOutput;
Diletant 161:efd949e8d536 27
Diletant 161:efd949e8d536 28 /*
Diletant 161:efd949e8d536 29 //Information signal amplitude control system control amplifier (DAC - amplifier - control unit - hfo) typedefs
Diletant 161:efd949e8d536 30 typedef struct _DeviceISASAmplifierSettings {
Diletant 161:efd949e8d536 31 uint32_t reference; //Reference voltage
Diletant 161:efd949e8d536 32 uint32_t gain; //Amplifier gain
Diletant 161:efd949e8d536 33 } DeviceISASAmplifierSettings;
Diletant 161:efd949e8d536 34
Diletant 161:efd949e8d536 35 typedef struct _DeviceISASAmplifier {
Diletant 161:efd949e8d536 36 DeviceISASAmplifierSettings settings;
Diletant 161:efd949e8d536 37 } DeviceISASAmplifier;
Diletant 161:efd949e8d536 38 */
Diletant 161:efd949e8d536 39
Diletant 161:efd949e8d536 40 //Information signal amplitude control system regulator typedefs
Diletant 161:efd949e8d536 41 typedef struct _DeviceISACSRegulatorConditionSettings {
Diletant 161:efd949e8d536 42 uint32_t reference; //signed 16.16 format reference voltage
Diletant 161:efd949e8d536 43 uint32_t scale; //signed 16.16 format regulator scale factor
Diletant 161:efd949e8d536 44 } DeviceISACSRegulatorConditionSettings;
Diletant 161:efd949e8d536 45
Diletant 161:efd949e8d536 46 typedef struct _DeviceISACSRegulatorSettings {
Diletant 161:efd949e8d536 47 uint8_t enabled;
Diletant 161:efd949e8d536 48 DeviceISACSRegulatorConditionSettings start; //settings for PLCS system in start condition
Diletant 161:efd949e8d536 49 DeviceISACSRegulatorConditionSettings regular; //settings for PLCS system in normal condition
Diletant 161:efd949e8d536 50 DeviceISACSRegulatorConditionSettings reset; //settings for PLCS system in reset condition
Diletant 161:efd949e8d536 51 } DeviceISACSRegulatorSettings;
Diletant 161:efd949e8d536 52
Diletant 161:efd949e8d536 53 typedef struct _DeviceISACSRegulatorState {
Diletant 161:efd949e8d536 54 uint8_t enabled;
Diletant 161:efd949e8d536 55 uint32_t reference; //signed 16.16 format reference voltage
Diletant 161:efd949e8d536 56 uint32_t scale; //signed 16.16 format regulator scale factor
Diletant 161:efd949e8d536 57 uint32_t error; //signed 16.16 format regulator error
Diletant 161:efd949e8d536 58 } DeviceISACSRegulatorState;
Diletant 161:efd949e8d536 59
Diletant 161:efd949e8d536 60 typedef struct _DeviceISACSRegulator {
Diletant 161:efd949e8d536 61 DeviceISACSRegulatorSettings settings;
Diletant 161:efd949e8d536 62 DeviceISACSRegulatorState state;
Diletant 161:efd949e8d536 63 } DeviceISACSRegulator;
Diletant 161:efd949e8d536 64
Diletant 161:efd949e8d536 65 //Information signal amplitude control system typedefs
Diletant 161:efd949e8d536 66 // Information signal amplitude control system ADC: device.controller.SSP.ADC[4]
Diletant 161:efd949e8d536 67 // Information signal amplitude control system DAC: device.controller.SSP.DAC[0]
Diletant 161:efd949e8d536 68 typedef struct _DeviceISACS {
Diletant 161:efd949e8d536 69 DeviceISACSPotentiometers potentiometers;
Diletant 161:efd949e8d536 70 //DeviceISASAmplifier amplifier;
Diletant 161:efd949e8d536 71 DeviceISACSOutput output;
Diletant 161:efd949e8d536 72 DeviceISACSRegulator regulator;
Diletant 161:efd949e8d536 73 } DeviceISACS;
Diletant 161:efd949e8d536 74
Diletant 161:efd949e8d536 75 //Information signal amplitude stabilizer functions
Diletant 161:efd949e8d536 76 void InitISACSPotentiometersWithDefaults(void);
Diletant 161:efd949e8d536 77 void InitISACSPotentiometers(void);
Diletant 161:efd949e8d536 78
Diletant 161:efd949e8d536 79 void InitISACSOutputWithDefaults(void);
Diletant 161:efd949e8d536 80 void InitISACSOutput(void);
Diletant 161:efd949e8d536 81
Diletant 161:efd949e8d536 82 void InitISACSRegulatorWithDefaults(void);
Diletant 161:efd949e8d536 83 void InitISACSRegulator(void);
Diletant 161:efd949e8d536 84
Diletant 161:efd949e8d536 85 void InitISACSWithDefaults(void);
Diletant 161:efd949e8d536 86 void InitISACS(void);
Diletant 161:efd949e8d536 87 void StartISACS(void);
Diletant 161:efd949e8d536 88
Diletant 161:efd949e8d536 89 #endif /* __DEVICE_ISACS_H__ */