Difference between revisions of "BlinkieNICBoard"

From Hackstrich
(Voltage regulation?)
(Added basic flow chart of operation.)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
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.
 
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)
 
* CPU: ATtiny2313 (similar to the final Blinkie NIChip but with a UART for debugging)
* Four BlinkieNet ports (each edge)
+
* Four BlinkieNet ports (one on each edge)
* TTL-level RS232 port
+
* 3.3v-level RS232 port
* A couple LEDs for debugging
+
* One LED for each BlinkieNet port, and one global 'status' LED
* Local voltage regulation?
+
* Local voltage regulation
** Will the final BlinkieBits system do local or global voltage regulationShould probably do the same here
+
 
 +
== 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>