PWP wiki processor

project-wearwulf-geekport

| index | WikiPages | AdditionalFiles |

Wearwulf:Overview:Power:Processor:Display:Communications:Mass Storage:Geek Port
Resources:Schematics

Wearwulf

Geek Port

The name Geek Port has its origins in the »BeBox personal computer. The name was also adopted in Rehmi Post's »Hackman wearable computer for a very similar purpose to the Geek Port in Wearwulf. The Wearwulf's Geek Port will be based on an Atmel ATmega/8L microcontroller, and will communicate with the LPC2106 via its SPI interface.

Atmel ATmega/8L (TQFP Package)
project-wearwulf-geekport-ATmega8L.jpg
Note: Image extracted from Atmel website.

The Atmel ATmega/8L can be reprogrammed in-system by the LPC2106 processor using its SPI interface without using any additional resources. This will allow the maximum flexibility in how the Geek Port is used.


Hardware Connector

The Geek Port is a 20-way IDC cable connector, with two ground connections. Ideally, multiple grounds would be provided, but this would require a physically larger connector.

CONAVR Label Purpose  
1 12 PB0/ICP Digital IO | Input Capture
3 13 PB1/OC1A Digital IO | Output Compare
5 7 PB6 Digital IO
7 8 PB7 Digital IO
CONAVR Label Purpose  
2 23 PC0/ADC0 Digital IO | 10-bit ADC
4 24 PC1/ADC1 Digital IO | 10-bit ADC
6 25 PC2/ADC2 Digital IO | 10-bit ADC
7 26 PC3/ADC3 Digital IO | 10-bit ADC
10 27 PC4/ADC4/SDA Digital IO | 8-bit ADC | I2C Data
12 28 PC5/ADC5/SCL Digital IO | 8-bit ADC | I2C Clock
CONAVR Label Purpose  
9 30 PD0/RXD Digital IO | Serial Receiver
11 31 PD1/TXD Digital IO | Serial Transmitter
13 32 PD2/INT0 Digital IO | Interrupt
15 1 PD3/INT1 Digital IO | Interrupt
17 2 PD4/XCK/T0 Digital IO | Serial Clock (in synchronous mode) | Timer Clock
19 9 PD5/T1 Digital IO | Timer Clock
CONAVR Label Purpose  
14,16 - GND Ground
18 - VCC 3.3V regulated supply
20 - VBAT Unregulated supply


Command Protocol

The LPC2106 will communicate with the ATmega/8L over an SPI interface using a simple command protocol. The ATmega/8L only ever responds to requests from the LPC2106, and can only initiate a request for attention to the LPC2106 by generating an interrupt. This interrupt request should only be used to indicate that there has been a power failure - although this may be expanded in the future.

Pipelined Commands
project-wearwulf-geekport-pipeline.jpg
Note: Demonstrates pipelining to increase data transfer rate.

The SPI interface operates in full-duplex mode, i.e. data can pass in both directions at the same time, allowing commands to be pipelined. For example, in the figure above, the checksum request and battery status requests can be butted together like a jigsaw puzzle (any gaps are filled with 0x00). Pipelining may not be implemented in the initial version, dependent upon performance requirements.

The following list of commands (and responses) must be implemented - all other commands should follow a similar pattern, although they will be application specific.

Get Checksum
project-wearwulf-geekport-cmd01.jpg
Command 0x01
  • Request:
    Microcontroller's checksum.
  • Reply:
    Two bytes giving program's checksum (high & low bytes).
  • Why:
    Allows the LPC2106 to ensure that the microcontroller's firmware is up-to-date, and update it if necessary.

Get Battery Voltage
project-wearwulf-geekport-cmd02.jpg
Command 0x02
  • Request:
    Battery voltage.
  • Reply:
    One byte giving estimate (as a percent) of battery life remaining.
  • Why:
    Gives the LPC2106 the ability to inform the user of the current state of the battery. The Atmel microcontroller will be responsible for determining battery life.


Definitions

geek
A carnival performer who does disgusting acts;
A person with an unusual or odd personality (syn: eccentric, eccentric person, flake, oddball).

»WordNet (r) 2.0

geek
A person who has chosen concentration rather than conformity; one who pursues skill (especially technical skill) and imagination, not mainstream social acceptance. Geeks usually have a strong case of neophilia. Most geeks are adept with computers and treat hacker as a term of respect, but not all are hackers themselves - and some who are in fact hackers normally call themselves geeks anyway, because they (quite properly) regard `hacker' as a label that should be bestowed by others rather than self-assumed.

One description (»http://www.darkwater.com/omni/geek.html) accurately if a little breathlessly enumerates "gamers, ravers, science fiction fans, punks, perverts, programmers, nerds, subgenii, and trekkies. These are people who did not go to their high school proms, and many would be offended by the suggestion that they should have even wanted to."

Originally, a `geek' was a carnival performer who bit the heads off chickens. Before about 1990 usage of this term was rather negative. Earlier versions of this lexicon defined a `computer geek' as one who eats (computer) bugs for a living - an asocial, malodorous, pasty-faced monomaniac with all the personality of a cheese grater. This is often still the way geeks are regarded by non-geeks, but as the mainstream culture becomes more dependent on technology and technical skill mainstream attitudes have tended to shift towards grudging respect. Correspondingly, there are now `geek pride' festivals (the implied reference to `gay pride' is not accidental).

Jargon File (4.3.0, 30 APR 2001)

Wearwulf:Overview:Power:Processor:Display:Communications:Mass Storage:Geek Port
Resources:Schematics

Site Meter

   (Powered by PWP Version 1.4.2)