热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

BL55072/BL55075应用笔记

BL550721、特点液晶驱动输出:Common输出4线,Segment输出36线内置显示寄存器364144bit2线串行接口(SCL,SDA)内置震荡电路内置液晶驱动电源电路13

BL55072


1、特点


液晶驱动输出:Common 输出 4 线,Segment 输出 36 线

内置显示寄存器 36*4=144bit

2 线串行接口(SCL,SDA)

内置震荡电路

内置液晶驱动电源电路

1/3 Bias, 1/2 Bias 1/4 Duty

内置 Buffer AMP

不需要外部元件

低功耗设计

内置上电复位电路

搭载闪烁功能

VDD 电压范围 2.5V~5.5V

高抗 EMC 性能

TSSOP48 封装



2、管脚编号

技术分享图片


3、功能描述

1、功能电路

BL55072内部集成了LCD驱动器所必需的所有功能电路。这些电路包括:LCD

偏置电压发生器、LCD电压选择器、内部时钟(OSC =25.6KHz)、显示寄存器、段

/背极输出电路、I2C串行接口、上电复位电路和显示控制电路。

2、显示驱动原理

BL55072有36个段输出SEG0--SEG35和4个背极输出COM0—COM3,它们和

LCD直接相连,当少于36个段输出应用时,不用的段可以空出。BL55072采用1/4背

极输出1/3偏置电压或者1/2偏置电压显示方式。

3、显示内容和寄存器地址之间的关系可见下表

技术分享图片

4、I2C 写入数据方式:

技术分享图片

5、I2C通讯方式

如图所示:发送第一个起始条件后,紧接着发送BL55072地址

(01111100),然后发送指令和显示数据,指令字节中的最高位“C”用以标明是否

是最后一个指令字节,当C=“1”时表示后面的字节仍是指令字节;当C=“0”时则

表明该字节为最后一个指令字节。最后一个指令字节之后为一系列显示数据字节

(DISPLAY DATA),这些显示数据存放在显示寄存器中,由数据指针和子地址

计数器指示的地址上。数据指针和子地址计数器可自动变更,数据直接装载到

BL55072上,A是每个字节之后的应答位,在主控器发送完最后一个字节后产生

一个终止条件P。

技术分享图片

参考代码如下所示:

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、控制命令

BL55072 共有 6 个控制命令字。命令和数据都是以字节的形式发送到

BL55072,它们的区别在于传送字节的最高位 C,当 C=1 时表示其后传送的字节仍

是命令;C=0 表示其后传送的字节是最后一个命令,接下来传送的是一系列数据。

下面列出了 BL55072 的 6 个命令字:

MODE SET








































Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
ValueC10#displaybias##
defaultC10#00##

[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





































Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
ValueC00Addr[4:0]
defaultC0000000

地址寄存器设置,

该寄存器用于写数据前设置数据的起始地址,或者读数据/command 前设置读取

数据/command 的地址。

读写数据地址范围为 000H~011H,写数据时如果初始地址大于 11H,则写入数

据对应到地址 00H 中。若在写入初始地址后,不断写入数据,当写入数据超过

36*4 时,数据被重新写入到初始地址中。

DISCTL








































Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
ValueC01FR[1:0]FR[1:0]P2SR[1:0]SR[1:0]
defaultC1100010

显示控制

[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








































Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
ValueC1101#softrstoscmode
DefaultC1101#00

芯片设置

[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();

}


推荐阅读
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • MongoDB集群配置:副本集与分片详解
    本文详细介绍了如何在MongoDB中配置副本集(Replica Sets)和分片(Sharding),并提供了具体的步骤和命令,帮助读者理解并实现高可用性和水平扩展的MongoDB集群。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 本文详细探讨了在Android 8.0设备上使用ChinaCock的TCCBarcodeScanner进行扫码时出现的应用闪退问题,并提供了解决方案。通过调整配置文件,可以有效避免这一问题。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 在维护公司项目时,发现按下手机的某个物理按键后会激活相应的服务,并在屏幕上模拟点击特定坐标点。本文详细介绍了如何使用ADB Shell Input命令来模拟各种输入事件,包括滑动、按键和点击等。 ... [详细]
  • andr ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
author-avatar
手机用户2502863305
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有