BL55072 / BL55075 Application Notes

BL55072

1, Features

The liquid crystal drive output: Common output lines 4, Segment output line 36
built-in display register 144bit = 4 * 36
2-wire serial interface (SCL, SDA)
built-in oscillation circuit
built-in liquid crystal driving power supply circuit
1/3 Bias, 1/2 Bias 1 / 4 Duty
built Buffer AMP
does not require external components
low-power design
built-in power-on reset circuit
is mounted flashing function
2.5V ~ 5.5V VDD voltage range
higher EMC immunity
TSSOP48 package

2, pin number

3, Functional Description

1, the functional circuit
inside BL55072 circuit integrates all the functions required for the LCD driver. These circuits include: LCD
bias voltage generator, the LCD voltage selector, the internal clock (OSC = 25.6KHz), display registers, segment
/ output circuit backplane, I2C serial interface, a reset circuit and a display control circuit.

2, showing the driving principle
BL55072 36 outputs segment SEG0 - SEG35 and four backplane outputs COM0-COM3, they
LCD directly connected, when the output of the application period is less than 36, the segment may not empty. BL55072 1/4 back
electrode output 1/2 1/3 bias or bias voltage display.

3, shows the relationship between the contents of register addresses following table

4, I2C data write mode:

. 5, the I2C communication
as shown below: After sending a first start condition, followed by transmission BL55072 address
(01111100), then sends the instructions and data display, instruction byte most significant bit "C" to indicate whether
the last instruction byte, indicates that when C = "1" when the latter is still bytes instruction bytes; when C = " 0, "it
indicates that the byte is the last byte of an instruction. After the last instruction byte is a series of display data byte
(DISPLAY DATA), which display the display data stored in the register, the data pointer and the sub-address
on the address counter indicates. Data pointer and subaddress counter can be automatically changed, data is loaded directly into
the BL55072, A is an acknowledge bit after each byte transmitted is generated after the completion of the last byte of the master
a termination condition P.

Reference code as follows:

void SEG_IIC_Start()
{
    SEG_SDI_1;
    SEG_CLK_1;
    delay_ms(1);
    SEG_SDI_0;  
    delay_ms(1);    
    SEG_CLK_0;  
}
void SEG_IIC_Stop()
{
    SEG_SDI_0;
    SEG_CLK_0;
    __nop();  
    SEG_SDI_1;  
    delay_ms(1) ;      
    SEG_CLK_1;  
}

void SEG_IIC_WriteByte(int8_t input)
{
    int8_t temp;
    for(temp=8;temp!=0;temp--)
    {
        if((input&0x80)!=0)
        {
            SEG_SDI_1;
        }
        else
        {
            SEG_SDI_0;
        }        
        __nop();;
        SEG_CLK_1;
        delay_ms(1);
        SEG_CLK_0;
        input=input<<1;
        __nop();
    }
    SEG_SDI_1;  
    SEG_SDI_IN;
    SEG_CLK_1;
    delay_ms(1);
    SEG_CLK_0;  
    SEG_SDI_OUT;
}

4, control command

BL55072 total of six control command word. Commands and data are transmitted in the form of bytes to
BL55072, which differ in the most significant bit of transferred bytes C, when C = 1 indicates subsequent byte transfer is still
a command; C = 0 indicates the subsequent transmission byte is the last command, the next series of data is transmitted.
Listed below are BL55072 of six command words:
the MODE the SET

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Value C 1 0 # display bias # #
default C 1 0 # 0 0 # #

[3] Display on and off
0 – Display off (default)
1 – Display on
[2] Bias control
0 –1/3 bias (default)
1 – 1/2 bias
ADSET

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Value C 0 0 Addr[4:0]
default C 0 0 0 0 0 0 0

地址寄存器设置,
该寄存器用于写数据前设置数据的起始地址,或者读数据/command 前设置读取
数据/command 的地址。
读写数据地址范围为 000H~011H,写数据时如果初始地址大于 11H,则写入数
据对应到地址 00H 中。若在写入初始地址后,不断写入数据,当写入数据超过
36*4 时,数据被重新写入到初始地址中。

DISCTL

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Value C 0 1 FR[1:0] FR[1:0] P2 SR[1:0] SR[1:0]
default C 1 1 0 0 0 1 0

