Rohan Gurav
/
Sean_AdiSense1000_V21
ADISense1000 Version 2.1 code base
Fork of AdiSense1000_V21 by
Diff: doc/key_topics.md
- Branch:
- v2.0
- Revision:
- 27:567abf893938
- Parent:
- 26:12d0204be712
diff -r 12d0204be712 -r 567abf893938 doc/key_topics.md --- a/doc/key_topics.md Mon Mar 26 14:50:05 2018 +0000 +++ b/doc/key_topics.md Mon Mar 26 20:28:05 2018 +0100 @@ -174,33 +174,57 @@ in later sections below. ## Sequence Order {#measurementcycles_sequence} -The sequence is constructed according to which channels are enabled and how many -measurements must be performed per channel. The arrangement is similar to -round-robin scheduling - a measurement is carried out on each enabled channel, -in ascending channel order, and then the loop is repeated until the requested -number of measurements on each channel has been satisfied. +The sequence is constructed according to a number of configurable parameters: +- which channels are enabled +- number of measurements to be performed per channel +- channel priorities +- cycle type selection + +When the selected cycle type is @ref ADI_SENSE_1000_CYCLE_TYPE_FULL, +the full number of requested measurements is carried out on a channel before +advancing to the next channel in the sequence. Channels are visited in +priority/ascending order. + +When the selected cycle type is @ref ADI_SENSE_1000_CYCLE_TYPE_SWITCH, +the arrangement is similar to round-robin scheduling - a measurement is carried +out on each enabled channel, in priority/ascending channel order, and then the +loop is repeated until the requested number of measurements on each channel has +been satisfied. -For example, lets say channels [0, 3, 4, 5] are enabled, with -measurementsPerCycle set as follows: +By default, channels are arranged in the measurement sequence based on ascending +order of channel ID. However, a priority-level may be specified per channel to +force a different ordering of the channels, with higher-priority channels +appearing before lower-priority channels. Channels with equal priority are +ordered by ascending order of channel ID. Lower numbers indicate higher +priority, with 0 being the highest. -channelId | measurementsPerCycle ---------- | -------------------- - CJC_1 | 4 - SENSOR_0 | 2 - I2C_1 | 3 - SPI_0 | 1 +For example, lets say channels [0, 3, 4, 5] are enabled, with cycleType as @ref +ADI_SENSE_1000_CYCLE_TYPE_SWITCH, and measurementsPerCycle and priority +(0=highest) set as follows: + +channelId | priority | measurementsPerCycle +--------- | -------- | -------------------- + CJC_1 | 1 | 4 + SENSOR_0 | 2 | 2 + I2C_1 | 0 | 3 + SPI_0 | 2 | 1 The length of the sequence would be 10 measurements in total, and the order in which the channel measurements appear in the sequence would look like this: -| **CJC_1** | **SENSOR_0** | **I2C_1** | **SPI_0** | **CJC_1** | **SENSOR_0** | **I2C_1** | **CJC_1** | **I2C_1** | **CJC_1** | +| **I2C_1** | **CJC_1** | **SENSOR_0** | **SPI_0** | **I2C_1** | **CJC_1** | **SENSOR_0** | **I2C_1** | **CJC_1** | **CJC_1** | When measurement data samples are retrieved from the ADISENSE by the host application, this is the order in which those data samples will appear. -The ADSNS1000 module has 11 measurement ports however when ADXL used on the SPI -port this equates to 3 measurements. The ADSNS1000 allows for a maximum of 128 -measurementsPerCycle. Therefore a single cycle can produce a maximum of 1664 +Changing the cycleType to @ref ADI_SENSE_1000_CYCLE_TYPE_FULL in the example above +would generate the following sequence: + +| **I2C_1** | **I2C_1** | **I2C_1** | **CJC_1** | **CJC_1** | **CJC_1** | **CJC_1** | **SENSOR_0** | **SENSOR_0** | **SPI_0** | + +The ADSNS1000 module has 11 measurement ports; however, when ADXL used on the +SPI port this equates to 3 measurements. The ADSNS1000 allows for a maximum of +128 measurementsPerCycle. Therefore a single cycle can produce a maximum of 1664 measurements. In other words, the maximum length of the sequence is 1664. ## Sequence Timing {#measurementcycles_timing} @@ -448,4 +472,3 @@ the top-level header and appends each table and also fills some fields within the table descriptors (e.g. length, CRC). Please refer to the "user_lut_data" application example for an illustration of how this function can be used. -