Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

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?

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 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