Many sensors today are digital. To sample these sensors, the MCU sends
a sample command and receives the corresponding data over a bus (e.g.,
SPI, I2C). The latency involved, combined with possible Resource
-arbitration [_tep108], means that these bus operations are often
+arbitration [1]_, means that these bus operations are often
synchronous code. In the command direction, this can force a task
allocation to convert async to sync; in the event direction, the
application has to deal with async code even though the event is, in
practice, in a task.
-Finallly, the simplicity of the ADC interface has led many sensors to
+Finally, the simplicity of the ADC interface has led many sensors to
introduce several new ones for calibration and control, such as
``Mic`` and ``MagSetting``. Because ADCs generally do not have error
conditions, the ADC interface has no way to signal that a sample
``ReadWrite.readDone`` events is not SUCCESS, then the memory of the
``val`` parameter MUST be filled with zeroes.
+If the call to ``Read.read`` has returned SUCCESS, but the
+``Read.readDone`` event has not yet been signalled, then a subsequent
+call to ``Read.read`` MUST not return SUCCESS. This simple locking
+technique, as opposed to a more complex system in which multiple
+read/readDone pairs may be outstanding, is intended to reduce the
+complexity of code that is a client of a SID interface.
+
Examples of sensors that would be suited to this class of interface
include many basic sensors, such as photo, temp, voltage, and ADC
readings.
| email - david.e.gay@intel.com
|
+6. Citations
+============================================================================
+
+.. [1] TEP 108: Resource Arbitration.
+