Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

Committer:
uci1
Date:
Wed May 29 18:54:19 2013 +0000
Revision:
38:9070c17536cd
Parent:
37:ff95e7070f26
Child:
39:2f17131d22a5
Update SnCRCUtils to use templated function. Add MODSERIAL include to SnCommWinUsb when enabled. Move iridium constants to SnCommConstants.

Who changed what in which revision?

UserRevisionLine numberNew 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 37:ff95e7070f26 5 #include "SnCommConstants.h"
uci1 25:57b2627fe756 6
uci1 1:e392595b4b76 7 //
uci1 1:e392595b4b76 8 // constants
uci1 1:e392595b4b76 9 //
uci1 36:87865913ae6f 10 static const bool kIridAfarPwrSame = true; // true if Iridium & Afar are on the same relay, false if not
uci1 1:e392595b4b76 11 static const uint32_t kBStime = 946684800u; // 1/1/2000 00:00:00 UTC
uci1 1:e392595b4b76 12 static const uint8_t kNchans = 4u;
uci1 1:e392595b4b76 13 static const uint8_t kNsamps = 128u;
uci1 1:e392595b4b76 14 static const uint8_t kNfpgaDacs = 4u;
uci1 3:24c5f0f50bf1 15 static const uint8_t kNplas = 5u;//72;
uci1 1:e392595b4b76 16 static const uint16_t kNoTrigPla = 0x0000u;
uci1 36:87865913ae6f 17 static const uint8_t kNcomms = 1u;
uci1 8:95a325df1f6b 18 static const uint16_t kNvoltsAve = 500u; // must be greater than ~10 (but not checked. <2 will result in divide by 0)
uci1 16:744ce85aede2 19 static const float kAsfClkPrdUs = 8.535; // us -- change kAdcToMBtimeCut if this is <=2us
uci1 16:744ce85aede2 20
uci1 1:e392595b4b76 21 static const uint32_t kAbsMaxTimer = 1800u; // timers use integers counting us and can't go longer than ~ this many secs
uci1 3:24c5f0f50bf1 22
uci1 28:484943132bb0 23 // safety nets
uci1 28:484943132bb0 24 static const float kMinForcePer = 0.05; // seconds -- safety net for max force trigger rate
uci1 28:484943132bb0 25 static const uint16_t kMaxThrottlePerMs = 60000; // ms -- max time between thermal triggers
uci1 28:484943132bb0 26 static const uint16_t kMaxBatVoltLowPwr = 25000; // ADCs -- probably futile, but try to prevent it from being in low power mode always
uci1 28:484943132bb0 27 static const uint32_t kMaxCommWinPeriod = 259200; // seconds -- max time between communication windows
uci1 28:484943132bb0 28 static const uint32_t kMinCommWinDur = 300; // seconds -- min communication window duration -- must be >= Ncomms*listen/connect timeout
uci1 28:484943132bb0 29 static const uint32_t kMaxWatchDogPer = 3600; // seconds -- max time before watchdog reset on idle
uci1 28:484943132bb0 30 static const uint32_t kMinWatchDogPer = 30; // seconds -- min time before watchdog reset on idle
uci1 28:484943132bb0 31
uci1 1:e392595b4b76 32 static const uint16_t kTotSamps = kNchans*kNsamps;
uci1 1:e392595b4b76 33 static const uint16_t kTotDacs = kNchans*kNfpgaDacs;
uci1 1:e392595b4b76 34
uci1 16:744ce85aede2 35 static const float kAdcToMBtimeCut = (kNsamps*kAsfClkPrdUs)+(kAsfClkPrdUs/2.0);
uci1 16:744ce85aede2 36
uci1 1:e392595b4b76 37 enum ESnTrgTypes {
uci1 16:744ce85aede2 38 kThmTrg=0,
uci1 16:744ce85aede2 39 kFrcTrg,
uci1 16:744ce85aede2 40 kExtTrg,
uci1 16:744ce85aede2 41 kAdcToMBflag,
uci1 16:744ce85aede2 42
uci1 1:e392595b4b76 43 kNumTrgs
uci1 1:e392595b4b76 44 };
uci1 16:744ce85aede2 45 // order must match ESnTrgTypes
uci1 16:744ce85aede2 46 static const uint8_t kTrgBW[kNumTrgs] = { BIT(0), BIT(1), BIT(2), BIT(7) };
uci1 1:e392595b4b76 47
uci1 1:e392595b4b76 48
uci1 1:e392595b4b76 49
uci1 0:664899e0b988 50 #endif // SN_SnConstants