Difference between revisions of "BlinkieNICBoard"

From Hackstrich
(Adding status.)
(Added basic flow chart of operation.)
 
Line 2: Line 2:
  
 
== Project Status ==
 
== Project Status ==
Revision 1 PCBs ordered and received from BatchPCB, parts ordered and received from Digikey.  First board assembled and test code executed/working to test LEDsSecond board being assembled shortly, then full testing of both can begin.
+
Revision 1 PCBs ordered and received from BatchPCB, parts ordered and received from Digikey.  First and second boards assembled and test code executed/working to test basic functionalityCode/algorithm development in progress.
  
 
== Specs ==
 
== Specs ==
Line 10: Line 10:
 
* One LED for each BlinkieNet port, and one global 'status' LED
 
* One LED for each BlinkieNet port, and one global 'status' LED
 
* Local voltage regulation
 
* Local voltage regulation
 +
 +
== Software Design ==
 +
<graph>
 +
graph { output: svg; }
 +
 +
[ Start ]                          { fill: #fff; }
 +
[ Idle ]                            { fill: #fff; }
 +
[ Discover Neighbour ]              { shape: rounded; fill: #dff; }
 +
[ Acknowledge Neighbour Request ]  { shape: rounded; fill: #dff; }
 +
[ Receive Bit ]                    { shape: rounded; fill: #dff; }
 +
[ All Neighbours Discovered? ]      { shape: diamond; fill: #fdf; }
 +
[ Outstanding Neighbour Request? ]  { shape: diamond; fill: #fdf; }
 +
[ 8 Bits Received? ]                { shape: diamond; fill: #fdf; }
 +
 +
 +
[ Start ] -> [ Discover Neighbour ]
 +
[ Discover Neighbour ] -> [ All Neighbours Discovered? ]
 +
[ All Neighbours Discovered? ] -> { label: "No" } [ Discover Neighbour ]
 +
[ All Neighbours Discovered? ] -> { label: "Yes" } [ Idle ]
 +
[ Idle ] -> [ Outstanding Neighbour Request? ]
 +
[ Outstanding Neighbour Request? ] -> { label: "No" } [ Idle ]
 +
[ Outstanding Neighbour Request? ] -> { label: "Yes" } [ Acknowledge Neighbour Request ]
 +
[ Acknowledge Neighbour Request ] -> [ Receive Bit ]
 +
[ Receive Bit ] -> [ 8 Bits Received? ]
 +
[ 8 Bits Received? ] -> { label: "No" } [ Receive Bit ]
 +
[ 8 Bits Received? ] -> { label: "Yes" } [ Send Response ]
 +
[ Send Response ] -> [ Idle ]
 +
 +
 +
[ ] -> { label: "Interrupt Received" } [ Set Neighbour Request Flag ]
 +
 +
</graph>

Latest revision as of 00:40, 27 March 2010

The Blinkie NIC Board will be the first board created in the BlinkieBits system. It will be similar to the RS232 Interface Board, but with TTL levels only, and not in the final mechanical layout (as there isn't one yet). A network of the Blinkie NIC Boards will be used to figure out the BlinkieNet routing system.

Project Status

Revision 1 PCBs ordered and received from BatchPCB, parts ordered and received from Digikey. First and second boards assembled and test code executed/working to test basic functionality. Code/algorithm development in progress.

Specs

  • CPU: ATtiny2313 (similar to the final Blinkie NIChip but with a UART for debugging)
  • Four BlinkieNet ports (one on each edge)
  • 3.3v-level RS232 port
  • One LED for each BlinkieNet port, and one global 'status' LED
  • Local voltage regulation

Software Design

<graph> graph { output: svg; }

[ Start ] { fill: #fff; } [ Idle ] { fill: #fff; } [ Discover Neighbour ] { shape: rounded; fill: #dff; } [ Acknowledge Neighbour Request ] { shape: rounded; fill: #dff; } [ Receive Bit ] { shape: rounded; fill: #dff; } [ All Neighbours Discovered? ] { shape: diamond; fill: #fdf; } [ Outstanding Neighbour Request? ] { shape: diamond; fill: #fdf; } [ 8 Bits Received? ] { shape: diamond; fill: #fdf; }


[ Start ] -> [ Discover Neighbour ] [ Discover Neighbour ] -> [ All Neighbours Discovered? ] [ All Neighbours Discovered? ] -> { label: "No" } [ Discover Neighbour ] [ All Neighbours Discovered? ] -> { label: "Yes" } [ Idle ] [ Idle ] -> [ Outstanding Neighbour Request? ] [ Outstanding Neighbour Request? ] -> { label: "No" } [ Idle ] [ Outstanding Neighbour Request? ] -> { label: "Yes" } [ Acknowledge Neighbour Request ] [ Acknowledge Neighbour Request ] -> [ Receive Bit ] [ Receive Bit ] -> [ 8 Bits Received? ] [ 8 Bits Received? ] -> { label: "No" } [ Receive Bit ] [ 8 Bits Received? ] -> { label: "Yes" } [ Send Response ] [ Send Response ] -> [ Idle ]


[ ] -> { label: "Interrupt Received" } [ Set Neighbour Request Flag ]

</graph>