Scrolling text display (aka LedDisp) is a led matrix display that shows text either from a computer or from the built-in memory. The display is controlled by an Atmel AVR-family microcontroller, AT 90S2313. See here for detailed description of the hardware operation.
News
15.11.2005:
Updated some obsolete code in the firmware. It now compiles with
new versions of WinAVR.
10.05.2005:
Fixed an error in the layout image. In the previous version the wires
TxD and RxD were swapped. I'm sorry if someone had trouble with this
mistake.
03.12.2004:
Version 1.0.1 of the LedDisp firmware released. Optimized some code. Only minor changes.
02.06.2004:
Scrolls either static text (without computer) or dynamic text (from a computer)
Automatic text source selection
Maximum static text length 768 characters
Programmable font, 256 different characters
Character width 0-5 pixels (+optional blank column between the characters)
Note: Once you have constructed the device, you must write a font in its
memory for the display to show anything meaningful. Both static and dynamic text modes
use the internal font to transform the character codes to visible characters.
Files:
- Schematics, PCB and component layout:
v.1.0.1 Note: The control electronics is compatible with the display of an older similar project by Mikko Kursula.
Thanks to him for the display PCB (for 3mm leds).
Electronics Note: The electronics in the image has been built with an earlier version of the PCB, but the changes to the current version are only slight.
The display has seven rows containing 50 LEDs each. The display controller consists of seven transistors and seven 8-bit shift registers which all are controlled by the MCU (AT90S2313). Each transistor drives one row selecting whether it’s enabled or not. The shift registers are chained together, so their serial input is converted to parallel output of 56 bits, 50 of which is used to drive the columns. The last six bits remain unused.
The MCU updates the screen a single row at a time. While displaying one row, it feeds the contents of the next row to the shift registers. After that it disables the current row, enables the next one and commands the shift registers to show their data on the outputs. This cycle is performed hundreds of times in a second forming the whole image on the display.
The device has an EEPROM memory of 2 kilobytes (24c16) that is used to store the static text and the font. The contents of the memory is read and written by the MCU that either follows the commands received via the computer interface or works independently reading the static text and showing it on the display over and over again.
Computer interface
The computer serial interface uses the normal UART (with 9600bps, 8 bit, 1 stop bit, no parity) to communicate with the computer software. The device keeps sending the state of its receive buffer to the computer: each byte sent tells how many bytes of free space there is in the buffer. If the device receives a byte from the computer, it checks whether it is a command byte. If not, the byte is considered to be a text character and the corresponding character image in the EEPROM will be shown on the display. If a command is recognized, the MCU will act as asked. In a case of serial buffer overflow, the extra bytes are ignored.
Updated: [15.11.2005]
Tuomas Tuononen
t u o m a s . t u o n o n e n @ g m a i l . c o m