SSD1306 OLED驱动芯片中文手册
ssd1306双色中文
Ver:A
修正完成 20130326 20130522
i
金晨电子
Ver:A
内容
修正历史................................................................................................................................i 内容..................................................................................................................................... ii~iii 11.. 基本功能...............................................................................................................1~6
金晨电子
刘玉汉化,本人不会英文,以下翻译主要有谷歌翻译提供
金晨电子
产品名称: 产品ID:
OEL 显示模块
顾客:
批准
来自: 金晨电子
批准
金晨电子
修正历史
零件号码 UG-2864TMBEG01
修正 A B
内容
New
R 变更为 R IRE)参数 0XCF 变更为 0X66
1.1 显示规格 ................................................................................................................. 1 1.2 机械规格............................................................................................................ 1 1.3 有效面积 / 内存映射 & 像素结构...................................................................... 1 1.4 机械图纸.................................................................................................................... 2 1.5 引脚定义 ............................................................................................................................. 3 1.6 方框图............................................................................................................................ 5
OLED(SSD1306)基于STM32寄存器版驱动
基于STM32的OLED(SSD1306)寄存器版编译即可用!OLED的头文件#ifndef _OLED_H#define _OLED_H#include "sys.h"/*//////////////////////////////////////////////////////////////////////////////////////////////////// //SSD1306,当接口为SPI的驱动//功能简介:显示字符,字符串,数字,和小区域屏幕填充//作者:范桢干//时间:2016.1.6*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////接口定义///////////#define OLED_SCLK P Cout(10)#define OLED_SDA PBout(15)#define OLED_RST PBout(13)#define OLED_DC PBout(11)//#define OLED_CS PAout(4)//////////////////////////////////////////////////////////////////////////////////////////////////////void OLED_Init(void); //OLED初始化void OLED_Clear(u8 Fill); //OLED清屏/清屏void OLED_ShowChar(u8 uPage_sta,u8 uColumn_sta,u8 uSize,u8 uChar); //在指定Page_sta,Column_sta和Size输入字符Charvoid OLED_ShowString(u8 uPage_sta,u8 uColumn_sta,u8 uSize,u8 *p); //在指定Page_sta,Column_sta处输入大小为Size的字符串*pvoid OLED_ShowNum(u8 uPage,u8 uColumn_sta,u8 uSize,u32 uNum); //在指定Page_sta,Column_sta处输入大小为Size的数字uNum,范围:(0~4294967295)void OLED_Fill(u8 uPage_sta,u8 uColumn_sta,u8 uColumn_end,u8 Fill); //在Page_sta,从uColumn_sta到uColumn_end填充或清屏#endifOLED的C文件#include "oled.h"#include "delay.h"#include "ASCII.h"//函数名称:void OLED_WriteCmd(u8 uCmd) //函数功能:OLED写一个指令//函数参数:uCmd:写入的指令void OLED_WriteCmd(u8 uCmd){u8 i;OLED_DC=0; //写指令for(i=0;i<8;i++){OLED_SCLK=0;if(uCmd&0x80) //先发送高位{ OLED_SDA=1;}else{ OLED_SDA=0;}OLED_SCLK=1;uCmd<<=1; //左移一位}OLED_SCLK=0;}//函数名称:void OLED_WriteDat(u8 uDat) //函数功能:OLED写一个数据//函数参数:uDat:写入的数据void OLED_WriteDat(u8 uDat){u8 i;OLED_DC=1; //写数据for(i=0;i<8;i++){OLED_SCLK=0;if(uDat&0x80) //先发送高位{ OLED_SDA=1;}else{ OLED_SDA=0;}OLED_SCLK=1;uDat<<=1; //左移一位}OLED_SCLK=0;}//函数名称:void OLED_Init(void)//函数功能:OLED初始化void OLED_Init(void){RCC->APB2ENR|=1<<3; //使能PORTB时钟RCC->APB2ENR|=1<<4; //使能PORTC时钟GPIOB->CRH&=0X0F0F0FFF;GPIOB->CRH|=0X30303000; //PB11,13,15推挽输出GPIOC->CRH&=0XFFFFF0FF;GPIOC->CRH|=0X00000300; //PC10推挽输出OLED_RST=0; //低电平复位delay_ms(10);OLED_RST=1; //复位完毕delay_ms(20);OLED_WriteCmd(0xAE); //关OLED显示OLED_WriteCmd(0xD5); //设置时钟OLED_WriteCmd(0x80);OLED_WriteCmd(0x20); //RAM Addressing ModeOLED_WriteCmd(0x01); //Vertical Addressing ModeOLED_WriteCmd(0xA8); //设置驱动路数(set Multiplex Ratio) OLED_WriteCmd(0x3F);OLED_WriteCmd(0xD3); //set offsetOLED_WriteCmd(0x00);OLED_WriteCmd(0x40); //Set Start LineOLED_WriteCmd(0xA1); //Set RemapOLED_WriteCmd(0xC8); //Output Scan DirectionOLED_WriteCmd(0xDA); //Pins ConfigurationOLED_WriteCmd(0x12);OLED_WriteCmd(0x81); //设置对比度(Set Contrast Ratio)OLED_WriteCmd(0xCF); //128(0-255)OLED_WriteCmd(0xD9); //Set Pre-ChagreOLED_WriteCmd(0xF1);OLED_WriteCmd(0xD8); //Set VcomhOLED_WriteCmd(0x30);OLED_WriteCmd(0xA4); //Display Accordding to GDDRAM OLED_WriteCmd(0xA6); //Set Normal DisplayOLED_WriteCmd(0x8D); //Set Charge PumpOLED_WriteCmd(0x14);OLED_WriteCmd(0xAF); //开显示delay_ms(100); //等待开启显示OLED_Clear(0); //清屏}//函数名称:void OLED_Clear(u8 Fill)//函数功能:OLED填充/清屏//函数参数:Fill,填充或者清除void OLED_Clear(u8 Fill){u8 i,j;OLED_WriteCmd(0x22); //Page AddressOLED_WriteCmd(0x00); //Page Start AddressOLED_WriteCmd(0x07); //Page End AddressOLED_WriteCmd(0x21); //Column AddressOLED_WriteCmd(0x00); //Column Start AddressOLED_WriteCmd(0x7F); //Column Start Addressfor(i=0;i<128;i++)for(j=0;j<8;j++){{ OLED_WriteDat(0xFF);}else{ OLED_WriteDat(0x00);}}}//函数名称:void OLED_ShowChar(u8 uPage_sta,u8 uColumn_sta,u8 uSize,u8 uChar)//函数功能:在指定Page_sta,Column_sta处输入大小为Size的字符Char//函数参数:uPage_sta:页数,uColumn_sta:列数,uSize:字体大小,uChar:输入的字符//注意:!!!!!!!!本字符输入函数增加了自动换行换页功能!!!!!!!!!!!!!void OLED_ShowChar(u8 uPage_sta,u8 uColumn_sta,u8 uSize,u8 uChar){#define MAX_CHAR_X 127 //Column限制#define MAX_CHAR_Y 7 //Page限制u8 uChar_Buf;u8 uCount;u8 uPage_end,uColumn_end;u8 i;if(uSize==6) //如果是8x6字体{ uPage_end=uPage_sta; //赋值Page_enduColumn_end=uColumn_sta+uSize; //赋值Cloumn_enduCount=6; //赋值uCount}else if(uSize==8) //如果是16x8字体{ uPage_end=uPage_sta+1; //赋值Page_enduColumn_end=uColumn_sta+uSize; //赋值Cloumn_enduCount=16; //赋值uCount}else{ return; //uSize错误}/////////////////////////////////自动换行换页////////////////////////////////////////////////////////////////////////////////////////////////////// if(uColumn_end>MAX_CHAR_X) //如果Cloumn>127{uColumn_sta=0; //Column_sta=0uColumn_end=uColumn_sta+uSize;{ uPage_sta=uPage_sta+1; //Page_sta+1uPage_end=uPage_sta;}else{ uPage_sta=uPage_sta+2; //Page_sta+2uPage_end=uPage_sta+1;}}if(uPage_end>MAX_CHAR_Y) //如果Page>7{uPage_sta=0; //Page_sta=0if(uSize==6){ uPage_end=uPage_sta;}else{ uPage_end=uPage_sta+1;}}/////////////////////////////////自动换行换页////////////////////////////////////////////////////////////////////////////////////////////////////// OLED_WriteCmd(0x22); //Page AddressOLED_WriteCmd(0x00+uPage_sta); //Start Page AddressOLED_WriteCmd(0x00+uPage_end); //End Page AddressOLED_WriteCmd(0x21); //Column AddressOLED_WriteCmd(0x00+uColumn_sta); //Start Column AddressOLED_WriteCmd(0x00+uColumn_end); //End Column AddressuChar=uChar-' '; //获得偏移量for(i=0;i<uCount;i++) //输入字符{if(uSize==8){ uChar_Buf=ASCII_1608[uChar][i];}else{ uChar_Buf=ASCII_0806[uChar][i];}OLED_WriteDat(uChar_Buf);}}//函数名称:void OLED_ShowString(u8 uPage_sta,u8 uColumn,u8 uSize,u8 *p)//函数功能:在指定Page_sta,Column_sta处输入大小为Size的字符串*p//函数参数:uPage_sta:页数,uColumn_sta:列数,uSize:字体大小,*p:输入的字符串指针//注意:!!!本字符串输入函数增加了自动换行换页功能!!!!!!!!!!!!!void OLED_ShowString(u8 uPage_sta,u8 uColumn_sta,u8 uSize,u8 *p){while(*p!='\0'){/////////////////////////////////自动换行换页////////////////////////////////////////////////////////////////////////////////////////////////////// if((uColumn_sta+uSize)>MAX_CHAR_X){ uColumn_sta=0;if(uSize==6){ uPage_sta=uPage_sta+1; //Page_sta+1}else{ uPage_sta=uPage_sta+2; //Page_sta+2}}if(uSize==6){ if(uPage_sta>MAX_CHAR_Y){ uPage_sta=0;}}else{ if((uPage_sta+1)>MAX_CHAR_Y){ uPage_sta=0;}}/////////////////////////////////自动换行换页//////////////////////////////////////////////////////////////////////////////////////////////////////OLED_ShowChar(uPage_sta,uColumn_sta,uSize,*p);uColumn_sta+=uSize;p++;}}//m^n函数u32 mypow(u8 m,u8 n){u32 result=1;while(n--)result*=m;return result;}//功能:计算整数长度数字0长度为1u8 LongCheck(u32 num){u8 len=0;if(num==0) //数字0长度也为1{ return 1;}while(num){ num/=10;len++;}return len;}//函数名称:void OLED_ShowNum(u8 uPage_sta,u8 uColumn_sta,u8 uSize,u32 uNum)//函数功能:在指定Page_sta,Column_sta处输入大小为Size的数字uNum,范围:(0~4294967295)//函数参数:uPage_sta:页数,uColumn_sta:列数,uSize:字体大小,uNum:输入的数字void OLED_ShowNum(u8 uPage_sta,u8 uColumn_sta,u8 uSize,u32 uNum){u8 i,temp;u8 len;len=LongCheck(uNum); //算出长度for(i=0;i<len;i++){temp=(uNum/mypow(10,len-i-1))%10;OLED_ShowChar(uPage_sta,uColumn_sta,uSize,temp+'0');uColumn_sta+=uSize;}}//函数名称:void OLED_Fill(u8 uPage_sta,u8 uColumn_sta,u8 uColumn_end,u8 Fill)//函数功能:在Page_sta,从uColumn_sta到uColumn_end填充或清屏//函数参数:uPage_sta:页数,uColumn_sta:列开始,uColumn_end:列结束,Fill:填充/清除void OLED_Fill(u8 uPage_sta,u8 uColumn_sta,u8 uColumn_end,u8 Fill){u8 i;u8 ulen;OLED_WriteCmd(0x22); //Page AddressOLED_WriteCmd(0x00+uPage_sta); //Start Page AddressOLED_WriteCmd(0x00+uPage_sta); //End Page AddressOLED_WriteCmd(0x21); //Column Address OLED_WriteCmd(0x00+uColumn_sta); //Start Column Address OLED_WriteCmd(0x00+uColumn_end); //End Column Addressulen=uColumn_end-uColumn_sta+1;for(i=0;i<=ulen;i++){if(Fill){ OLED_WriteDat(0xff); //填充}else{ OLED_WriteDat(0x00); //清除}}}ASCII码字库#ifndef _ASCII_H#define _ASCII_H//常用ASCII表//纵向取模//偏移量:32//大小:16*8const unsigned char ASCII_1608[95][16]={{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//" ",0 {0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x33,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00},//"!",1 {0x00,0x00,0x10,0x00,0x0C,0x00,0x06,0x00,0x10,0x00,0x0C,0x00,0x06,0x00,0x00,0x00},//""",2 {0x40,0x04,0xC0,0x3F,0x78,0x04,0x40,0x04,0xC0,0x3F,0x78,0x04,0x40,0x04,0x00,0x00},//"#",3 {0x00,0x00,0x70,0x18,0x88,0x20,0xFC,0xFF,0x08,0x21,0x30,0x1E,0x00,0x00,0x00,0x00},//"$",4 {0xF0,0x00,0x08,0x21,0xF0,0x1C,0x00,0x03,0xE0,0x1E,0x18,0x21,0x00,0x1E,0x00,0x00},//"%",5 {0x00,0x1E,0xF0,0x21,0x08,0x23,0x88,0x24,0x70,0x19,0x00,0x27,0x00,0x21,0x00,0x10},//"&",6 {0x10,0x00,0x16,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//"'",7 {0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x07,0x18,0x18,0x04,0x20,0x02,0x40,0x00,0x00},//"(",8 {0x00,0x00,0x02,0x40,0x04,0x20,0x18,0x18,0xE0,0x07,0x00,0x00,0x00,0x00,0x00,0x00},//")",9 {0x40,0x02,0x40,0x02,0x80,0x01,0xF0,0x0F,0x80,0x01,0x40,0x02,0x40,0x02,0x00,0x00},//"*",10 {0x00,0x01,0x00,0x01,0x00,0x01,0xF0,0x1F,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00},//"+",11 {0x00,0x80,0x00,0xB0,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//",",12 {0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01},//"-",13 {0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//".",14 {0x00,0x00,0x00,0x60,0x00,0x18,0x00,0x06,0x80,0x01,0x60,0x00,0x18,0x00,0x04,0x00},//"/",15 {0x00,0x00,0xE0,0x0F,0x10,0x10,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00},//"0",16 {0x00,0x00,0x10,0x20,0x10,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00},//"1",17 {0x00,0x00,0x70,0x30,0x08,0x28,0x08,0x24,0x08,0x22,0x88,0x21,0x70,0x30,0x00,0x00},//"2",18 {0x00,0x00,0x30,0x18,0x08,0x20,0x88,0x20,0x88,0x20,0x48,0x11,0x30,0x0E,0x00,0x00},//"3",19 {0x00,0x00,0x00,0x07,0xC0,0x04,0x20,0x24,0x10,0x24,0xF8,0x3F,0x00,0x24,0x00,0x00},//"4",20 {0x00,0x00,0xF8,0x19,0x08,0x21,0x88,0x20,0x88,0x20,0x08,0x11,0x08,0x0E,0x00,0x00},//"5",21 {0x00,0x00,0xE0,0x0F,0x10,0x11,0x88,0x20,0x88,0x20,0x18,0x11,0x00,0x0E,0x00,0x00},//"6",22 {0x00,0x00,0x38,0x00,0x08,0x00,0x08,0x3F,0xC8,0x00,0x38,0x00,0x08,0x00,0x00,0x00},//"7",23 {0x00,0x00,0x70,0x1C,0x88,0x22,0x08,0x21,0x08,0x21,0x88,0x22,0x70,0x1C,0x00,0x00},//"8",24 {0x00,0x00,0xE0,0x00,0x10,0x31,0x08,0x22,0x08,0x22,0x10,0x11,0xE0,0x0F,0x00,0x00},//"9",25 {0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0xC0,0x30,0x00,0x00,0x00,0x00,0x00,0x00},//":",26 {0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//";",27 {0x00,0x00,0x00,0x01,0x80,0x02,0x40,0x04,0x20,0x08,0x10,0x10,0x08,0x20,0x00,0x00},//"<",28 {0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x00,0x00},//"=",29 {0x00,0x00,0x08,0x20,0x10,0x10,0x20,0x08,0x40,0x04,0x80,0x02,0x00,0x01,0x00,0x00},//">",30 {0x00,0x00,0x70,0x00,0x48,0x00,0x08,0x30,0x08,0x36,0x08,0x01,0xF0,0x00,0x00,0x00},//"?",31 {0xC0,0x07,0x30,0x18,0xC8,0x27,0x28,0x24,0xE8,0x23,0x10,0x14,0xE0,0x0B,0x00,0x00},//"@",3 2{0x00,0x20,0x00,0x3C,0xC0,0x23,0x38,0x02,0xE0,0x02,0x00,0x27,0x00,0x38,0x00,0x20},//"A",33 {0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x20,0x88,0x20,0x70,0x11,0x00,0x0E,0x00,0x00},//"B",34 {0xC0,0x07,0x30,0x18,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x10,0x38,0x08,0x00,0x00},//"C",35 {0x08,0x20,0xF8,0x3F,0x08,0x20,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00},//"D",36 {0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x20,0xE8,0x23,0x08,0x20,0x10,0x18,0x00,0x00},//"E",37 {0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x00,0xE8,0x03,0x08,0x00,0x10,0x00,0x00,0x00},//"F",38 {0xC0,0x07,0x30,0x18,0x08,0x20,0x08,0x20,0x08,0x22,0x38,0x1E,0x00,0x02,0x00,0x00},//"G",39 {0x08,0x20,0xF8,0x3F,0x08,0x21,0x00,0x01,0x00,0x01,0x08,0x21,0xF8,0x3F,0x08,0x20},//"H",40 {0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,0x08,0x20,0x08,0x20,0x00,0x00,0x00,0x00},//"I",41 {0x00,0xC0,0x00,0x80,0x08,0x80,0x08,0x80,0xF8,0x7F,0x08,0x00,0x08,0x00,0x00,0x00},//"J",42 {0x08,0x20,0xF8,0x3F,0x88,0x20,0xC0,0x01,0x28,0x26,0x18,0x38,0x08,0x20,0x00,0x00},//"K",43 {0x08,0x20,0xF8,0x3F,0x08,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x30,0x00,0x00},//"L",44 {0x08,0x20,0xF8,0x3F,0xF8,0x00,0x00,0x3F,0xF8,0x00,0xF8,0x3F,0x08,0x20,0x00,0x00},//"M",45 {0x08,0x20,0xF8,0x3F,0x30,0x20,0xC0,0x00,0x00,0x07,0x08,0x18,0xF8,0x3F,0x08,0x00},//"N",46 {0xE0,0x0F,0x10,0x10,0x08,0x20,0x08,0x20,0x08,0x20,0x10,0x10,0xE0,0x0F,0x00,0x00},//"O",47 {0x08,0x20,0xF8,0x3F,0x08,0x21,0x08,0x01,0x08,0x01,0x08,0x01,0xF0,0x00,0x00,0x00},//"P",48 {0xE0,0x0F,0x10,0x18,0x08,0x24,0x08,0x24,0x08,0x38,0x10,0x50,0xE0,0x4F,0x00,0x00},//"Q",49 {0x08,0x20,0xF8,0x3F,0x88,0x20,0x88,0x00,0x88,0x03,0x88,0x0C,0x70,0x30,0x00,0x20},//"R",50 {0x00,0x00,0x70,0x38,0x88,0x20,0x08,0x21,0x08,0x21,0x08,0x22,0x38,0x1C,0x00,0x00},//"S",51 {0x18,0x00,0x08,0x00,0x08,0x20,0xF8,0x3F,0x08,0x20,0x08,0x00,0x18,0x00,0x00,0x00},//"T",52 {0x08,0x00,0xF8,0x1F,0x08,0x20,0x00,0x20,0x00,0x20,0x08,0x20,0xF8,0x1F,0x08,0x00},//"U",53 {0x08,0x00,0x78,0x00,0x88,0x07,0x00,0x38,0x00,0x0E,0xC8,0x01,0x38,0x00,0x08,0x00},//"V",54 {0xF8,0x03,0x08,0x3C,0x00,0x07,0xF8,0x00,0x00,0x07,0x08,0x3C,0xF8,0x03,0x00,0x00},//"W",55 {0x08,0x20,0x18,0x30,0x68,0x2C,0x80,0x03,0x80,0x03,0x68,0x2C,0x18,0x30,0x08,0x20},//"X",56 {0x08,0x00,0x38,0x00,0xC8,0x20,0x00,0x3F,0xC8,0x20,0x38,0x00,0x08,0x00,0x00,0x00},//"Y",57 {0x10,0x20,0x08,0x38,0x08,0x26,0x08,0x21,0xC8,0x20,0x38,0x20,0x08,0x18,0x00,0x00},//"Z",58 {0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0x02,0x40,0x02,0x40,0x02,0x40,0x00,0x00},//"[",59 {0x00,0x00,0x0C,0x00,0x30,0x00,0xC0,0x01,0x00,0x06,0x00,0x38,0x00,0xC0,0x00,0x00},//"\",60 {0x00,0x00,0x02,0x40,0x02,0x40,0x02,0x40,0xFE,0x7F,0x00,0x00,0x00,0x00,0x00,0x00},//"]",61 {0x00,0x00,0x00,0x00,0x04,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x04,0x00,0x00,0x00},//"^",62 {0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80},//"_",63 {0x00,0x00,0x02,0x00,0x02,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//"`",64 {0x00,0x00,0x00,0x19,0x80,0x24,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x3F,0x00,0x20},//"a",65 {0x08,0x00,0xF8,0x3F,0x00,0x11,0x80,0x20,0x80,0x20,0x00,0x11,0x00,0x0E,0x00,0x00},//"b",66 {0x00,0x00,0x00,0x0E,0x00,0x11,0x80,0x20,0x80,0x20,0x80,0x20,0x00,0x11,0x00,0x00},//"c",67 {0x00,0x00,0x00,0x0E,0x00,0x11,0x80,0x20,0x80,0x20,0x88,0x10,0xF8,0x3F,0x00,0x20},//"d",68 {0x00,0x00,0x00,0x1F,0x80,0x22,0x80,0x22,0x80,0x22,0x80,0x22,0x00,0x13,0x00,0x00},//"e",69 {0x00,0x00,0x80,0x20,0x80,0x20,0xF0,0x3F,0x88,0x20,0x88,0x20,0x88,0x00,0x18,0x00},//"f",70 {0x00,0x00,0x00,0x6B,0x80,0x94,0x80,0x94,0x80,0x94,0x80,0x93,0x80,0x60,0x00,0x00},//"g",71 {0x08,0x20,0xF8,0x3F,0x00,0x21,0x80,0x00,0x80,0x00,0x80,0x20,0x00,0x3F,0x00,0x20},//"h",72 {0x00,0x00,0x80,0x20,0x98,0x20,0x98,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00},//"i",73 {0x00,0x00,0x00,0xC0,0x00,0x80,0x80,0x80,0x98,0x80,0x98,0x7F,0x00,0x00,0x00,0x00},//"j",74 {0x08,0x20,0xF8,0x3F,0x00,0x24,0x00,0x02,0x80,0x2D,0x80,0x30,0x80,0x20,0x00,0x00},//"k",75 {0x00,0x00,0x08,0x20,0x08,0x20,0xF8,0x3F,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00},//"l",76{0x80,0x20,0x80,0x3F,0x80,0x20,0x80,0x00,0x80,0x3F,0x80,0x20,0x80,0x00,0x00,0x3F},//"m",77 {0x80,0x20,0x80,0x3F,0x00,0x21,0x80,0x00,0x80,0x00,0x80,0x20,0x00,0x3F,0x00,0x20},//"n",78 {0x00,0x00,0x00,0x1F,0x80,0x20,0x80,0x20,0x80,0x20,0x80,0x20,0x00,0x1F,0x00,0x00},//"o",79 {0x80,0x80,0x80,0xFF,0x00,0xA1,0x80,0x20,0x80,0x20,0x00,0x11,0x00,0x0E,0x00,0x00},//"p",80 {0x00,0x00,0x00,0x0E,0x00,0x11,0x80,0x20,0x80,0x20,0x80,0xA0,0x80,0xFF,0x00,0x80},//"q",81 {0x80,0x20,0x80,0x20,0x80,0x3F,0x00,0x21,0x80,0x20,0x80,0x00,0x80,0x01,0x00,0x00},//"r",82 {0x00,0x00,0x00,0x33,0x80,0x24,0x80,0x24,0x80,0x24,0x80,0x24,0x80,0x19,0x00,0x00},//"s",83 {0x00,0x00,0x80,0x00,0x80,0x00,0xE0,0x1F,0x80,0x20,0x80,0x20,0x00,0x00,0x00,0x00},//"t",84 {0x80,0x00,0x80,0x1F,0x00,0x20,0x00,0x20,0x00,0x20,0x80,0x10,0x80,0x3F,0x00,0x20},//"u",85 {0x80,0x00,0x80,0x01,0x80,0x0E,0x00,0x30,0x00,0x08,0x80,0x06,0x80,0x01,0x80,0x00},//"v",86 {0x80,0x0F,0x80,0x30,0x00,0x0C,0x80,0x03,0x00,0x0C,0x80,0x30,0x80,0x0F,0x80,0x00},//"w",87 {0x00,0x00,0x80,0x20,0x80,0x31,0x00,0x2E,0x80,0x0E,0x80,0x31,0x80,0x20,0x00,0x00},//"x",88 {0x80,0x80,0x80,0x81,0x80,0x8E,0x00,0x70,0x00,0x18,0x80,0x06,0x80,0x01,0x80,0x00},//"y",89 {0x00,0x00,0x80,0x21,0x80,0x30,0x80,0x2C,0x80,0x22,0x80,0x21,0x80,0x30,0x00,0x00},//"z",90 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x7C,0x3F,0x02,0x40,0x02,0x40},//"{",91 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},//"|",92 {0x00,0x00,0x02,0x40,0x02,0x40,0x7C,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00},//"}",93 {0x00,0x00,0x06,0x00,0x01,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x04,0x00,0x04,0x00},//"~",94 };//常用ASCII表//纵向取模//偏移量:32//大小:8*6const unsigned char ASCII_0806[95][6]={{0x00,0x00,0x00,0x00,0x00,0x00},//- - //space{0x00,0x00,0x4f,0x00,0x00,0x00},//-!-{0x00,0x07,0x00,0x07,0x00,0x00},//-"-{0x14,0x7f,0x14,0x7f,0x14,0x00},//-#-{0x24,0x2a,0x7f,0x2a,0x12,0x00},//-$-{0x23,0x13,0x08,0x64,0x62,0x00},//-%-{0x36,0x49,0x55,0x22,0x50,0x00},//-&-{0x00,0x05,0x07,0x00,0x00,0x00},//-'-{0x00,0x1c,0x22,0x41,0x00,0x00},//-(-{0x00,0x41,0x22,0x1c,0x00,0x00},//-)-{0x14,0x08,0x3e,0x08,0x14,0x00},//-*-{0x08,0x08,0x3e,0x08,0x08,0x00},//-+-{0x00,0x50,0x30,0x00,0x00,0x00},//-,-{0x08,0x08,0x08,0x08,0x08,0x00},//---{0x00,0x60,0x60,0x00,0x00,0x00},//-.-{0x20,0x10,0x08,0x04,0x02,0x00},//-/-{0x3e,0x51,0x49,0x45,0x3e,0x00},//-0-{0x00,0x42,0x7f,0x40,0x00,0x00},//-1-{0x21,0x41,0x45,0x4b,0x31,0x00},//-3- {0x18,0x14,0x12,0x7f,0x10,0x00},//-4- {0x27,0x45,0x45,0x45,0x39,0x00},//-5- {0x3c,0x4a,0x49,0x49,0x30,0x00},//-6- {0x01,0x71,0x09,0x05,0x03,0x00},//-7- {0x36,0x49,0x49,0x49,0x36,0x00},//-8- {0x06,0x49,0x49,0x29,0x1e,0x00},//-9- {0x00,0x36,0x36,0x00,0x00,0x00},//-:- {0x00,0x56,0x36,0x00,0x00,0x00},//-;- {0x08,0x14,0x22,0x41,0x00,0x00},//-<- {0x14,0x14,0x14,0x14,0x14,0x00},//-=- {0x00,0x41,0x22,0x14,0x08,0x00},//->- {0x02,0x01,0x51,0x09,0x06,0x00},//-?- {0x32,0x49,0x79,0x41,0x3e,0x00},//-@- {0x7e,0x11,0x11,0x11,0x7e,0x00},//-A- {0x7f,0x49,0x49,0x49,0x36,0x00},//-B- {0x3e,0x41,0x41,0x41,0x22,0x00},//-C- {0x7f,0x41,0x41,0x22,0x1c,0x00},//-D- {0x7f,0x49,0x49,0x49,0x41,0x00},//-E- {0x7f,0x09,0x09,0x09,0x01,0x00},//-F- {0x3e,0x41,0x49,0x49,0x7a,0x00},//-G- {0x7f,0x08,0x08,0x08,0x7f,0x00},//-H- {0x00,0x41,0x7f,0x41,0x00,0x00},//-I- {0x20,0x40,0x41,0x3f,0x01,0x00},//-J- {0x7f,0x08,0x14,0x22,0x41,0x00},//-K- {0x7f,0x40,0x40,0x40,0x40,0x00},//-L- {0x7f,0x02,0x0c,0x02,0x7f,0x00},//-M- {0x7f,0x04,0x08,0x10,0x7f,0x00},//-N- {0x3e,0x41,0x41,0x41,0x3e,0x00},//-O- {0x7f,0x09,0x09,0x09,0x06,0x00},//-P- {0x3e,0x41,0x51,0x21,0x5e,0x00},//-Q- {0x7f,0x09,0x19,0x29,0x46,0x00},//-R- {0x46,0x49,0x49,0x49,0x31,0x00},//-S- {0x01,0x01,0x7f,0x01,0x01,0x00},//-T- {0x3f,0x40,0x40,0x40,0x3f,0x00},//-U- {0x1f,0x20,0x40,0x20,0x1f,0x00},//-V- {0x3f,0x40,0x38,0x40,0x3f,0x00},//-W- {0x63,0x14,0x08,0x14,0x63,0x00},//-X- {0x07,0x08,0x70,0x08,0x07,0x00},//-Y- {0x61,0x51,0x49,0x45,0x43,0x00},//-Z- {0x00,0x7f,0x41,0x41,0x00,0x00},//-[- {0x02,0x04,0x08,0x10,0x20,0x00},//-\- {0x00,0x41,0x41,0x7f,0x00,0x00},//-]-{0x40,0x40,0x40,0x40,0x40,0x00},//-_- {0x01,0x02,0x04,0x00,0x00,0x00},//-`- {0x20,0x54,0x54,0x54,0x78,0x00},//-a- {0x7f,0x48,0x48,0x48,0x30,0x00},//-b- {0x38,0x44,0x44,0x44,0x44,0x00},//-c- {0x30,0x48,0x48,0x48,0x7f,0x00},//-d- {0x38,0x54,0x54,0x54,0x58,0x00},//-e- {0x00,0x08,0x7e,0x09,0x02,0x00},//-f- {0x48,0x54,0x54,0x54,0x3c,0x00},//-g- {0x7f,0x08,0x08,0x08,0x70,0x00},//-h- {0x00,0x00,0x7a,0x00,0x00,0x00},//-i- {0x20,0x40,0x40,0x3d,0x00,0x00},//-j- {0x7f,0x20,0x28,0x44,0x00,0x00},//-k- {0x00,0x41,0x7f,0x40,0x00,0x00},//-l- {0x7c,0x04,0x38,0x04,0x7c,0x00},//-m- {0x7c,0x08,0x04,0x04,0x78,0x00},//-n- {0x38,0x44,0x44,0x44,0x38,0x00},//-o- {0x7c,0x14,0x14,0x14,0x08,0x00},//-p- {0x08,0x14,0x14,0x14,0x7c,0x00},//-q- {0x7c,0x08,0x04,0x04,0x08,0x00},//-r- {0x48,0x54,0x54,0x54,0x24,0x00},//-s- {0x04,0x04,0x3f,0x44,0x24,0x00},//-t- {0x3c,0x40,0x40,0x40,0x3c,0x00},//-u- {0x1c,0x20,0x40,0x20,0x1c,0x00},//-v- {0x3c,0x40,0x30,0x40,0x3c,0x00},//-w- {0x44,0x28,0x10,0x28,0x44,0x00},//-x- {0x04,0x48,0x30,0x08,0x04,0x00},//-y- {0x44,0x64,0x54,0x4c,0x44,0x00},//-z- {0x08,0x36,0x41,0x41,0x00,0x00},//-{- {0x00,0x00,0x77,0x00,0x00,0x00},//-|- {0x00,0x41,0x41,0x36,0x08,0x00},//-}- {0x04,0x02,0x02,0x02,0x01,0x00},//-~- };#endif。
OLEDSSD1306与SSD1315在初始化的区别
OLEDSSD1306与SSD1315在初始化的区别在使⽤0.96⼨的OLED时,发现之前的代码不能正常通过单⽚机的IIC使⽤DMA进⾏刷新,刷新时总是错⼀位,后来查阅资料发现是现在的OLED使⽤了SSD1315替换了SSD1306控制芯⽚,贴⼀下各个初始化过程,⽅便记录:SSD1306初始化:1/**2 * @brief OLED初始化3 * @param None4 * @retval None.5*/6void OLED_Init(void)7 {8#if SENDDTA_DMA9 I2C_DMA_WriteReg( (uint8_t*)OLED_Init_CMD, OLED_ADDRESS,OLED_WriteCom_Addr,sizeof(OLED_Init_CMD)); //sizeof(OLED_Init_CMD)10#else11// DelayMs(100); //这⾥的延时很重要12 delay_ms(10);13 WriteCmd(0xAE); //display off14 WriteCmd(0x20); //Set Memory Addressing Mode15 WriteCmd(0x10); //00,Horizontal Addressing Mode;01,Vertical Addressing Mode;10,Page Addressing Mode (RESET);11,Invalid16 WriteCmd(0xb0); //Set Page Start Address for Page Addressing Mode,0-717 WriteCmd(0xc8); //Set COM Output Scan Direction18 WriteCmd(0x00); //---set low column address19 WriteCmd(0x10); //---set high column address20 WriteCmd(0x40); //--set start line address21 WriteCmd(0x81); //--set contrast control register22 WriteCmd(0xff); //亮度调节 0x00~0xff23 WriteCmd(0xa1); //--set segment re-map 0 to 12724 WriteCmd(0xa6); //--set normal display25 WriteCmd(0xa8); //--set multiplex ratio(1 to 64)26 WriteCmd(0x3F); //27 WriteCmd(0xa4); //0xa4,Output follows RAM content;0xa5,Output ignores RAM content28 WriteCmd(0xd3); //-set display offset29 WriteCmd(0x00); //-not offset30 WriteCmd(0xd5); //--set display clock divide ratio/oscillator frequency31 WriteCmd(0xf0); //--set divide ratio32 WriteCmd(0xd9); //--set pre-charge period33 WriteCmd(0x22); //34 WriteCmd(0xda); //--set com pins hardware configuration35 WriteCmd(0x12);36 WriteCmd(0xdb); //--set vcomh37 WriteCmd(0x20); //0x20,0.77xVcc38 WriteCmd(0x8d); //--set DC-DC enable39 WriteCmd(0x14); //40 WriteCmd(0xaf); //--turn on oled panel41#endif42 }这⾥使⽤默认是刷新⽅式,按照页写数据没有问题,使⽤DMA时需要把照寻址⽅式修改为了⽔平寻址时就出现了刷新数据不对的问题为此,我直接使⽤了⽹络上默认的⽅式对DMA发送指令进⾏初始化const uint8_t OLED_Init_CMD[] ={0xAE,0x00,0x10,0x40,0xB0,0x81,0xFF,0xA1,0xA6,0xA8,0x3F,0xC8,0xD3,0x00,0xD5,0x80,0xD8,0x05,0xD9,0xF1,0xDA,0x12,0xDB,0x30,0x8D,0x14,0xAF,0x20,0x00};发现使⽤改⽅式刷新SSD1315类型的OLED时会出问题,对其进⾏修改:const uint8_t OLED_Init_CMD[] ={ 0xae,0x00,0x10,0x40,0x81,0xcf,0xa1,0xc8,0xa6,0xa8, 0x3f,0xd3,0x00,0xd5,0x80,0xd9,0xf1,0xda,0x12,0xdb, 0x40,0x20,0x00,0x8d,0x14,0xa4,0xa6,0xaf};⽴刻正常,看来两个⽚⼦的⼯作模式还是有些区别的。
ssd1306中文手册范本
简介SSD1306是一个单片CMOS OLED/PLED驱动芯片可以驱动有机/聚合发光二极管点阵图形显示系统。
由128 segments 和64 Commons组成。
该芯片专为共阴极OLED面板设计。
SSD1306中嵌入了对比度控制器、显示RAM和晶振,并因此减少了外部器件和功耗。
有256级亮度控制。
数据/命令的发送有三种接口可选择:6800/8000串口,I2C接口或SPI接口。
适用于多数简介的应用,注入移动的屏显,MP3播放器和计算器等。
特性1.分辨率:128 * 64 点阵面板2.电源:a)VDD = 1.65V to 3.3V 用于IC逻辑b)VCC = 7V to 15V 用于面板驱动3.点阵显示a)OLED驱动输出电压,最大15Vb)Segment最大电流:100uAc)常见最大反向电流:15mAd)256级对比亮度电流控制4.嵌入式128 * 64位SRAM显示缓存5.引脚选择MCU接口a)8位6800/8000串口b)3/4线SPI接口c)I2C接口6.水平和垂直两个方向的屏幕保存连续滚动功能。
7.RAM写同步信号8.可编程的帧率和多重比率9.行重映射和列冲映射10.片上晶振11.两种封装COG和COF12.工作温度围广:-40℃to 85℃订购信息暂不翻译结构方框图功能块描述MCU接口选择SSD1306MCU接口由8个数据引脚和5个控制引脚组成。
引脚分配由不同的接口选择决定,详情如下表。
不同的MCU模块可以通过BS[2:0]引脚的硬件选择设置。
MCU 并口6800系列接口不翻译MCU 并口8080系列接口不翻译MCU串口(4-wire SPI)不翻译MCU串口(3-wire SPI)不翻译MCU I2C 接口I2C通讯接口由从机地址为SA0,I2C总线数据信号(SDAout/D2输出和SDAin/D1输入)和I2C总线时钟信号SCL(D0)组成。
数据和时钟信号线都必须接上上拉电阻。
OLED模块使用说明
7.6 系统显示设计控制系统显示常用的显示器件有数码管、LCD、OLED等。
OLED即有机发光二极管(Organic Light Emitting Diode),其同时具备自发光,不需背光源、对比度高、制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。
本节主要介绍OLED的工作原理、底层驱动代码编写以及如何通过取模软件显示任何自己想要显示的文字或者图片。
7.6.1 OLED显示原理如图4所示为0.96寸OLED显示模块,其分辨率为128*64,采用4线SPI接口方式,模块的接口定义如表1所示。
图4 0.96寸OLED显示模块种并行接口方式、3线或4线SPI接口方式、IIC接口方式。
这里介绍OLED模块4线SPI 通信方式,只需4根通信线就能实现对OLED模块的显示控制,这4根线为:D0、D1、DC、CS。
如图5所示为4线SPI写操作时序图,在4线SPI模式下,每个数据长度均为8位,也即为1个字节。
每次发送该字节数据前,如果该字节数据为指令号,则将DC管脚拉低;如果该字节数据为普通数据,则将DC管脚置高。
在SCLK上升沿,数据从SDIN移入SSD1306,并且高位在前。
SSD1306的显存总共为128*64bit大小,SSD1306将这些显存分为8页,其对应关系如表2所示。
可见OLED水平像素分为128段,即SEG0~SEG127;垂直像素平分为8页,也即垂直方向每8个像素点为1页。
从而可见,在确定显示的位置后,通过往显存中写入一个字节数据,则相应的SEG将按照数据进行显示,位数据为1时,相应像素点被点亮,位数据为0时,相应的像素点熄灭。
图5 4线SPI写操作时序图令较多,具体的可以参考相关手册,这里介绍如表3所示几个比较常用的指令。
命令,随后发送的一个字节为要设置的对比度的值。
这个值设置得越大屏幕就越亮。
第二个命令为 0XAE/0XAF。
0XAE 为关闭显示命令; 0XAF 为开启显示命令。
0.96'OLED(4Pin)模块学习手册(STM8S版)
SSD1306 背面图
模块原理图 第 3 页 共 23 页
深圳市技新电子科技有限公司 www.jixin.pro
0.96’OLED(4Pin)V1.0.0.0
3.2 SSD1306 引脚功能表
引脚号码
符号
类型
功能
电源相关引脚
9
VDD
电源
逻辑电源
这是一个供电引脚,必须连接到外部电源。
0.96’OLED(4Pin)模块采用 SSD1306 为驱动芯片,并集成在 OLED 面板中,像素为 128*64,通讯方式 IIC,地址可选(默认地址 0x78),支持软件模拟 IIC 通讯与硬件 IIC 通讯,上电自动复位,功耗低,自发光自 由视角。模块带有稳压芯片,VCC 输入范围 3.3V~5V,与单片机通讯只需两个 IO 口。
1.3 模块丝印
模块上的每一个器件都有一个相对应的丝印在上面,可以通过 BOM 表中的器件编号在板子找到器件的位 置。
第 1 页 共 23 页
深圳市技新电子科技有限公司 www.jixin.pro
0.96’OLED(4Pin)V1.0.0.0
模块正面丝印图
模块正面丝印图
在模块的正面丝印中,S1 是地址选择焊盘,作用是选择模块通讯地址(不焊为 0,焊上为 1,默认 S1 不 焊,地址为 0x78),地址选择如下表:
8
VSS
电源
逻辑地
这是一个地引脚,它作为逻辑电平的参考引脚,必
须链接到外部地。
28
VCC
电源
OEL 板供电
它必须为芯片电源电压正极引脚,在使用整流器时
要在该引脚与 VSS 之间接入一个电容;如果不使用整 流器时必须接到外部电源。
ssd1306中文手册
K = 相 1 周期 + 相 2 周期 + BANK0 脉冲宽度 = 2 + 2 + 50 = 54 在上电重启时 Number of multiplex ratio 通过 command A8h 设置。上电重启值为 63 。 Fosc 是振荡器频率,可以通过命令 D5h A[7:4]修改。值越大频率越大。
页脚内容
SQL 数据库完全操作手册
如果 D/C#引脚是高,D[7:0]就被解读为写到图像显示数据 RAM(GDDRAM)中的显示数据。 如果是低,D[7:0]的输入就被解读为一个命令。然后数据输入就会被解码并写到相关的命令 寄存器中。
晶振电路和显示时间发生器
这是一个片上低功耗 RC 震荡电路。操作时钟(CLK)可以由内部震荡器或外部 CL 引脚生成。 这个选择是通过 CLS 引脚完成的。当 CLS 引脚拉高,内部振荡器开启,CL 应该保留开启。将 CLS 拉低可以静止内部振荡器,外部时钟必须连接到 CL 引脚上。当选择了内部振荡器之后, 输出频率 Fosc 可以通过命令 D5h A[7:4]修改。 用于显示时钟发生器的显示时钟(DCLK)是源于 CLK 的。分频因子“D”可以通过命令 D5h 编程范围为 1 到 16 DCLK = Fosc/D 显示的帧率是由下面的公式决定
输出跟随 RAM A5h, X0 =1b:进入显示 开启状态,输出不管 RAM 内容 A6h, X[0]=0b:正常显示 (RESET) 在RAM中的0:在显示面板 上为关 在RAM中的1:在显示面板 上为开 A7h, X[0]=1b: 反相显示 在RAM中的0:在显示面板 上为开 在RAM中的1:在显示面板 上为关
oled中文手册
oled中文手册OLED(Organic Light Emitting Diodes,有机发光二极管)是一种基于有机材料的发光显示技术。
由于其具有自发光、高对比度、低功耗、快速响应等优点,OLED显示器在手机、电视、平板电脑等领域得到了广泛应用。
以下是OLED中文手册的一些基本概念和操作说明:1. OLED结构:OLED主要由玻璃基板、ITO(铟锡氧化物)阳极、有机发光层、阴极和封装层组成。
2. OLED工作原理:当电流通过有机发光层时,正负电荷在有机材料中复合,释放出能量,使有机材料发光。
3. OLED驱动方式:OLED采用被动矩阵(PMOLED)或主动矩阵(AMOLED)驱动方式。
PMOLED采用分立的驱动电路,每个像素由一个TFT(薄膜晶体管)控制;AMOLED采用集成的驱动电路,每个像素由多个TFT共享一个驱动电路。
4. OLED显示模式:OLED支持多种显示模式,如静态显示、动态显示、滚动显示等。
5. OLED颜色:OLED可以显示红、绿、蓝三种基本颜色,通过调节这三种颜色的亮度比例,可以实现各种颜色的组合。
6. OLED亮度调节:OLED可以通过PWM(脉宽调制)技术调节亮度,实现低功耗和高对比度的显示效果。
7. OLED电源管理:OLED需要稳定的电源电压和电流,通常采用DC-DC转换器将外部电源转换为适合OLED工作的电压和电流。
8. OLED驱动芯片:市场上有多种OLED驱动芯片可供选择,如SSD1306、SSD1327、ILI9341等。
这些驱动芯片提供了丰富的功能和接口,方便用户进行二次开发。
9. OLED编程:用户可以通过编程控制OLED的显示内容、颜色、亮度等参数,实现自定义的显示效果。
常用的编程语言有C语言、Python 等。
ssd1306中文手册资料
精品文档简介SSD1306是一个单片CMOS OLED/PLED驱动芯片可以驱动有机/聚合发光二极管点阵图形显示系统。
由128 segments 和64 Commons组成。
该芯片专为共阴极OLED面板设计。
SSD1306中嵌入了对比度控制器、显示RAM和晶振,并因此减少了外部器件和功耗。
有256级亮度控制。
数据/命令的发送有三种接口可选择:6800/8000串口,I2C接口或SPI接口。
适用于多数简介的应用,注入移动电话的屏显,MP3播放器和计算器等。
特性1.分辨率:128 * 64 点阵面板2.电源:a)VDD = 1.65V to 3.3V 用于IC逻辑b)VCC = 7V to 15V 用于面板驱动3.点阵显示a)OLED驱动输出电压,最大15Vb)Segment最大电流:100uAc)常见最大反向电流:15mAd)256级对比亮度电流控制4.嵌入式128 * 64位SRAM显示缓存5.引脚选择MCU接口a)8位6800/8000串口b)3/4线SPI接口c)I2C接口6.水平和垂直两个方向的屏幕保存连续滚动功能。
7.RAM写同步信号8.可编程的帧率和多重比率9.行重映射和列冲映射10.片上晶振11.两种封装COG和COF12.工作温度范围广:-40℃to 85℃订购信息暂不翻译精品文档.精品文档结构方框图功能块描述接口选择MCU个控制引脚组成。
引脚分配由不同的接口选择决定,个数据引脚和5SSD1306MCU接口由8 BS[2:0]引脚的硬件选择设置。
模块可以通过详情如下表。
不同的MCU精品文档.精品文档接控制信ER/W#CS#D2D1D0D/C#RES#D4D3RES#RD#CS#WR#D/C#RES#CS#ED/C#R/W#RES#SDINSCLKCS#Tie LOWTieNCLOWRES#D/C#Tie LOWCS#NCSDINSCLKRES#Tie LOWSDAoutSClSDAinSA0MCU 并口6800系列接口不翻译MCU 并口8080系列接口不翻译MCU串口(4-wire SPI)不翻译MCU串口(3-wire SPI)不翻译MCU I2C 接口I2C通讯接口由从机地址为SA0,I2C总线数据信号(SDAout/D2输出和SDAin/D1输入)和I2C总线时钟信号SCL(D0)组成。
SSD1306驱动显示命令
SSD1306驱动显示命令命令表单(D/C#=0, R/W#(WR#) = 0, E(RD#=1) 特殊状态除外) 1、基本命令D/C Hex D7 D6 D5 D4 D3 D2 D1 D0 命令描述0 81A[7:0] 1A7A6A5A4A3A2A11A0设置对比度双字节命令,1~256级对比度可选,对比度随值增加。
(复位值 = 0x7f)0 A4/A5 1 0 0 0 0 1 0 X0全部显示开A4h,X0 = 0 :恢复内存内容显示(默认),输出内存中的内容A5h,X0= 1 :开显示,输出无视内存的内容0 A6/A7 1 0 0 0 0 1 1 X0设置正常/逆显示A6,X[0]= 0:正常显示(默认) RAM为0:显示面板关RAM为1:显示面板开A7 X[0]= 1:逆显示RAM为0:显示面板开RAM为1:显示面板关0 AE/AF 1 0 0 0 1 1 1 X0设置显示开/关AE:X[0]= 0:关显示(默认) AF:X[0]= 1:在正常模式显示2、滚动命令表D/C Hex D7 D6 D5 D4 D3 D2 D1 D0 命令描述0 0 0 0 0 0 0 26/27A[7:0]B[2:0]C[2:0]D[2:0]E[7:0]F[7:0]***1***11***1***1***11B2C2D211B1C1D11X0B0C0D01连续水平滚动设置26小时,X[0]= 0,右向水平滚动27 h,X[0]= 1,左向水平滚动(水平滚动1列)[7:0]:虚拟字节(设置为00 h)B(2:0):定义开始页面地址0~7 PAGE0~ PAGE7C(2:0):设置每个滚动步骤之间的时间间隔的帧频000 b - 5帧100 b - 3帧001 b - 64帧101 b - 4帧010 b - 128帧110 b - 25帧011 b - 256帧111 b - 2帧D(2:0):定义最终页面地址0~7 PAGE0~ PAGE7D(2:0)的值必须大于或等于B(2:0)E[7:0]:虚拟字节(设置为00 h)F[7:0]:虚拟字节(设置为FFh)0 0 0 0 29/2AA[2:0]B[2:0]C[2:0]****1****1**B2C2X1B1C1X0B0C0连续垂直和水平滚动设置29H,X1X0 = 01 :垂直和水平滚动2AH,X1X0 = 10 :垂直和水平滚动(水平滚动1列)[7:0]:虚拟字节0 0 D[2:0]E[5:0]***E5*E4*E3D2E2D1E1D0E0B(2:0):定义开始页面地址0~7 PAGE0~ PAGE7C(2:0):设置每个滚动步骤之间的时间间隔的帧频000 b - 5帧100 b - 3帧001 b - 64帧101 b - 4帧010 b - 128帧110 b - 25帧011 b - 256帧111 b - 2帧D(2:0):定义最终页面地址0~7 PAGE0~ PAGE7D(2:0)的值必须大于或等于B(2:0)E[5:0]:垂直滚动偏移量例如E[5:0]= 01 h指抵消= 1行E(5:0)= 3跳频是指抵消= 63行请注意(1)没有可用连续垂直滚动。
2SD1306中文资料
2SD1306Silicon NPN EpitaxialREJ03G0784-0200(Previous ADE-208-1144)Rev.2.00Aug.10.2005ApplicationLow frequency amplifier, MutingOutlineAbsolute Maximum Ratings(Ta = 25°C)UnitRatingsItem SymbolCollector to base voltage V CBO 30 VCollector to emitter voltage V CEO 15 VEmitter to base voltage V EBO 5 VCollector current I C 0.7 ACollector power dissipation P C 150 mWJunction temperature Tj 150 °CStorage temperature Tstg –55 to +150 °CElectrical Characteristics(Ta = 25°C)UnitMaxconditionsTestMinItem SymbolTypCollector to base breakdown voltage V(BR)CBO 30 — — V I C = 10 µA, I E = 0Collector to emitter breakdown voltage V(BR)CEO 15 — — V I C = 1 mA, R BE = ∞Emitter to base breakdown voltage V(BR)EBO 5 — — V I E = 10 µA, I C = 0Collector cutoff current I CBO — — 1.0 µA V CB = 20 V, I E = 0DC current transfer ratio h FE*1 250 — 800 V CE = 1 V, I C = 150 mA*2V CE = 1 V, I C = 150 mA*2Base to emitter voltage V BE — — 1.0 VCollector to emitter saturation voltage V CE(sat) — — 0.5 V I C = 500 mA, I B = 50 mA*2V CE = 1 V, I C = 150 mA*2MHz250Gain bandwidth product f T ——Notes: 1. The 2SD1306 is grouped by h FE as follows.testPulse2.Grade D EMark NDNEh FE250 to 500 400 to 800Main CharacteristicsPackage DimensionsOrdering InformationPart Name Quantity Shipping Container3000 φ 178 mm Reel, 8 mm Emboss Taping2SD1306NDTL-E2SD1306NETL-ENote: For some grades, production may be terminated. Please contact the Renesas sales office to check the state of production before ordering the product. RENESAS SALES OFFICESRefer to "/en/network" for the latest and detailed information.Renesas Technology America, Inc.450 Holger Way, San Jose, CA 95134-1368, U.S.ATel: <1> (408) 382-7500, Fax: <1> (408) 382-7501Renesas Technology Europe LimitedDukes Meadow, Millboard Road, Bourne End, Buckinghamshire, SL8 5FH, U.K.Tel: <44> (1628) 585-100, Fax: <44> (1628) 585-900Renesas Technology Hong Kong Ltd.7th Floor, North Tower, World Finance Centre, Harbour City, 1 Canton Road, Tsimshatsui, Kowloon, Hong KongTel: <852> 2265-6688, Fax: <852> 2730-6071Renesas Technology Taiwan Co., Ltd.10th Floor, No.99, Fushing North Road, Taipei, TaiwanTel: <886> (2) 2715-2888, Fax: <886> (2) 2713-2999Renesas Technology (Shanghai) Co., Ltd.Unit2607 Ruijing Building, No.205 Maoming Road (S), Shanghai 200020, ChinaTel: <86> (21) 6472-1001, Fax: <86> (21) 6415-2952Renesas Technology Singapore Pte. Ltd.1 Harbour Front Avenue, #06-10, Keppel Bay Tower, Singapore 098632Tel: <65> 6213-0200, Fax: <65> 6278-8001Renesas Technology Korea Co., Ltd.Kukje Center Bldg. 18th Fl., 191, 2-ka, Hangang-ro, Yongsan-ku, Seoul 140-702, KoreaTel: <82> 2-796-3115, Fax: <82> 2-796-2145Renesas Technology Malaysia Sdn. Bhd.Unit 906, Block B, Menara Amcorp, Amcorp Trade Centre, No.18, Jalan Persiaran Barat, 46050 Petaling Jaya, Selangor Darul Ehsan, MalaysiaTel: <603> 7955-9390, Fax: <603> 7955-9510。
SSD1306驱动显示命令
请注意(1)没有可用连续垂直滚动。
0
2E
0
0
1
0
1
1
1
0
禁用滚动
0
2F
0
0
1
0
1
1
1
1
激活滚动
0
0
0
A3
A[5:0]
B[6:0]
1
*
0
0
*
B5
1
A5B5
0
A4B4
0
A3B3
0
A2
B2
1A1
B1
1A0
B0
设置垂直滚动
区域
A(5:0):没有。的行固定区域。没有。的行固定区域引用的GDDRAM(重置= 0)(即行。0]
(复位值=0x7f)
0
A4/A5
1
0
0
0
0
1
0
X0
全部显示开
A4h,X0= 0:恢复内存内容显示(默认),输出内存中的内容
A5h,X0= 1 :开显示,输出无视内存的内容
0
A6/A7
1
0
0
0
0
1
1
X0
设置正常/逆显示
A6,X[0]= 0:正常显示(默认)
RAM为0:显示面板关
RAM为1:显示面板开
A7 X[0]= 1:逆显示
A2
1
A1
1
A0
设置显示补偿
设置COM垂直移动0->63
复位后的值为0。
0
0
DA
A[5:4]
1
*
1*
0
A5
0.96寸OLED显示屏IIC接口(SSD1306)
0.96⼨OLED显⽰屏IIC接⼝(SSD1306)IIC接⼝引脚分配SSD1306在I2C总线模式下的接⼝分配数据/命令引脚控制引脚[D7:D3]D2D1D0E R/W#CS#D/C#RES#共阴SDA OUT SDA IN SCL共阴SA0RES#IIC通信接⼝由总线的数据信号SDA(SDA OUT和SDA IN)和总线的时钟信号SCL组成。
数据和时钟信号必须连接上拉电阻。
SA0 为从机地址引脚,RES#为设备的初始化引脚。
1.SDA 数据信号线 SDA是主机和从机间进⾏数据收发和应答的通道。
需注意的是,SDA引脚的ITO 电阻和上拉电阻有⼀个潜在的分压,结果就是,SDA线上的应答信号可能达不到有效的低电平。
SDA OUT和SDA IN连接在⼀起由数据信号线SDA引出,SDA IN引脚必须连接以充当SDA。
SDA OUT引脚可能断开。
当SDA OUT引脚断开时,I2C总线中的应答信号将被忽略。
2.SCL 时钟信号线 信息在IIC总线中的传输遵循时钟信号SCL。
数据位的每次传输都是在SCL的单个时钟周期内进⾏的。
3.SA0 丛机地址位在IIC总线发送或接收任何信息之前,SSD1306必须先识别从机地址。
设备将响应具有以下字节格式的字节:bit7bit6bit5bit4bit3bit2bit1bit0011110SA0R/W#”D/C#“作为SA0⽤于从地址选择。
SA0位为从机地址提供扩展位。
“0111100”或“0111101”均可作为SSD1306的从机地址。
“R/W#”⽤于确定IIC总线接⼝的操作模式。
R/W#=1,为读取模式。
R/W#=0,为写⼊模式。
写数据I2C总线接⼝允许将数据和命令写⼊设备,以下为I2C总线的写⼊模式按时序图。
IIC总线写⼊数据格式IIC写⼊模式1.主机通过启动条件启动数据通信。
启动条件是在SCL保持⾼电平期间捕获到SDA的⼀个下降沿,见下图:IIC通信启动和停⽌条件2.开始通信后⾸先发送⼀个字节:从机地址和读写控制位R/W#。
SSD1306(OLED驱动芯片)指令详解
SSD1306(OLED驱动芯⽚)指令详解基础命令:1.页地址模式下设置列起始地址低位(Set Lower Column Start Address For Page Addressing Mode)(00h~0Fh)此指令⽤于在页地址模式下设置GDDRAM的列起始地址(8位)的低4位, 页地址会在数据访问后递增2.页地址模式下设置列起始地址⾼位(Set Higher Column Start Address For Page Addressing Mode)(10h~1Fh)此指令⽤于在页地址模式下设置GDDRAM的列起始地址(8位)的⾼4位, 页地址会在数据访问后递增3.设置内存地址模式(Set Memory Addressing Mode)(20h)在SSD1306中有三种地址模式: 页地址模式, ⽔平地址模式和垂直地址模式, 此命令⽤于将地址模式设置为以上三种之⼀'COL'的含义是GDDRAM列(column)页地址模式(A[1:0]=10b)当处于此模式时, 在GDDRAM访问后(读/写), 列地址指针将⾃动增加1。
如果列地址指针到达列终⽌地址, 列地址指针将复位到列起始地址, 但页地址指针不会改变。
为了访问GDDRAM中下⼀页的内容, ⽤户必须设置新的页地址和列地址。
页地址模式下页以及列地址指针的⾏为如下图所⽰通常在页地址模式下访问GDDRAM, 需要如下步骤来定义起始RAM访问指针指向:-通过命令(B0h-B7h)设置⽬标显⽰位置页起始地址-通过命令(00h-0Fh)设置列起始地址低位-通过命令(10h-1Fh)设置列起始地址⾼位例如, 如果页地址是B2h, 列地址低位是03h, 列地址⾼位是10h, 起始列将为PAGE2的SEG3, GDDRAM访问指针的指向如下图所⽰⽔平地址模式(A[1:0]=00b)当处于此模式时, 在GDDRAM访问后(读/写), 列地址指针将⾃动增加1。
0.96寸4脚oled显示屏驱动原理
0.96寸4脚oled显示屏驱动原理0.96寸4脚OLED(有机发光二极管)显示屏通常是基于 SSD1306 驱动芯片的。
SSD1306 是一种常用于驱动OLED显示器的控制器芯片。
以下是其基本工作原理:电源供应: OLED显示屏通常需要3.3V或5V的电源供应。
供电后,OLED屏幕就开始工作。
通信接口:SSD1306芯片支持I2C或SPI等通信接口,具体取决于显示屏的设计。
I2C通信是常见的选择,因为它使用的引脚较少。
初始化:在使用OLED显示屏之前,需要通过通信接口对SSD1306进行初始化。
这通常涉及将一系列控制命令发送到芯片,以设置显示参数、亮度等。
数据传输:一旦初始化完成,可以通过通信接口向SSD1306发送图像数据或文本数据。
SSD1306的内存结构是一个图形缓冲区,你可以在其中绘制要显示的内容。
刷新屏幕:绘制完成后,需要通过命令刷新OLED屏幕,将缓冲区的内容实际显示在屏幕上。
这通常涉及到发送一些刷新屏幕的控制命令。
显示控制:SSD1306芯片允许设置显示的方向(横向或纵向)、翻转显示等。
这可以通过控制命令进行配置。
以下是一个简单的基于Python的使用Adafruit SSD1306库的例子(需要安装相应的库):import boardimport busioimport adafruit_ssd1306from PIL import Image, ImageDraw, ImageFont# 创建I2C总线i2c = busio.I2C(board.SCL, board.SDA)# 创建SSD1306显示器对象oled = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c)# 创建图像对象image = Image.new("1", (oled.width, oled.height))draw = ImageDraw.Draw(image)# 绘制文本font = ImageFont.load_default()draw.text((10, 10), "Hello, OLED!", font=font, fill=255)# 显示图像oled.image(image)oled.show()这只是一个简单的例子,实际的应用可能需要更多的功能,例如动画、图形绘制等。
SSD1306 OLED驱动芯片中文手册
简介SSD1306是一个单片CMOS OLED/PLED驱动芯片可以驱动有机/聚合发光二极管点阵图形显示系统。
由128 segments 和64 Commons组成。
该芯片专为共阴极OLED面板设计。
SSD1306中嵌入了对比度控制器、显示RAM和晶振,并因此减少了外部器件和功耗。
有256级亮度控制。
数据/命令的发送有三种接口可选择:6800/8000串口,I2C接口或SPI接口。
适用于多数简介的应用,注入移动电话的屏显,MP3播放器和计算器等。
特性1.分辨率:128 * 64 点阵面板2.电源:a)VDD = 1.65V to 3.3V 用于IC逻辑b)VCC = 7V to 15V 用于面板驱动3.点阵显示a)OLED驱动输出电压,最大15Vb)Segment最大电流:100uAc)常见最大反向电流:15mAd)256级对比亮度电流控制4.嵌入式128 * 64位SRAM显示缓存5.引脚选择MCU接口a)8位6800/8000串口b)3/4线SPI接口c)I2C接口6.水平和垂直两个方向的屏幕保存连续滚动功能。
7.RAM写同步信号8.可编程的帧率和多重比率9.行重映射和列冲映射10.片上晶振11.两种封装 COG和COF12.工作温度范围广:‐40℃ to 85℃订购信息暂不翻译结构方框图功能块描述MCU接口选择SSD1306MCU接口由8个数据引脚和5个控制引脚组成。
引脚分配由不同的接口选择决定,详情如下表。
不同的MCU模块可以通过BS[2:0]引脚的硬件选择设置。
MCU 并口 6800系列接口不翻译MCU 并口8080系列接口不翻译MCU串口(4‐wire SPI)不翻译MCU串口(3‐wire SPI)不翻译MCU I2C 接口I2C通讯接口由从机地址为SA0,I2C总线数据信号(SDAout/D2输出和SDAin/D1输入)和I2C 总线时钟信号SCL(D0)组成。
数据和时钟信号线都必须接上上拉电阻。
波士晟0.96英寸OLED显示屏用户手册说明书
0.96inch OLEDUser Manual 1.Driver Chip SSD1306Interface 3-wire SPI、4-wire SPI、I2CResolution 128x64Display Size 0.96 inchDimension 29mm*33mmColors Yellow, BlueVisible Angle >160°Operating Temp. (℃) -20℃~70℃Storage Temp. (℃) -30℃~80℃2.We will illustrate the usage of the module with an example of 4-wire SPI mode (defaultworking mode) by connecting Waveshare Open103R development board (STM32V MCU onboard).2.1.Hardware configurationThis module provides 3 kinds of driver interfaces; they are 3-wire SPI, 4-wire SPI and I2C interface. In its factory settings, BS0/BS1 pins are set to 0/0 and 4-wire SPI is selected as default.Different working mode and pin function of the module can be set by hardware selection on BS0/BS1 pins. (Notice: In this operation, welding is required. Any changes under no guidance from Waveshare will be considered as a waiver of warranty).Table 1: Working mode setting122.2.Software configurationOpen the project file .\IDE\ OLED.uvproj in Keil, navigate to the following text, delete the ‘//’ (Double slash) before #define INTERFACE_4WIRE_SPI After compiling successfully, download the project to Open103R development board. Note: You should delete the ‘//’ (Double slash) corresponding to the mode selection2.3. Hardware connectionsConnect module to the SPI2 interface of Open103R development board, power up. OLED displays information as Figure 1 shows.Figure 1: OLED information display3. 4-wire SPI and I2C interfaces of SSD1306 OLEDThis module provides 3 kinds of driver interfaces. We introduce 4-wire SPI and I2C interfaceshere. You can read Chap. 8.1 from SSD1306-Revision_1.1.pdf for more details.The 4-wire serial interface consists of serial clock: SCLK, serial data: SDIN, D/C#, CS#. In 4-wire SPI mode,D0 acts as SCLK, D1 acts as SDIN. For the unused data pins, D2 should be left open. The pins from D3 to D7, E and R/W# (WR#)# can be connected to an external ground.Table 2: 4-wire SPI Control pins of 4-wire Serial interfaceNote(1) H stands for HIGH in signal(2) L stands for LOW in signalSDIN is shifted into an 8-bit shift register on every rising edge of SCLK in the order of D7, D6 0D/C# is sampled on every eighth clock and the data byte in the shift register is written to the Graphic Display Data RAM (GDDRAM) or command register in the same clock.Under serial mode, only write operations are allowed.Figure 2: Write procedure in 4-wire Serial interface modeThe I2C-bus interface gives access to write data and command into the device. Please referto Figure 2 for the write mode of I2C-bus in chronological order.a)Slave address bit (SA0)SSD1306 has to recognize the slave address before transmitting or receiving any information by the I2C-bus. The device will respond to the slave address following by the slave address bit (“SA0”bit) and the read/write select bit (“R/W#” bit) with the following byte format,b7 b6 b5 b4 b6 b2 b1 b00 1 1 1 1 0 SA0 R/W#“SA0” bit provides an extension bit for the slave address. Either “0111100” or3“0111101”, can be selected as the slave address of SSD1306. D/C# pin acts as SA0 for slave address selection. “R/W#” bit is used to determine the operation mode of the I2C-bus interface.R/W#=1, it is in read mode. R/W#=0, it is in write mode.b)I2C-bus data signal (SDA)SDA acts as a communication channel between the transmitter and the receiver. The data and the acknowledgement are sent through the SDA.It should be noticed that the ITO track resistance and the pulled-up resistance at “SDA” pinbecomes a voltage potential divider. As a result, the acknowledgement would not be possible to attain a valid logic 0 level in “SDA””SDAIN” and “SDAOUT” are tied together and serve as SDA. The “SDAIN” pin must be connected to act as SDA. The “SDAOUT” pin may be disconnected. When “SDAOUT” pin is disconnected, the acknowledgement signal will be ignored in the I2C-bus.c)I2C-bus clock signal (SCL)The transmission of information in the I2C-bus is following a clock signal, SCL. Each transmission of data bit is taken place during a single clock period of SCL.Table 3. I2C I2C-bus data format1)The slave address is following the start condition for recognition use. For the SSD1306, the slaveaddress is either “b0111100” or “b0111101” by changing the SA0 to LOW or HIGH (D/C pin acts as SA0).2)The write mode is established by setting the R/W# bit to logic “0”43)An acknowledgement signal will be generated after receiving one byte of data, including theslave address and the R/W# bit.4)After the transmission of the slave address, either the control byte or the data byte may be sentacross the SDA. A control byte mainly consists of Co and D/C# bits following by six “0” ‘s.a)If the Co bit is set as logic “0”, the transmission of the following information will containdata bytes only.b)The D/C# bit determines the next data byte is acted as a command or a data. If the D/C# bitis set to logic “0”, it defines the following data byte as a command. If the D/C# bit is set tologic “1”, it defines the following data byte as a data which will be stored at the GDDRAM.The GDDRAM column address pointer will be increased by one automatically after eachdata write.5)Acknowledge bit will be generated after receiving each control byte or data byte.5。
DS1306中文
特点:1、实时时钟计数秒、分、时、周、日、月、年,一年闰年补偿有效期至2100,96字节的非易失性RAM的数据存储,Day报警的两个时间 - 可编程几秒钟,几分钟,几小时,并组合一周中的天。
2、1 Hz和32.768 kHz的时钟输出3、串行接口支持摩托罗拉串行外设接口(SPI)串行数据端口或标准的3线接口4、突发模式读取/写入连续时钟/ RAM地址5、双电源引脚初级和备用电源,可选的涓流充电输出到备份,供应2.0 - 5.5V操作,可选的工业温度范围-40°C至+85°C6、可在空间效率的20引脚TSSOP封装包说明:1、可通过简单串行口与单片机通信;2、可提供秒、分、时、星期、日、月、年的信息;3、每月的天数和闰年的天数可自动调整;4、可通过 AM/PM 指示决定采用 24 或 12 小时格式;5、提供96字节非易失性RAM,用于数据存储。
6、VCCIF允许DS1306接2路电源和一个备用电池电源,其中VCC2可编程涓流充电;7、DS1306工作范围电源范围2.0~5.5V;8、两路报警时间,可自由编程组合;9、提供1Hz和32KHz时钟输出;10、提供标准的4线和标准的3线接口SPI接口,可一次传输多个字节;引脚:下图为DS1306的引脚引脚说明:VCC1 - 主电源引脚。
VCC2 - 次级电源引脚。
可使用涓流充电,充电系统能量源连接到该管脚。
VBAT - 电池输入,标准3伏锂电池或其它电源(不能充电)。
VCCIF - 确定使用哪路电源;SERMODE-串行接口模式选择,当连接到GND,3线通信。
当连接到VCC,4线通信;SCLK - 同步时钟源;SDI - 当选择4线通信,SDI 引脚是串行数据输入总线。
当选择3线通信,该引脚必须连接到SDO 引脚(SDI 和绑在一起SDO 引脚功能作为一个单一的I / O 引脚)。
SDO - 当选择4线通信,SDO 引脚是串行数据输出总线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
果就是 SDA 上的应答可能不能达到有效的逻辑 0。 SDAin 和 SDAout 绑定到了一起作为 SDA。SDAin 引脚必须连接到 SDA。SDAout 引脚可以 不连接。当 SDAout 引脚不连接,应答信号将会被 I2C 总线忽略。 c. I2C 总线时钟信号 SCL I2C 总线上的信息传输任务是随着一个时钟信号的,SCL。每个数据位的传输任务发生在 SCL 的单个的时钟周期中。
Tie LOW
NC
SDIN SCLK Tie LOW
CS# Tie
RES#
LOW
Tie LOW
NC
SDIN SCLK Tie LOW
CS# D/C# RES#
Tie LOW
SDAout SDAin SCl
Tie LOW
SA0
RES#
MCU 并口 6800 系列接口
不翻译
MCU 并口 8080 系列接口
11. 两种封装 COG 和 COF
12. 工作温度范围广:‐40℃ to 85℃
订购信息
暂不翻译
结构方框图
功能块描述
MCU 接口选择
SSD1306MCU 接口由 8 个数据引脚和 5 个控制引脚组成。引脚分配由不同的接口选择决定, 详情如下表。不同的 MCU 模块可以通过 BS[2:0]引脚的硬件选择设置。
4. 嵌入式 128 * 64 位 SRAM 显示缓存
5. 引脚选择 MCU 接口
a) 8 位 6800/8000 串口
b) 3/4 线 SPI 接口
c) I2C 接口
6. 水平和垂直两个方向的屏幕保存连续滚动功能。
7. RAM 写同步信号Βιβλιοθήκη 8. 可编程的帧率和多重比率
9. 行重映射和列冲映射
10. 片上晶振
就是命令。如果 D/C#位设为 1,下一个数据就是数据,将会存在 GDDRAM 中。 GDDRAM 列地址指针将会在每次数据写之后自动加 1.
6. 应答位将会在接收到每个控制字节或数据字节之后发生 7. 写模式会在用了停止条件之后结束。停止条件:将 SDA 从低拉高,而 SCL 保持高。
请注意数据位的传输是有限制的 1. 数据位,在每个 SCL 脉冲阶段传输,必须在时钟脉冲高周期内保持稳定状态。可以参考
特性
1. 分辨率:128 * 64 点阵面板
2. 电源:
a) VDD = 1.65V to 3.3V
用于 IC 逻辑
b) VCC = 7V to 15V
用于面板驱动
3. 点阵显示
a) OLED 驱动输出电压,最大 15V
b) Segment 最大电流:100uA
c) 常见最大反向电流:15mA
d) 256 级对比亮度电流控制
简介
SSD1306 是一个单片 CMOS OLED/PLED 驱动芯片可以驱动有机/聚合发光二极管点阵图形显 示系统。由 128 segments 和 64 Commons 组成。该芯片专为共阴极 OLED 面板设计。 SSD1306 中嵌入了对比度控制器、显示 RAM 和晶振,并因此减少了外部器件和功耗。有 256 级亮度控制。数据/命令的发送有三种接口可选择:6800/8000 串口,I2C 接口或 SPI 接口。 适用于多数简介的应用,注入移动电话的屏显,MP3 播放器和计算器等。
引脚 总线接口 8‐bit 8080 8‐bit 6800 3‐wire SPI
4‐wire Spi I2C
Data/Command 接口
控制信号
D7 D6 D5 D4 D3 D2
D1
D0
E
R/W# CS# D/C# RES#
D[7:0]
RD# WR#
CS# D/C# RES#
D[7:0]
E
R/W# CS# D/C# RES#
不翻译
MCU 串口(4‐wire SPI)
不翻译
MCU 串口(3‐wire SPI)
不翻译
MCU I2C 接口
I2C 通讯接口由从机地址为 SA0,I2C 总线数据信号(SDAout/D2 输出和 SDAin/D1 输入)和 I2C 总线时钟信号 SCL(D0)组成。数据和时钟信号线都必须接上上拉电阻。RES#用来初始化设 备。 a. 从机地址位(SA0)
下面的图示。除了开始或停止条件,数据线只能在 SCL 为 LOW 的时候转换状态。 2. SDA 和 SCL 都必须接外接上拉电阻
3. 写模式的建立是通过设置 R/W#为到逻辑 0 实现的。 4. 应答位信号将在接收到一个字节的数据后发生包括从机地址和 R/W#位。可以参考下面
的应答位信号的图示。应答位的定义是在应答位相关的时钟脉冲的高周期中把 SDA 线拉 低。 5. 传输完从机地址之后,控制字节或数据字节开始通过 SDA 传输。一个控制字节主要由 CO 和 D/C#位后面再加上六个 0 组成的。 a) 如果 Co 为设为逻辑 0,,后面传输的信息就只包含数据字节。 b) D/C 为决定了下个数据字节是作为命令还是数据。如果 D/C#位设为 0,下一个数据
I2C 总线写数据
I2C 总线接口提供了写数据和命令到设备的接口。关于 I2C 总线的写模式的时序请参考下图:
I2c 的写模式
1. 主机设备通过开始条件初始化数据通讯。开始条件的定义在下面的图中展示。开始条件 通过将 SDA 从高拉低而 SCL 保持高建立。
2. 从机地址紧跟着开始条件作为标志用。对于 SSD1306,从机地址可以是“b0111100”或 “b0111101”通过改变 SA0 到 LOW 或 HIGH(D/C 引脚作为 SA0)。
SSD1306 在发送或接受任何信息之前必须识别从机地址。设备将会响应从机地址,后面 跟随着从机地址位(SA0 位)和读写选择位(R/W#位),格式如下:
b7 b6 b5 b4 b3 b2 b1 b0 0 1 1 1 1 0 SA0 R/W# SA0 位为从机地址提供了一个位的拓展。0111100 或 0111101 都可以做为 SSD1306 的从 机地址。D/C#引脚作为 SA0 用于从机地址选择。R/W#为用来决定 I2C 总线接口的操作模式。 R/W# = 1,读模式。R/W# = 0 写模式 b. I2C 总线数据信号 SDA SDA 作为发送者和接受者之间的通讯通道。数据和应答都是通过 SDA 发送。 应该注意的是 ITO 轨道电阻和 SDA 引脚上的上拉电阻会变成一个潜在的电压分压器。结