Difference between revisions of "BlinkieNICBoard"
(Updating to reflect Rev. 1 specs.) |
(Added basic flow chart of operation.) |
||
(One intermediate revision 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) |
* 3.3v-level RS232 port | * 3.3v-level RS232 port | ||
* 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>