Arianna autonomous DAQ firmware

Dependencies:   mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW

Committer:
uci1
Date:
Tue Oct 30 05:23:57 2012 +0000
Revision:
25:57b2627fe756
Parent:
22:f957c4f840ad
Child:
27:efc4d654b139
AFAR comms. Upped baud to 921600. Store data in run-seq subdirs, max of 100 files per dir, to prevent station grinding to a halt due when 800 files are in one directory. Cache file size count. Stagger tickers. Fixed some gcc warnings.

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 25:57b2627fe756 6 #define CPUBAUD_SN 921600
uci1 25:57b2627fe756 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 1:e392595b4b76 21 static const uint8_t kNcomms = 1u;
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
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 16:744ce85aede2 28 static const uint32_t kDefTimeout = 300u; // seconds
uci1 1:e392595b4b76 29 static const uint32_t kConnectTimeout = 30u; // seconds
uci1 21:ce51bb0ba4a5 30 static const uint32_t kListenTimeout = 300u; // seconds
uci1 16:744ce85aede2 31 static const uint32_t kConnectSBDTO = 300u; // 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 1:e392595b4b76 36 static const uint16_t kTotSamps = kNchans*kNsamps;
uci1 1:e392595b4b76 37 static const uint16_t kTotDacs = kNchans*kNfpgaDacs;
uci1 1:e392595b4b76 38
uci1 16:744ce85aede2 39 static const float kAdcToMBtimeCut = (kNsamps*kAsfClkPrdUs)+(kAsfClkPrdUs/2.0);
uci1 16:744ce85aede2 40
uci1 1:e392595b4b76 41 enum ESnTrgTypes {
uci1 16:744ce85aede2 42 kThmTrg=0,
uci1 16:744ce85aede2 43 kFrcTrg,
uci1 16:744ce85aede2 44 kExtTrg,
uci1 16:744ce85aede2 45 kAdcToMBflag,
uci1 16:744ce85aede2 46
uci1 1:e392595b4b76 47 kNumTrgs
uci1 1:e392595b4b76 48 };
uci1 16:744ce85aede2 49 // order must match ESnTrgTypes
uci1 16:744ce85aede2 50 static const uint8_t kTrgBW[kNumTrgs] = { BIT(0), BIT(1), BIT(2), BIT(7) };
uci1 1:e392595b4b76 51
uci1 1:e392595b4b76 52
uci1 1:e392595b4b76 53
uci1 0:664899e0b988 54 #endif // SN_SnConstants