~derf / energy-models / sharpls013b4dn
dark mode

Sharp LS013B4DN SPI 96x96 transflective LC Display

Configuration

  • VCC: 3.6 V
  • Shunt: 680 Ω
  • State duration: 200 ms
  • SPI: 1 MHz

Parameters

None

States

State Power
DISABLED 22 µW (2.89 %)
ENABLED 24 µW (2.90 %)

DISABLED

Display is disabled. No communication or data retention.

ENABLED

Display is enabled and showing an image.

Transitions

Transition energy is likely too low due to data/configuration inputs serving as unintended additional power supply.

Transition Duration Abs. Energy Rel. Energy
clear 30 µs (2.44 %) 14059 pJ (8.29 %) 13329 pJ (8.55 %)
disable 0 0 0
enable 0 0 0
ioInit 0 0 0
sendLine 180 µs (0.30 %) 37874 pJ (5.11 %) 33447 pJ (5.75 %)
toggleVCOM 30 µs (2.91 %) 30991 pJ (9.21 %) 30242 pJ (9.48 %)

clear

#define CSHIGH() pinHigh(CONFIG_SHARPLS013B4DN_CS_PORT, CONFIG_SHARPLS013B4DN_CS_PIN)
#define CSLOW() pinLow(CONFIG_SHARPLS013B4DN_CS_PORT, CONFIG_SHARPLS013B4DN_CS_PIN)
void sharpLS013B4DN::clear()
{
    CSHIGH();
    send(CMD_CLRSCR | (vcom * 0x40));
    send(0x00);
    CSLOW();
}

disable

void sharpLS013B4DN::disable()
{
    /* Aspects weave here */
    pinLow(CONFIG_SHARPLS013B4DN_EN_PORT, CONFIG_SHARPLS013B4DN_EN_PIN);
}

enable

void sharpLS013B4DN::enable()
{
    /* Aspects weave here */
    pinHigh(CONFIG_SHARPLS013B4DN_EN_PORT, CONFIG_SHARPLS013B4DN_EN_PIN);
}

ioInit

void sharpLS013B4DN::ioInit()
{
    vcom = 0;
    setOutput(CONFIG_SHARPLS013B4DN_CS_PORT, CONFIG_SHARPLS013B4DN_CS_PIN);
    CSLOW();
}

sendLine

void sharpLS013B4DN::sendLine(unsigned int lineno, unsigned char* line)
{
    /* send WRLINE */
    /* each Line: Line#, Data, 0x00 */
    /* end with add. 0x00 */
    CSHIGH();

    send(CMD_WRLINE | (0x40 * vcom));
    send(swap(lineno + 1));
    sendString(line, ( CONFIG_SHARPLS013B4DN_COLUMNS / 8 ));
    send(0x00);

    CSLOW();
}

toggleVCOM

void sharpLS013B4DN::toggleVCOM()
{
    vcom = 1 - vcom;
    CSHIGH();
    send(vcom * 0x40);
    send(0x00);
    CSLOW();
}