查看: 2513  |  回复: 3
UG5664驱动问题讨论求助
猥琐禽兽
2
主题
5
回复
发表于2018-07-03 15:43:22 | 只看该作者
1# 电梯直达

去年在立创商城买的两个UG5664,一个白光一个绿光,用STM8S208驱动,屏除了能点亮外,没有任何反应,就是屏能显示,但改不了任何显示内容,如下面照片的样子:

点击查看大图

硬件连接采用6800接口,接口定义如下:


#DEFINE    DAT     PI_ODR
#DEFINE    WR      PH_ODR,#0       ;SSD1322读写输入,1为读,0为写
#DEFINE    RD      PH_ODR,#1       ;SSD1322使能信号输入E
#DEFINE    DC      PH_ODR,#2       ;SSD1322命令/数据选择输入,1为数据,0为命令
#DEFINE    CS      PH_ODR,#3       ;SSD1322片选输入,低电平有效
#DEFINE    RST     PD_ODR,#7       ;SSD1322复位输入,低电平复位

原理图: 点击查看大图

驱动流程(嗯,说驱动流程就是我驱动程序的步骤咯,我习惯用汇编,所以很多人可能不习惯,就整理成流程了)如下:

;初始化

RST=0

100mS

RST=1

100mS

Write_Command 0XFD     ;写命令

Write_DATA 0x12           ;写数据

Addr (0x1C,0x5B,0x00,0x3F)

Write_Command 0xA0

Write_DATA 0x14

Write_DATA 0x11

Write_Command 0xAE

Write_Command 0xb3

Write_DATA 0x91

Write_Command 0xCA

Write_DATA 0xA2

Write_Command 0xA1

Write_DATA 0x00

Write_Command 0xb3

Write_DATA 0x00

Write_Command 0xA6

Write_Command 0xB5

Write_DATA 0x00

Write_Command 0xAB

Write_DATA 0x00

Write_Command 0xB4

Write_DATA 0xA0

Write_DATA 0xFD

Write_Command 0xC1

Write_DATA 0xAF                                ;亮屏

Write_Command 0xC7

Write_DATA 0x0F

Write_Command 0xB8

Write_DATA 0x0C

Write_DATA 0x18

Write_DATA 0x24

Write_DATA 0x30

Write_DATA 0x3C

Write_DATA 0x48

Write_DATA 0x54

Write_DATA 0x60

Write_DATA 0x6C

Write_DATA 0x78

Write_DATA 0x84

Write_DATA 0x90

Write_DATA 0x9C

Write_DATA 0xA8

Write_DATA 0xB4

Write_Command 0x00

Write_Command 0xB1

Write_DATA 0xE2

Write_Command 0xD1

Write_DATA 0xA2

Write_DATA 0x20

Write_Command 0xBB

Write_DATA 0x1F

Write_Command 0xB6

Write_DATA 0x08

Write_Command 0xBE

Write_DATA 0x07

Write_Command 0xA6

Write_Command 0xAF

addr (1c,5b,00,3f)

Write_Command 0x5C

(

Write_DATA 0xnn 循环写入若干数据

)

;设定地址

ADDR

Write_Command 0x15

Write_DATA a

Write_DATA b

Write_Command 0x75

Write_DATA c

Write_DATA d


下面是今天才弄的汇编代码:

OLEDINIT:
BRES     RST
CALL     DELAY100
BSET     RST
CALL     DELAY100          ;复位芯片
LD       A,#$0FD
CALL     OLEDWC            ;解锁命令
LD       A,#$012
CALL     OLEDWD            ;打开MCU通讯,12接收,16拒绝

LD       A,#$0AE
CALL     OLEDWC

LD       A,#$0B3
CALL     OLEDWC
LD       A,#$091
CALL     OLEDWD

LD       A,#$0CA
CALL     OLEDWC
LD       A,#$03F
CALL     OLEDWD

LD       A,#$0A2
CALL     OLEDWC
LD       A,#$000
CALL     OLEDWD

LD       A,#$0A1
CALL     OLEDWC
LD       A,#$000
CALL     OLEDWD

LD       A,#$0A0
CALL     OLEDWC
LD       A,#$014
CALL     OLEDWD
LD       A,#$011
CALL     OLEDWD

LD       A,#$0B5
CALL     OLEDWC
LD       A,#$000
CALL     OLEDWC

LD       A,#$0AB
CALL     OLEDWC
LD       A,#$001
CALL     OLEDWD

LD       A,#$0B4
CALL     OLEDWC
LD       A,#$0A0
CALL     OLEDWD
LD       A,#$0FD
CALL     OLEDWD

LD       A,#$0C1
CALL     OLEDWC
LD       A,#$09F
CALL     OLEDWD

LD       A,#$0C7
CALL     OLEDWC
LD       A,#$00F
CALL     OLEDWD

; LD       A,#$0B9
; CALL     OLEDWC
LD       A,#$0B9
CALL     OLEDWC
LD       A,#$0E2
CALL     OLEDWD

LD       A,#$0D1
CALL     OLEDWC
LD       A,#$082
CALL     OLEDWD
LD       A,#$020
CALL     OLEDWD

