revisiting the UART board

Werner Almesberger werner at
Sat Feb 5 23:51:28 EST 2011

The UART board still has a rather largish to do list:

- find a better name ("UART" isn't specific enough. There could be
  many UARTs in a given scenario. "uart-8:10" or such would be
  unambiguous but it's also a bit lame.)

- to keep things small, the board only has TX and RX, but no modem
  or flow control signals. This design choice may be controversial.

  Why small ? 1) because I think tiny circuits are cool. 2) to
  minimize the mechanical stress on that little 8:10 card holder.

- review the pin assignment at the connector (TX-GND-RX). I think
  it's convenient to use (e.g., for a gender change, just rotate)
  and makes it easy to avoid problems with reverse polarity, but if
  there's a different convention already established at the other
  end, it may be better to follow that.

- examine signal integrity and adjust the termination circuit

- add over-/undervoltage protection (5 V, reversed polarity, etc.)
  Three should probably be a pair of ~3.3 V Zeners to prevent 5 V
  mishaps from getting out of hand, and similar issues.

- maybe loosen the quite tight spacing around vias a little.
  The via spacing is pushing the limits of the toner transfer
  process I'm using. There's a bit of room left, so maybe a less
  crowded arrangement is possible.

- the current design allows the UART board to use the Ben's clock.
  The ATmega48's internal RC oscillator may be accurate enough for
  the task, and using it would free the clock signal line for other

- ... such as an interrupt to signal the arrival of new data, which
  is currently not included in the design. (Creative sharing of
  some of the other lines may also work, though.)

- write firmware that actually transfers data between SPI (which
  is what the board talks with the Ben) and the UART. Right now,
  all my firmware does it blink the LED.

  This also means that the SPI slave functionality hasn't been
  tested yet.

- host software support, at least in user space, if not a kernel

I mentioned that it has already fulfilled the purpose I made it
for, so completing it has a low priority for me. If someone else
feels like taking over this little project to make things happen
more quicky, please don't hesitate to grab this opportunity :-)

- Werner

More information about the discussion mailing list