Arianna autonomous DAQ firmware
Dependencies: mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW
SnConstants.h@28:484943132bb0, 2012-11-24 (annotated)
- Committer:
- uci1
- Date:
- Sat Nov 24 06:38:43 2012 +0000
- Revision:
- 28:484943132bb0
- Parent:
- 27:efc4d654b139
- Child:
- 30:f869ed4bcc08
Afar, SBD, twitter enabled. Debug disabled. Safety nets on config parameters. Patched up netif code to connect to multiple sockets. Add default mbed IP according to mac address.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
uci1 | 1:e392595b4b76 | 1 | #ifndef SN_SnConstants |
uci1 | 1:e392595b4b76 | 2 | #define SN_SnConstants |
uci1 | 1:e392595b4b76 | 3 | |
uci1 | 1:e392595b4b76 | 4 | #include "SnBitUtils.h" |
uci1 | 1:e392595b4b76 | 5 | |
uci1 | 27:efc4d654b139 | 6 | //#define CPUBAUD_SN 921600 |
uci1 | 27:efc4d654b139 | 7 | #define CPUBAUD_SN 460800 |
uci1 | 25:57b2627fe756 | 8 | //#define CPUBAUD_SN 115200 |
uci1 | 25:57b2627fe756 | 9 | |
uci1 | 1:e392595b4b76 | 10 | // |
uci1 | 1:e392595b4b76 | 11 | // constants |
uci1 | 1:e392595b4b76 | 12 | // |
uci1 | 1:e392595b4b76 | 13 | static const uint32_t kBStime = 946684800u; // 1/1/2000 00:00:00 UTC |
uci1 | 16:744ce85aede2 | 14 | static const double kIridEpoch = 1173325835; // 2007-3-08 03:50:35 GMT (needs to be a double) |
uci1 | 16:744ce85aede2 | 15 | static const double kSecPerIridTick = 90e-3; // 90ms/tick |
uci1 | 1:e392595b4b76 | 16 | static const uint8_t kNchans = 4u; |
uci1 | 1:e392595b4b76 | 17 | static const uint8_t kNsamps = 128u; |
uci1 | 1:e392595b4b76 | 18 | static const uint8_t kNfpgaDacs = 4u; |
uci1 | 3:24c5f0f50bf1 | 19 | static const uint8_t kNplas = 5u;//72; |
uci1 | 1:e392595b4b76 | 20 | static const uint16_t kNoTrigPla = 0x0000u; |
uci1 | 28:484943132bb0 | 21 | static const uint8_t kNcomms = 2u; |
uci1 | 8:95a325df1f6b | 22 | static const uint16_t kNvoltsAve = 500u; // must be greater than ~10 (but not checked. <2 will result in divide by 0) |
uci1 | 16:744ce85aede2 | 23 | static const float kAsfClkPrdUs = 8.535; // us -- change kAdcToMBtimeCut if this is <=2us |
uci1 | 16:744ce85aede2 | 24 | |
uci1 | 1:e392595b4b76 | 25 | static const uint32_t kAbsMaxTimer = 1800u; // timers use integers counting us and can't go longer than ~ this many secs |
uci1 | 1:e392595b4b76 | 26 | // NOTE: these times below must be less than kAbsMaxTimer (this is not checked, however) |
uci1 | 28:484943132bb0 | 27 | static const uint32_t kDefTimeout = 120u; // seconds |
uci1 | 28:484943132bb0 | 28 | static const uint32_t kConnectTimeout = 120u; // seconds |
uci1 | 28:484943132bb0 | 29 | static const uint32_t kListenTimeout = 120u; // seconds |
uci1 | 28:484943132bb0 | 30 | static const uint32_t kConnectSBDTO = 180u; // seconds |
uci1 | 1:e392595b4b76 | 31 | static const uint32_t kCommWinLongPrdTk = 300u; // seconds |
uci1 | 16:744ce85aede2 | 32 | static const uint32_t kSecsPerDay = 3600u*24u; |
uci1 | 16:744ce85aede2 | 33 | static const uint32_t kSecsPerYear = kSecsPerDay*365u; |
uci1 | 3:24c5f0f50bf1 | 34 | |
uci1 | 28:484943132bb0 | 35 | // safety nets |
uci1 | 28:484943132bb0 | 36 | static const float kMinForcePer = 0.05; // seconds -- safety net for max force trigger rate |
uci1 | 28:484943132bb0 | 37 | static const uint16_t kMaxThrottlePerMs = 60000; // ms -- max time between thermal triggers |
uci1 | 28:484943132bb0 | 38 | static const uint16_t kMaxBatVoltLowPwr = 25000; // ADCs -- probably futile, but try to prevent it from being in low power mode always |
uci1 | 28:484943132bb0 | 39 | static const uint32_t kMaxCommWinPeriod = 259200; // seconds -- max time between communication windows |
uci1 | 28:484943132bb0 | 40 | static const uint32_t kMinCommWinDur = 300; // seconds -- min communication window duration -- must be >= Ncomms*listen/connect timeout |
uci1 | 28:484943132bb0 | 41 | static const uint32_t kMaxWatchDogPer = 3600; // seconds -- max time before watchdog reset on idle |
uci1 | 28:484943132bb0 | 42 | static const uint32_t kMinWatchDogPer = 30; // seconds -- min time before watchdog reset on idle |
uci1 | 28:484943132bb0 | 43 | |
uci1 | 1:e392595b4b76 | 44 | static const uint16_t kTotSamps = kNchans*kNsamps; |
uci1 | 1:e392595b4b76 | 45 | static const uint16_t kTotDacs = kNchans*kNfpgaDacs; |
uci1 | 1:e392595b4b76 | 46 | |
uci1 | 16:744ce85aede2 | 47 | static const float kAdcToMBtimeCut = (kNsamps*kAsfClkPrdUs)+(kAsfClkPrdUs/2.0); |
uci1 | 16:744ce85aede2 | 48 | |
uci1 | 1:e392595b4b76 | 49 | enum ESnTrgTypes { |
uci1 | 16:744ce85aede2 | 50 | kThmTrg=0, |
uci1 | 16:744ce85aede2 | 51 | kFrcTrg, |
uci1 | 16:744ce85aede2 | 52 | kExtTrg, |
uci1 | 16:744ce85aede2 | 53 | kAdcToMBflag, |
uci1 | 16:744ce85aede2 | 54 | |
uci1 | 1:e392595b4b76 | 55 | kNumTrgs |
uci1 | 1:e392595b4b76 | 56 | }; |
uci1 | 16:744ce85aede2 | 57 | // order must match ESnTrgTypes |
uci1 | 16:744ce85aede2 | 58 | static const uint8_t kTrgBW[kNumTrgs] = { BIT(0), BIT(1), BIT(2), BIT(7) }; |
uci1 | 1:e392595b4b76 | 59 | |
uci1 | 1:e392595b4b76 | 60 | |
uci1 | 1:e392595b4b76 | 61 | |
uci1 | 0:664899e0b988 | 62 | #endif // SN_SnConstants |