热门标签 | 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();

}


推荐阅读
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文介绍如何在 Xcode 中使用快捷键和菜单命令对多行代码进行缩进,包括右缩进和左缩进的具体操作方法。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • CSS 布局:液态三栏混合宽度布局
    本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
  • 本文介绍如何通过SQL查询从JDE(JD Edwards)系统中提取所有字典数据,涵盖关键表的关联和字段选择。具体包括F0004和F0005系列表的数据提取方法。 ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
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社区 版权所有