USB Keyboard over RS-485
========================

The project is to have a device that appears to a computer as a USB
keyboard, but it receives it's key presses from another computer via an
RS-485 multidrop bus.  It will use the Syote library for communications,
and as there can be multiple devices on the bus, a single gateway
controller can service multiple such keyboards, making it a nice option
for an IPMI like solution.  It is also expected that GPIOs of the device
can be used to control the power switches, along with observing various
LEDs.  As most microcontrollers have an ADC, it could theoretically
support beeps from the PC speaker.

Devices
-------

These are the device that are under conideration for the project:

### STM32F103C8

64KB flash

Currently looking at USART3, B0 for DE, B1 for RE.

TIM2_CH4 can be mapped to PB11 (UART3 RX).  This is to do break detection.
Table 45 says TIM2_REMAP, either full or partial (value 1x).

Table 5 pin definitions of stm32f103c8.pdf
(all can be remapped)

USART has idle line detction

USART1_TX PA9 5v tollerant
USART1_RX PA10 5v tollerant
USART2_TX PA2 NOT 5v tollerant
USART2_RX PA3 NOT 5v tollerant
USART3_TX PB10 5v tollerant
USART3_RX PB11 5v tollerant

flash: 0/x
boot loader (an2606) pattern 1: 1/0
embedded sram: 1/1
top jumper BOOT0/44
bottom jumper BOOT1/PB2/20

### MAX485

This requires a 5V VCC.  There is a 3.3V part called the MAX3485, but
as often micros can be 5V tollerant, and the MAX485 is fine w/ logic
levels down to 2V, this should be fine.

D - Driver
	DE Driver enable (high enable)
	DI Driver input
R - Receiver
	RO Receiver output
	/RE Receiver enable (low enable)