LCD SPI protocol (NetMD devices) - MiniDisc-wiki/md-firmware GitHub Wiki

LCD SPI protocol for NetMD devices

This page describes the protocol used by MiniDisc portables to talk to the LCD unit. This protocol is used by Type-R and Type-S NetMD devices, and probably also by older devices such as the R700.

LCD controller description

The controller only receives SPI packets and does not need bi-directional communication. The controller uses SPI MODE 3. It has two blocks of memory, textual memory for keeping track of text to display, and symbol memory for setting special symbol glyphs (text bytes 0x00-0x07) that are also used for MD-specific LCD glyphs.

Commands

Multiple commands can be sent in one go (while chip select is enabled), however, 0xC0 or 0xD0 commands should always be sent last as these are of variable length.

Command Description Notes
0x07 Reset
0x0F Display on
0x2X Contrast Set the contrast to the lower nibble value
0x48 to 0x4F LCD shift Shifts the textual LCD content with (cmd-0x48) pixels to the left. Only used on full matrix char displays such as the MZ-N7xx.
0xC0 0xPP [text bytes] Set textual memory Set the textual memory starting at position 0xPP. The firmware always sends chunks of 6 bytes.
0xD0 0xPP [symbol bytes] Set symbol memory Set the symbol memory starting at position 0xPP. The firmware always sends chunks of 6 bytes.

Font

TODO.

LCD glyph map

TODO.