diff options
author | Bdale Garbee <bdale@gag.com> | 2015-02-07 23:55:16 -0700 |
---|---|---|
committer | Bdale Garbee <bdale@gag.com> | 2015-02-07 23:55:16 -0700 |
commit | 55926756e3f28ddda9150387f93e9ade209fbad9 (patch) | |
tree | 8952462ce47af2aae6f6f64a23b88c170dd04cdb /AltOS/doc/companion.html | |
parent | e3a10d1869c1989a8ea3f55487b87f3f72ea2a1c (diff) |
update docs
Diffstat (limited to 'AltOS/doc/companion.html')
-rw-r--r-- | AltOS/doc/companion.html | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/AltOS/doc/companion.html b/AltOS/doc/companion.html index cdbe2ac..a2d9a77 100644 --- a/AltOS/doc/companion.html +++ b/AltOS/doc/companion.html @@ -1,10 +1,10 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>AltOS Companion Port</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><div><h2 class="title"><a name="idp30954880"></a>AltOS Companion Port</h2></div><div><h3 class="subtitle"><i>Protocol Definitions</i></h3></div><div><div class="author"><h3 class="author"><span class="firstname">Keith</span> <span class="surname">Packard</span></h3></div></div><div><p class="copyright">Copyright © 2012 Keith Packard</p></div><div><div class="legalnotice"><a name="idp57376448"></a><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>AltOS Companion Port</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article"><div class="titlepage"><div><div><h2 class="title"><a name="idp34566672"></a>AltOS Companion Port</h2></div><div><h3 class="subtitle"><i>Protocol Definitions</i></h3></div><div><div class="author"><h3 class="author"><span class="firstname">Keith</span> <span class="surname">Packard</span></h3></div></div><div><p class="copyright">Copyright © 2012 Keith Packard</p></div><div><div class="legalnotice"><a name="idp61079152"></a><p> This document is released under the terms of the <a class="ulink" href="http://creativecommons.org/licenses/by-sa/3.0/" target="_top"> Creative Commons ShareAlike 3.0 </a> license. - </p></div></div><div><div class="revhistory"><table style="border-style:solid; width:100%;" summary="Revision History"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 0.1</td><td align="left">13 January 2012</td></tr><tr><td align="left" colspan="2">Initial content</td></tr></table></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="#idp57299792">1. Companion Port</a></span></dt><dt><span class="section"><a href="#idp57304288">2. Companion SPI Protocol</a></span></dt><dt><span class="section"><a href="#idp58182896">3. SPI Message Formats</a></span></dt><dd><dl><dt><span class="section"><a href="#idp58184144">3.1. Command Message</a></span></dt><dt><span class="section"><a href="#idp57314928">3.2. SETUP reply message</a></span></dt><dt><span class="section"><a href="#idp57336416">3.3. FETCH reply message</a></span></dt></dl></dd><dt><span class="section"><a href="#idp62825024">4. History and Motivation</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp57299792"></a>1. Companion Port</h2></div></div></div><p> + </p></div></div><div><div class="revhistory"><table style="border-style:solid; width:100%;" summary="Revision History"><tr><th align="left" valign="top" colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 0.1</td><td align="left">13 January 2012</td></tr><tr><td align="left" colspan="2">Initial content</td></tr></table></div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="#idp61786496">1. Companion Port</a></span></dt><dt><span class="section"><a href="#idp61790992">2. Companion SPI Protocol</a></span></dt><dt><span class="section"><a href="#idp61793888">3. SPI Message Formats</a></span></dt><dd><dl><dt><span class="section"><a href="#idp61795168">3.1. Command Message</a></span></dt><dt><span class="section"><a href="#idp60917216">3.2. SETUP reply message</a></span></dt><dt><span class="section"><a href="#idp60938704">3.3. FETCH reply message</a></span></dt></dl></dd><dt><span class="section"><a href="#idp66428656">4. History and Motivation</a></span></dt></dl></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp61786496"></a>1. Companion Port</h2></div></div></div><p> Many Altus Metrum products come with an eight pin Micro MaTch connector, called the Companion Port. This is often used to program devices using a programming cable. However, it can also @@ -25,7 +25,7 @@ provide a matching SPI slave implementation which supplies telemetry information for the radio downlink during flight </p></li></ul></div><p> - </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp57304288"></a>2. Companion SPI Protocol</h2></div></div></div><p> + </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp61790992"></a>2. Companion SPI Protocol</h2></div></div></div><p> The flight computer implements a SPI master communications channel over the companion port, and uses this to get information about a connected companion board and then to get @@ -42,11 +42,11 @@ </p><p> Because of the limits of the AVR processors used in the first two companion boards, the SPI data rate is set to 187.5kbaud. - </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp58182896"></a>3. SPI Message Formats</h2></div></div></div><p> + </p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp61793888"></a>3. SPI Message Formats</h2></div></div></div><p> This section first defines the command message format sent from the flight computer to the companion board, and then the various reply message formats for each type of command message. - </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp58184144"></a>3.1. Command Message</h3></div></div></div><div class="table"><a name="idp58184816"></a><p class="title"><b>Table 1. Companion Command Message</b></p><div class="table-contents"><table summary="Companion Command Message" border="1"><colgroup><col align="center" class="Offset"><col align="center" class="Data Type"><col align="left" class="Name"><col align="left" class="Description"></colgroup><thead><tr><th align="center">Offset</th><th align="center">Data Type</th><th align="center">Name</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">0</td><td align="center">uint8_t</td><td align="left">command</td><td align="left">Command identifier</td></tr><tr><td align="center">1</td><td align="center">uint8_t</td><td align="left">flight_state</td><td align="left">Current flight computer state</td></tr><tr><td align="center">2</td><td align="center">uint16_t</td><td align="left">tick</td><td align="left">Flight computer clock (100 ticks/second)</td></tr><tr><td align="center">4</td><td align="center">uint16_t</td><td align="left">serial</td><td align="left">Flight computer serial number</td></tr><tr><td align="center">6</td><td align="center">uint16_t</td><td align="left">flight</td><td align="left">Flight number</td></tr><tr><td align="center">8</td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="idp57480384"></a><p class="title"><b>Table 2. Companion Command Identifiers</b></p><div class="table-contents"><table summary="Companion Command Identifiers" border="1"><colgroup><col align="center" class="Value"><col align="left" class="Name"><col align="left" class="Description"></colgroup><thead><tr><th align="center">Value</th><th align="left">Name</th><th align="left">Description</th></tr></thead><tbody><tr><td align="center">1</td><td align="left">SETUP</td><td align="left">Supply the flight computer with companion + </p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp61795168"></a>3.1. Command Message</h3></div></div></div><div class="table"><a name="idp61795840"></a><p class="title"><b>Table 1. Companion Command Message</b></p><div class="table-contents"><table summary="Companion Command Message" border="1"><colgroup><col align="center" class="Offset"><col align="center" class="Data Type"><col align="left" class="Name"><col align="left" class="Description"></colgroup><thead><tr><th align="center">Offset</th><th align="center">Data Type</th><th align="center">Name</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">0</td><td align="center">uint8_t</td><td align="left">command</td><td align="left">Command identifier</td></tr><tr><td align="center">1</td><td align="center">uint8_t</td><td align="left">flight_state</td><td align="left">Current flight computer state</td></tr><tr><td align="center">2</td><td align="center">uint16_t</td><td align="left">tick</td><td align="left">Flight computer clock (100 ticks/second)</td></tr><tr><td align="center">4</td><td align="center">uint16_t</td><td align="left">serial</td><td align="left">Flight computer serial number</td></tr><tr><td align="center">6</td><td align="center">uint16_t</td><td align="left">flight</td><td align="left">Flight number</td></tr><tr><td align="center">8</td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="idp60901136"></a><p class="title"><b>Table 2. Companion Command Identifiers</b></p><div class="table-contents"><table summary="Companion Command Identifiers" border="1"><colgroup><col align="center" class="Value"><col align="left" class="Name"><col align="left" class="Description"></colgroup><thead><tr><th align="center">Value</th><th align="left">Name</th><th align="left">Description</th></tr></thead><tbody><tr><td align="center">1</td><td align="left">SETUP</td><td align="left">Supply the flight computer with companion information</td></tr><tr><td align="center">2</td><td align="left">FETCH</td><td align="left">Return telemetry information</td></tr><tr><td align="center">3</td><td align="left">NOTIFY</td><td align="left">Tell companion board when flight state changes</td></tr></tbody></table></div></div><br class="table-break"><p> The flight computer will send a SETUP message shortly after @@ -74,7 +74,7 @@ use this to change data collection parameters, disabling data logging until the flight starts and terminating it when the flight ends. - </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp57314928"></a>3.2. SETUP reply message</h3></div></div></div><div class="table"><a name="idp57315600"></a><p class="title"><b>Table 3. SETUP reply contents</b></p><div class="table-contents"><table summary="SETUP reply contents" border="1"><colgroup><col align="center" class="Offset"><col align="center" class="Data Type"><col align="left" class="Name"><col align="left" class="Description"></colgroup><thead><tr><th align="center">Offset</th><th align="center">Data Type</th><th align="center">Name</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">0</td><td align="center">uint16_t</td><td align="left">board_id</td><td align="left">Board identifier</td></tr><tr><td align="center">2</td><td align="center">uint16_t</td><td align="left">board_id_inverse</td><td align="left">~board_id—used to tell if a board is present</td></tr><tr><td align="center">4</td><td align="center">uint8_t</td><td align="left">update_period</td><td align="left">Minimum time (in 100Hz ticks) between FETCH commands</td></tr><tr><td align="center">5</td><td align="center">uint8_t</td><td align="left">channels</td><td align="left">Number of data channels to retrieve in FETCH command</td></tr><tr><td align="center">6</td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"><p> + </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp60917216"></a>3.2. SETUP reply message</h3></div></div></div><div class="table"><a name="idp60917888"></a><p class="title"><b>Table 3. SETUP reply contents</b></p><div class="table-contents"><table summary="SETUP reply contents" border="1"><colgroup><col align="center" class="Offset"><col align="center" class="Data Type"><col align="left" class="Name"><col align="left" class="Description"></colgroup><thead><tr><th align="center">Offset</th><th align="center">Data Type</th><th align="center">Name</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">0</td><td align="center">uint16_t</td><td align="left">board_id</td><td align="left">Board identifier</td></tr><tr><td align="center">2</td><td align="center">uint16_t</td><td align="left">board_id_inverse</td><td align="left">~board_id—used to tell if a board is present</td></tr><tr><td align="center">4</td><td align="center">uint8_t</td><td align="left">update_period</td><td align="left">Minimum time (in 100Hz ticks) between FETCH commands</td></tr><tr><td align="center">5</td><td align="center">uint8_t</td><td align="left">channels</td><td align="left">Number of data channels to retrieve in FETCH command</td></tr><tr><td align="center">6</td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"><p> The SETUP reply contains enough information to uniquely identify the companion board to the end user as well as for the flight computer to know how many data values to expect in @@ -85,12 +85,12 @@ bit-wise inverse of board_id. Current companion boards use USB product ID as the board_id, but the flight computer does not interpret this data and so it can be any value. - </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp57336416"></a>3.3. FETCH reply message</h3></div></div></div><div class="table"><a name="idp57337088"></a><p class="title"><b>Table 4. FETCH reply contents</b></p><div class="table-contents"><table summary="FETCH reply contents" border="1"><colgroup><col align="center" class="Offset"><col align="center" class="Data Type"><col align="left" class="Name"><col align="left" class="Description"></colgroup><thead><tr><th align="center">Offset</th><th align="center">Data Type</th><th align="center">Name</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">0</td><td align="center">uint16_t</td><td align="left">data0</td><td align="left">0th data item</td></tr><tr><td align="center">2</td><td align="center">uint16_t</td><td align="left">data1</td><td align="left">1st data item</td></tr><tr><td align="center">...</td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"><p> + </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="idp60938704"></a>3.3. FETCH reply message</h3></div></div></div><div class="table"><a name="idp66412464"></a><p class="title"><b>Table 4. FETCH reply contents</b></p><div class="table-contents"><table summary="FETCH reply contents" border="1"><colgroup><col align="center" class="Offset"><col align="center" class="Data Type"><col align="left" class="Name"><col align="left" class="Description"></colgroup><thead><tr><th align="center">Offset</th><th align="center">Data Type</th><th align="center">Name</th><th align="center">Description</th></tr></thead><tbody><tr><td align="center">0</td><td align="center">uint16_t</td><td align="left">data0</td><td align="left">0th data item</td></tr><tr><td align="center">2</td><td align="center">uint16_t</td><td align="left">data1</td><td align="left">1st data item</td></tr><tr><td align="center">...</td><td class="auto-generated"> </td><td class="auto-generated"> </td><td class="auto-generated"> </td></tr></tbody></table></div></div><br class="table-break"><p> The FETCH reply contains arbitrary data to be reported over the flight computer telemetry link. The number of 16-bit data items must match the 'channels' value provided in the SETUP reply message. - </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp62825024"></a>4. History and Motivation</h2></div></div></div><p> + </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="idp66428656"></a>4. History and Motivation</h2></div></div></div><p> To allow cross-programming, the original TeleMetrum and TeleDongle designs needed to include some kind of connector. With that in place, adding the ability to connect |