diff options
-rw-r--r-- | doc/micropeak.xsl | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/doc/micropeak.xsl b/doc/micropeak.xsl index 284d0fb0..91126ce5 100644 --- a/doc/micropeak.xsl +++ b/doc/micropeak.xsl @@ -37,6 +37,13 @@ Updates for version 1.0 release. </revremark> </revision> + <revision> + <revnumber>1.1</revnumber> + <date>12 December 2012</date> + <revremark> + Add comments about EEPROM storage format and programming jig. + </revremark> + </revision> </revhistory> </bookinfo> <acknowledgements> @@ -272,6 +279,118 @@ NAR #88757, TRA #12200 serve to further protect the switch from launch forces. </para> </section> + <section> + <title>On-board data storage</title> + <para> + The ATtiny85 has 512 bytes of non-volatile storage, separate + from the code storage memory. The MicroPeak firmware uses this + to store information about the last completed + flight. Barometric measurements from the ground before launch + and at apogee are stored, and used at power-on to compute the + height of the last flight. + </para> + <para> + In addition to the data used to present the height of the last + flight, MicroPeak also stores barometric information sampled + at regular intervals during the flight. This information can + be extracted from MicroPeak through any AVR programming + tool. + </para> + <table frame='all'> + <title>MicroPeak EEPROM Data Storage</title> + <tgroup cols='3' align='center' colsep='1' rowsep='1'> + <colspec align='center' colwidth='2*' colname='Address'/> + <colspec align='center' colwidth='*' colname='Size (bytes)'/> + <colspec align='left' colwidth='7*' colname='Description'/> + <thead> + <row> + <entry align='center'>Address</entry> + <entry align='center'>Size (bytes)</entry> + <entry align='center'>Description</entry> + </row> + </thead> + <tbody> + <row> + <entry>0x000</entry> + <entry>4</entry> + <entry>Average ground pressure (Pa)</entry> + </row> + <row> + <entry>0x004</entry> + <entry>4</entry> + <entry>Minimum flight pressure (Pa)</entry> + </row> + <row> + <entry>0x008</entry> + <entry>2</entry> + <entry>Number of in-flight samples</entry> + </row> + <row> + <entry>0x00a … 0x1fe</entry> + <entry>2</entry> + <entry>Instantaneous flight pressure (Pa) low 16 bits</entry> + </row> + </tbody> + </tgroup> + </table> + <para> + All EEPROM data are stored least-significant byte first. The + instantaneous flight pressure data are stored without the + upper 16 bits of data. The upper bits can be reconstructed + from the previous sample, assuming that pressure doesn't + change by more more than 32kPa in a single sample + interval. Note that this pressure data is <emphasis>not</emphasis> + filtered in any way, while both the recorded ground and apogee + pressure values are, so you shouldn't expect the minimum + instantaneous pressure value to match the recorded minimum + pressure value exactly. + </para> + <para> + MicroPeak samples pressure every 96ms, but stores only every + other sample in the EEPROM. This provides for 251 pressure + samples at 192ms intervals, or 48.192s of storage. The clock + used for these samples is a factory calibrated RC circuit + built into the ATtiny85 and is accurate only to within ±10% at + 25°C. So, you can count on the pressure data being accurate, + but speed or acceleration data computed from this will be + limited by the accuracy of this clock. + </para> + </section> + <section> + <title>MicroPeak Programming Interface</title> + <para> + MicroPeak exposes a standard 6-pin AVR programming interface, + but not using the usual 2x3 array of pins on 0.1" + centers. Instead, there is a single row of tiny 0.60mm × + 0.85mm pads on 1.20mm centers exposed near the edge of the + circuit board. We couldn't find any connector that was + small enough to include on the circuit board. + </para> + <para> + In lieu of an actual connector, the easiest way to connect to + the bare pads is through a set of Pogo pins. These + spring-loaded contacts are designed to connect in precisely + this way. We've designed a programming jig, the MicroPeak + Pogo Pin board which provides a standard AVR interface on one + end and a recessed slot for MicroPeak to align the board with + the Pogo Pins. + </para> + <para> + The MicroPeak Pogo Pin board is not a complete AVR programmer, + it is an interface board that provides a 3.3V regulated power + supply to run the MicroPeak via USB and a standard 6-pin AVR + programming interface with the usual 2x3 grid of pins on 0.1" + centers. This can be connected to any AVR programming + dongle. + </para> + <para> + The AVR programming interface cannot run faster than ¼ of the + AVR CPU clock frequency. Because MicroPeak runs at 250kHz to + save power, you must configure your AVR programming system to + clock the AVR programming interface at no faster than + 62.5kHz, or a clock period of 32µS. + </para> + </section> </chapter> </book> <!-- LocalWords: Altusmetrum MicroPeak |