LD       A,#$0BB
CALL     OLEDWC
LD       A,#$01F
CALL     OLEDWD

LD       A,#$0B6
CALL     OLEDWC
LD       A,#$008
CALL     OLEDWD

LD       A,#$0BE
CALL     OLEDWC
LD       A,#$007
CALL     OLEDWD

; CALL     CLEAROLED
LD       A,#$0A6
CALL     OLEDWC
LD       A,#$0A9
CALL     OLEDWC
LD       A,#$0AF
CALL     OLEDWC
RET

包括前述代码、流程图,以及在网上找的很多大同小异的代码,以及立创商城商品连接上的数据手册示例代码,所有的都试过了,结果都一样,要吗纯粹不亮,要吗就是像前面照片一样的显示结果,就是整屏的乱码,然后没办法更改,包括写0到RAM,写FF到RAM,设置全亮全灭命令(A4-A7命令),显示结果都没任何变化,CPU降频到128分频降速驱动,更改初始化各个命令顺序,显示地址设定(行列范围设定)放在初始化程序内部、外部,所有可能全部都试过了,结果完全一样,要吗无显示(黑屏),要吗就显示照片中的乱码没法更改。前面照片中的PCB是公司项目中使用的,如照片中显示,在5664下面还有一个是连接LCD的,同样一批PCB,同样的硬件参数,LCD显示完全正常,LCD采用的是JLX256128-COG,控制端口、数据端口复用(不是同时装两块屏,同样的6800时序),LCD也是3V的,CPU是5V的,所以控制、数据端口都是通过222排阻上拉到3.3V显示电源,而端口都是设置的开漏输出,LCD能正常显示排除方案即硬件问题。该PCB还有8个LED指示灯,所以在前面初始化流程中还试过在每个命令数据写入后显示流程代码,结果在C1命令后的参数AF写入后屏被被点亮了,于是又更换写命令和写数据(全部更换、部分更换都试过)时序,结果还是一样。


前几天联系立创客服时提过该问题,但客服说不太清楚这个,需要联系供应商,因此又自己搞了几天,各种可能都试过了,结果还是一样,确实没办法了,所以在此提出,看看有哪位大神用过这个模块,给点提示,望能解决这个问题。同时希望商城及供应商参与讨论,谢谢!

另外与数据手册差异很大的一点就是前面原理图中的R18,就是SSD1322数据手册中P23页中的R1,SSD1322数据手册中标的1M;同时也是商城提供的UG5664数据手册上的P11页的参考原理图上的R1,而在UG5664中R1为680K,但实际上用这两个参数屏都点不亮,我现在这个亮度(请参考前面照片),现在的R1阻值为63.4K。

哎,这个帖子都写了一个月了还发不了,今天再发试试?

猥琐禽兽
2
主题
5
回复
发表于2018-07-09 10:43:07   |  只看该作者
2#
说明一下:该两片产品货号分别是C90693C90694,购买日期(下单时间)为2017年9月9日12:10,数量都是1PCS。前面定义的DAT为1个8位数据端口,采用PI开漏输出,2.2K电阻上拉到3.3V电源。
立创工程小李
5
主题
110
回复
发表于2018-07-09 11:32:57   |  只看该作者
3#

您好,楼主,我这边能联系了供应商的技术,他说您这个现象是数据没写进去。这种现象表明硬件连接,通信什么都是正常的了,现在是初始化代码都是正常在跑的了,他让你查一下写数据的方式就可以了。

另外 ,在写数据时是需加这条指令的
Write_Command 0x5C
这个是打开接收的。

猥琐禽兽
2
主题
5
回复
发表于2018-07-09 12:00:55   |  只看该作者
4#

@立创工程小李:你说的这个就是写RAM命令啊,我前面流程里面有的,代码里面都有,初始化完成后,设定显示行列地址,然后设置写RAM命令,就是5C命令,接下来写一定量的显示数据,但是显示结果都没有任何变化,包括改变显示数据本身即每次写入的数据,包括更改行列地址及范围等,都试过的! 

这个是前面流程里面的,包含写RAM命令,然后才是写RAM!

 

这个是最新的代码截图,在设定地址子程序里面,设定完成后写入写数据(RAM命令),主程序在调用该地址设定子程序后,写入若干显示数据,结果还是那样,即屏幕没有任何变化,改变显示数据(00H\FFH及其他)、改变地址范围区域、改变写入的显示数据量,增加操作间延时,降低CPU主频,全都试过,结果完全一样,从第一次点亮到现在几个月了,显示内容就没变化过!另外有一次在网上找到一个文档,好像是说在写数据命令前需要增加一个扩展指令30H,这个也试过了,还是没用。扩展指令30H的说法在UG5664、SSD1322的文档里面都没查到!您看能否让供应商提供一个标准的初始化流程程序共参考?只需要初始化、单色及灰度模式、清屏即可(改变数据可实现全屏亮、灭即可)!

上面源码截图中的OLEDWC是6800写命令子程序,OLEDWD是6800写数据子程序。!谢谢


主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部