Arianna autonomous DAQ firmware
Dependencies: mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW
SnConstants.h@30:f869ed4bcc08, 2012-11-28 (annotated)
- 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?
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 | 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 |