Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

Committer:
uci1
Date:
Wed Nov 28 01:24:23 2012 +0000
Revision:
30:f869ed4bcc08
Parent:
28:484943132bb0
Child:
34:7b4c96e58b5f
Change power so to account for the Iridium being on the same relay as afar. Afar, SBD, Twitter enabled. No Debugging.

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 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 30:f869ed4bcc08 13 static const bool kIridAfarPwrSame = true; // true if Iridium & Afar are on the same relay, false if not
uci1 1:e392595b4b76 14 static const uint32_t kBStime = 946684800u; // 1/1/2000 00:00:00 UTC
uci1 16:744ce85aede2 15 static const double kIridEpoch = 1173325835; // 2007-3-08 03:50:35 GMT (needs to be a double)
uci1 16:744ce85aede2 16 static const double kSecPerIridTick = 90e-3; // 90ms/tick
uci1 1:e392595b4b76 17 static const uint8_t kNchans = 4u;
uci1 1:e392595b4b76 18 static const uint8_t kNsamps = 128u;
uci1 1:e392595b4b76 19 static const uint8_t kNfpgaDacs = 4u;
uci1 3:24c5f0f50bf1 20 static const uint8_t kNplas = 5u;//72;
uci1 1:e392595b4b76 21 static const uint16_t kNoTrigPla = 0x0000u;
uci1 28:484943132bb0 22 static const uint8_t kNcomms = 2u;
uci1 8:95a325df1f6b 23 static const uint16_t kNvoltsAve = 500u; // must be greater than ~10 (but not checked. <2 will result in divide by 0)
uci1 16:744ce85aede2 24 static const float kAsfClkPrdUs = 8.535; // us -- change kAdcToMBtimeCut if this is <=2us
uci1 16:744ce85aede2 25
uci1 1:e392595b4b76 26 static const uint32_t kAbsMaxTimer = 1800u; // timers use integers counting us and can't go longer than ~ this many secs
uci1 1:e392595b4b76 27 // NOTE: these times below must be less than kAbsMaxTimer (this is not checked, however)
uci1 28:484943132bb0 28 static const uint32_t kDefTimeout = 120u; // seconds
uci1 28:484943132bb0 29 static const uint32_t kConnectTimeout = 120u; // seconds
uci1 28:484943132bb0 30 static const uint32_t kListenTimeout = 120u; // seconds
uci1 28:484943132bb0 31 static const uint32_t kConnectSBDTO = 180u; // seconds
uci1 1:e392595b4b76 32 static const uint32_t kCommWinLongPrdTk = 300u; // seconds
uci1 16:744ce85aede2 33 static const uint32_t kSecsPerDay = 3600u*24u;
uci1 16:744ce85aede2 34 static const uint32_t kSecsPerYear = kSecsPerDay*365u;
uci1 3:24c5f0f50bf1 35
uci1 28:484943132bb0 36 // safety nets
uci1 28:484943132bb0 37 static const float kMinForcePer = 0.05; // seconds -- safety net for max force trigger rate
uci1 28:484943132bb0 38 static const uint16_t kMaxThrottlePerMs = 60000; // ms -- max time between thermal triggers
uci1 28:484943132bb0 39 static const uint16_t kMaxBatVoltLowPwr = 25000; // ADCs -- probably futile, but try to prevent it from being in low power mode always
uci1 28:484943132bb0 40 static const uint32_t kMaxCommWinPeriod = 259200; // seconds -- max time between communication windows
uci1 28:484943132bb0 41 static const uint32_t kMinCommWinDur = 300; // seconds -- min communication window duration -- must be >= Ncomms*listen/connect timeout
uci1 28:484943132bb0 42 static const uint32_t kMaxWatchDogPer = 3600; // seconds -- max time before watchdog reset on idle
uci1 28:484943132bb0 43 static const uint32_t kMinWatchDogPer = 30; // seconds -- min time before watchdog reset on idle
uci1 28:484943132bb0 44
uci1 1:e392595b4b76 45 static const uint16_t kTotSamps = kNchans*kNsamps;
uci1 1:e392595b4b76 46 static const uint16_t kTotDacs = kNchans*kNfpgaDacs;
uci1 1:e392595b4b76 47
uci1 16:744ce85aede2 48 static const float kAdcToMBtimeCut = (kNsamps*kAsfClkPrdUs)+(kAsfClkPrdUs/2.0);
uci1 16:744ce85aede2 49
uci1 1:e392595b4b76 50 enum ESnTrgTypes {
uci1 16:744ce85aede2 51 kThmTrg=0,
uci1 16:744ce85aede2 52 kFrcTrg,
uci1 16:744ce85aede2 53 kExtTrg,
uci1 16:744ce85aede2 54 kAdcToMBflag,
uci1 16:744ce85aede2 55
uci1 1:e392595b4b76 56 kNumTrgs
uci1 1:e392595b4b76 57 };
uci1 16:744ce85aede2 58 // order must match ESnTrgTypes
uci1 16:744ce85aede2 59 static const uint8_t kTrgBW[kNumTrgs] = { BIT(0), BIT(1), BIT(2), BIT(7) };
uci1 1:e392595b4b76 60
uci1 1:e392595b4b76 61
uci1 1:e392595b4b76 62
uci1 0:664899e0b988 63 #endif // SN_SnConstants