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

}


推荐阅读
  • 本文详细介绍了Oracle RMAN中的增量备份机制,重点解析了差异增量和累积增量备份的概念及其在不同Oracle版本中的实现。通过对比两种备份方式的特点,帮助读者选择合适的备份策略。 ... [详细]
  • Mysqlcheck作为MySQL提供的一个实用工具,主要用于数据库表的维护工作,包括检查、分析、修复及优化等操作。本文将详细介绍如何使用Mysqlcheck工具,并提供一些实践建议。 ... [详细]
  • 使用IntelliJ IDEA高效开发与运行Shell脚本
    本文介绍了如何利用IntelliJ IDEA中的BashSupport插件来增强Shell脚本的开发体验,包括插件的安装、配置以及脚本的运行方法。 ... [详细]
  • Exploring issues and solutions when defining multiple Faust agents programmatically. ... [详细]
  • 本文详细介绍了如何使用 Python 编程语言中的 Scapy 库执行 DNS 欺骗攻击,包括必要的软件安装、攻击流程及代码示例。 ... [详细]
  • 本文详细介绍了如何在Vue项目中集成和配置XGPlayer视频插件,包括安装步骤、基本配置以及常见问题的解决方法。 ... [详细]
  • 现在的新手程序猿,动不动就是框架,就连外面培训的也是框架,我就问一句,没了框架是不是就啥也不会了 ... [详细]
  • 基于51单片机的多项目设计实现与优化
    本文探讨了基于51单片机的多个项目的设计与实现,包括PID控制算法的开关电源设计、八音电子琴仿真设计、智能抽奖系统控制设计及停车场车位管理系统设计。每个项目均采用先进的控制技术和算法,旨在提升系统的效率、稳定性和用户体验。 ... [详细]
  • SpringBoot底层注解用法及原理
    2.1、组件添加1、Configuration基本使用Full模式与Lite模式示例最佳实战配置类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断配置类组 ... [详细]
  • 前端技术分享——利用Canvas绘制鼠标轨迹
    作为一名前端开发者,我已经积累了Vue、React、正则表达式、算法以及小程序等方面的技能,但Canvas一直是我的盲区。因此,我在2018年为自己设定了一个新的学习目标:掌握Canvas,特别是如何使用它来创建CSS3难以实现的动态效果。 ... [详细]
  • 本文详细介绍了跨站脚本攻击(XSS)的基本概念、工作原理,并通过实际案例演示如何构建XSS漏洞的测试环境,以及探讨了XSS攻击的不同形式和防御策略。 ... [详细]
  • 探索OpenWrt中的LuCI框架
    本文深入探讨了OpenWrt系统中轻量级HTTP服务器uhttpd的工作原理及其配置,重点介绍了LuCI界面的实现机制。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • 本文概述了在GNU/Linux系统中,动态库在链接和运行阶段的搜索路径及其指定方法,包括通过编译时参数、环境变量及系统配置文件等方式来控制动态库的查找路径。 ... [详细]
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社区 版权所有