找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 749|回复: 2
打印 上一主题 下一主题
收起左侧

谁有SEPS144A的驱动?PDF内有驱动程序,但看不懂

[复制链接]
跳转到指定楼层
楼主
ID:1091661 发表于 2024-1-2 19:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,有PDF,PDF内有驱动程序,但看不懂,那位能给出详细的驱动或兼容的芯片程序?

内部驱动如下:
各位看看驱动像SSD1351吗,SEPS114也是彩色OLED驱动芯片
void init_SEPS114A(void)
{
/* 待机关闭 */
comm_write(0x14, 0x00);
delay(1); // wait for 1ms
/* 设置振荡器操作 */
comm_write(0x0F, 0x00); // using external resistor and internal OSC
/* 设置帧速率 */
comm_write(0x1A, 0x02); // frame rate : 90Hz
/* 设置MCU接口 */
comm_write(0x0D, 0x01); // MPU External interface mode, 16bits
/* 设定放电时间 */
comm_write(0x18, 0x08); // Discharge time : normal discharge
/* 设置峰值脉冲延迟 */
comm_write(0x16, 0x05);
/* 设置峰值脉冲宽度 */
comm_write(0x3A, 0x05);
comm_write(0x3B, 0x05);
comm_write(0x3C, 0x05);
/* 设置预充电电流 */
comm_write(0x3D, 0x1F);
comm_write(0x3E, 0x1F);
comm_write(0x3F, 0x1F);
/* 设置列电流 */
comm_write(0x40, 0x5F);
comm_write(0x41, 0x5F);
comm_write(0x42, 0x5F);
/* 设置行扫描方向 */
comm_write(0x09, 0x00); // 列 : 最大 0 →,行 : 0 → 最大
/* 设置行重叠 */
comm_write(0x48, 0x00); // 仅带隙
/* 设置扫描关闭级别 */
comm_write(0x49, 0x04); //VCC_C*0.75
/* 设置行扫描模式 */
comm_write(0x13, 0x00); // 备用扫描模式
/* 设置显示模式控制 */
comm_write(0xE5, 0x00); //SWAP:RGB,降低电流:正常,DC[1:0]:正常
/* 设置内存读/写模式 */
comm_write(0x1D, 0x00);
/* 设置存储区(地址)写入显示数据 */
comm_write(0x34, 0x00);
comm_write(0x35, 0x5F);
comm_write(0x36, 0x00);
comm_write(0x37, 0x5F);
/* 设置内存接入点 */
comm_write(0x38, 0x00);
comm_write(0x39, 0x00);
/* 设置面板的活动显示区域 */
comm_write(0x30, 0x00);
comm_write(0x31, 0x5F);
comm_write(0x32, 0x00);
comm_write(0x33, 0x5F);
/* 显示开启 */
comm_write(0x02, 0x01);
}

/* 将命令写入 SEPS114A 的寄存器
当命令写入SEPS114A寄存器时,控制信号 A0 指示电流
data 是索引或命令。在本例中,SEPS114A的 A0 引脚连接到地址线 2 A2。和
访问地址0x80xx_xxxx,控制信号 CS 变为“低电平”。
因此,当用户将数据(0x02)写入下面定义的DISP_COM时,A0信号和CS信号变为“低电平”
SEPS114A表示此数据(0x02)为索引。
当 data(0x01) 写入 DISP_DATA 时,A0 为“high”,CS 为“low”,因此此 data(0x01) 为命令。 */

#define DISP_COM *((volatile unsigned *)0x80000000)
#define DISP_DATA *((volatile unsigned *)0x80000004) /* A2 : OLED A0 Pin */
void comm_write(unsigned char index, unsigned char command)
{
DISP_COM = index; // 索引写入
DISP_DATA = command; // 命令写入
}

/*将显示数据写入数据RAM
该例程是通过 16 位总线接口将图像数据 (96*96) 写入 DDRAM。首先,我们应该将
DDRAM接入端口(0x08)。*/

#define HEIGHT 96
#define WIDTH 96
unsigned int img_data[HEIGHT*WIDTH]; // 图像数据缓冲区
void image_write(void)
{
unsigned i;
DISP_COM = 0x08; // 设置 DDRAM 接入端口
for(i=0;i++;i<HEIGHT*WIDTH)
DISP_DATA = img_data[ i]; // 将数据写入 DDRAM
}

/*RGB接口示例程序
该程序是6位RGB接口的示例程序,通过SPI控制SEPS114A。*/

/* 选择RGB数据格式,设置RGB接口端口的初始状态 */
void init_rgbif(void)
{
reg_write_spi(0xE0, 0x21); /* RGB 6位接口 */

out_signal = 1<<ENABLE|1<<HSYNC|1<<VSYNC|1<<DOTCLK;
OUTPORT = out_signal;
}
void rgb_display(uint16_t red, uint16_t green, uint16_t blue)
{
unsigned short i, j;
/* SEPS114A初始化 */
// 待办事项 :: 初始化SEPS114A(显示大小、内存区域、帧率等.......)
// 使用“reg_write_spi()”功能(SPI接口)进行初始化
init_rgbif();
signal_assert(VSYNC, 0);
signal_assert(HSYNC, 0);

signal_assert(DOTCLK, 0);
signal_assert(DOTCLK, 1);
signal_assert(VSYNC, 1);
signal_assert(HSYNC, 1);

signal_assert(ENABLE, 0);
/* 内存(图形内存)端口设置 */
INDEXDATA = 0x08;
/* 传输第一行数据 */
while(1)
{
signal_assert(VSYNC, 1);

for(i=0;i<96;i++)
{
signal_assert(HSYNC, 1);

for(j=0;j<96;j++)
{
CONTROLDATA = red<<1;
signal_assert(DOTCLK, 0);
signal_assert(DOTCLK, 1);

CONTROLDATA = green<<0;
signal_assert(DOTCLK, 0);
signal_assert(DOTCLK, 1);

CONTROLDATA = blue<<1;
signal_assert(DOTCLK, 0);
signal_assert(DOTCLK, 1);
}

signal_assert(HSYNC, 0);
}

signal_assert(VSYNC, 0);
}
}
void reg_write_spi(uint32_t addr, uint32_t data)
{
spi_write(INDEX, addr);
spi_write(COMMAND, data);
}
void spi_write(uint8_t ch, uint32_t data)
{
unsigned char i;
unsigned short temp=0;
signal_assert(CS, 0);
if(ch == INDEX) signal_assert(A0, 0);
else signal_assert(A0, 1);
for(i=0;i<8;i++)
{
temp = data&(0x80>>i);

signal_assert(SCL, 0);
if(temp) signal_assert(SDI, 1);
else signal_assert(SDI, 0);

signal_assert(SCL, 1);
}
delay(5);
signal_assert(CS, 1);
delay(10);
}

DocumentsSEPS114A.pdf

412.03 KB, 下载次数: 7

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2024-1-3 00:37 | 只看该作者
没有通用硬件平台,不可能有通用驱动的。只能自己写,你还是对软硬件先建立起基本的概念先,不要问这种问题了。
回复

使用道具 举报

板凳
ID:23640 发表于 2024-1-4 14:20 | 只看该作者
上面的驱动先用起来,可能需要做点改动,搞清楚驱动的步骤就行,再不然找芯片厂支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表