SPI LCD
This is the documentation page for the SPI_LCD board.
Overview
Assembly instructions
Possible Configurations
External resources
Datasheets
Additional software
Related projects
Pinout
LEDs
Jumper settings
There are two solder jumpers. The one between the two 6-pin SPI connectors controls the function of the SPI connector nearest the I2C connectors.
In the default configuration the second SPI connector is a daisy-chain connector for the SPI bus. In the other configuration, the second SPI connector is the ICSP connector.
The second solder jumper connects "rs" and "vo" of the LCD together (and to one pin of the attiny44 controller on the board) in the default configuration. In the other configuration, the pin used for SPI slave select can be used as the RS pin. This is used in the I2C configuration.
There is a 10 mil (very small) PCB trace in the solder jumper in the default configuration. You'll have to cut this trace to move the solderjumper to the other position. If you later decide you want the other configuration again, some solder-wick can be used to remove the solder from one position and then it can be added to the other position.
Programming
To display a string on the LCD, just send over SPI the same bytes you would send to LCD, prefixed with the address of the LCD (the default address is 0x82).
Bytes above 0xf0 are "special".
0xf0 <xy> is set cursor. the <xy> byte is 3 bit line number and 5 bit position number. This addressing allows up to 8 lines of 32 characters.
0xf1 is clear LCD.
0xf2 <addr> is "set address". If you want to change the address the module reacts to. The address is stored in eeprom, and will remain this way after a powercycle.
0xf3 <contrast> is "set contrast". This will set the contrast to the value you specify. 0x40 is the default that works fine for the LCDs that we have.
0xf4 <backlight> is the "set backlight intensity" command. This will set the backlight intensity to the value specified.
0xf5 <byte> will send the byte as a command to the HD44780. You need this for example to use the user-defined characters.
0xff <byte> will send the byte to the LCD without special character processing. This allows you to send codes 0xf0 through 0xff to the LCD if required.
Other bytes are reserved and are currently implemented as a no-op.
The software
Default operation
Future hardware enhancements
Future software enhancements
Changelog
1.2
- Initial public release