显示控制
[4:3]: frame frequency control (FR)
00 - 80Hz (default)
01 - 71Hz
10 - 64Hz
11 - 50Hz
[2]: LCD Drive Mode control
0 – Line inversion mode (default)
1 – Frame inversion mode
[1:0]: power save mode control (SR)
00 – power save mode 1
01 – power save mode 2
10 – normal mode (default)
11 – high power mode

ICSET

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
Value C 1 1 0 1 # softrst oscmode
Default C 1 1 0 1 # 0 0

芯片设置
[1]:software reset
0 – no operation (default)
1 – software reset
[0]:oscillator mode control
0 – inner oscillator (default) : OSCIN pin connected to VSS pin.
1 – outside oscillator : OSCIN pin connected to outside clock signal(32.768KHz).

BLKCTL
| | Bit7| Bit6|Bit5| Bit4| Bit3 | Bit2 | Bit1 | Bit0 |
|-----| ----| ----|----| ----| -----| ---- | ----- | ---- |
|Value| C | 1 | 1 | 0 | 1 | # |softrst|oscmode|
|Default |C|1 |1 |0 |1 |# |0 |0 |

闪烁控制
[1:0] blinking control
00 – blinking off
01 – 0.25 Hz
10 – 0.5Hz
11 – 1 Hz

APCTL
| | Bit7| Bit6|Bit5| Bit4| Bit3 | Bit2 | Bit1 | Bit0 |
|-----| ----| ----|----| ----| -----| ---- | ----- | ---- |
|Value| C | 1 | 1 | 1 | 1 | 1 | Apon | Apoff|
|Default |C|1 |1 |1 |1 |1 |0 |0 |
全亮全暗控制,该寄存器只有在 display on 时才起作用;
[1]:all pixel ON control
0 – normal (default)
1 – all pixel on
[0]:all pixel OFF control
0 – normal (default)
1 – all pixel off
当 apon 和 apoff 都为 1 时,则显示全暗,即 apoff 的优先级高于 apon

5.BL55072的典型应用电路

6、实现代码

void SEG_Init(void)
{
    bsp_gpio_config(SEG_CLK_PORT,SEG_CLK_PIN,GpioWrite);
    bsp_gpio_config(SEG_SDI_PORT,SEG_SDI_PIN,GpioWrite);
    SEG_IIC_Start();
    SEG_IIC_WriteByte(0x7C);
    SEG_IIC_WriteByte(0xE8); // 退出休眠
    SEG_IIC_WriteByte(0xC8); // 方式设定C8
    SEG_IIC_WriteByte(0xF0); // 闪烁控制
    //SEG_IIC_WriteByte(0xE0); // 器件选择
    SEG_IIC_WriteByte(0x00); // 数据指针
    for(int i=0;i<18;i++) 
    {
        SEG_IIC_WriteByte(0x00);//
    }
    SEG_IIC_Stop();
}

void SEG_Clear(void)
{
    bsp_gpio_config(SEG_CLK_PORT,SEG_CLK_PIN,GpioWrite);
    bsp_gpio_config(SEG_SDI_PORT,SEG_SDI_PIN,GpioWrite);
    SEG_IIC_Start();
    SEG_IIC_WriteByte(0x7C);
    SEG_IIC_WriteByte(0xE8); // 退出休眠
    SEG_IIC_WriteByte(0xC8); // 方式设定C8
    SEG_IIC_WriteByte(0xF0); // 闪烁控制
    //SEG_IIC_WriteByte(0xE0); // 器件选择
    SEG_IIC_WriteByte(0x00); // 数据指针
    for(int i=0;i<18;i++) 
    {
        SEG_IIC_WriteByte(0x00);//
    }
    SEG_IIC_Stop();
}


// 7C FF C8 EA B6 E8
void SEG_WriteBuffer(char * buffer)
{
    SEG_IIC_Start();
    SEG_IIC_WriteByte(0x7C);
    SEG_IIC_WriteByte(0xE8); // 退出休眠
    SEG_IIC_WriteByte(0xC8); // 方式设定C8
    SEG_IIC_WriteByte(0xF0); // 闪烁控制
    //SEG_IIC_WriteByte(0xE0); // 器件选择
    SEG_IIC_WriteByte(0x00); // 数据指针
    for(int i=0;i<18;i++) 
    {
        SEG_IIC_WriteByte(buffer[i]);//
    }
    SEG_IIC_Stop();
    
}

Guess you like

Origin www.cnblogs.com/memorypro/p/12164306.html