king_zhang的专栏

首页博文目录订阅
正 文

圣邦微双色温闪光灯驱动:SGM3784 调试方法

(2015/11/19 11:00)
标签:圣邦微双色温闪光灯驱动:SGM3784 调试方法

.时序


 

 

 

 

 

 

 

 

 

 

 


正确的时序应该遵循以下原则:


 

 

 

 

 

 


具体的程序设计可以参考下面的流程:

 

Torch模式

1.     上电,保持En=0, Strobe=0Gpio=0

2.     En=1

3.     设置0x01, 0x02, 0x03寄存器

R(0x01)=0xF8

R(0x02)=0xFF

R(0x03)=0x48

4.     设置0x08, 0x0B电流寄存器

5.     设置0x0F寄存器

6.     Gpio=1

7.     灯亮

如果想此时改变电流,则可以直接重新写0x08,0x0B寄存器,可以做到动态调节双色温

 

Flash模式

进入Flash有两种方式:

a.     Torch -àFlash

接着Step 7, 可以直接把Strobe拉高,然后再把Gpio拉低(这个过程不要反了),可以直接进入Flash模式,此时不断刷新0x06, 0x09寄存器,可以改变灯的亮度。

   如果想回到Torch模式,可以先把Gpio拉高,再把Strobe拉低,就回到了Torch模式

b.     1. 先把0x0F寄存器写成0x00,注意这里这么做的原因:0x01, 0x02寄存器在系统工作过程中不允许修改,当把0x0F写成0x00,系统被软关闭,此时可以修改0x01, 0x02寄存器。

2. Gpio=0

3. R(0x01)=0xFC

R(0x02)=0xCF

R(0x03)=0x48

4. 然后再写0x06, 0x09寄存器

5. 设置0x0F寄存器

6. Strobe=1

7. 灯亮

此时如果想调整灯的亮度,可以刷新0x06, 0x09寄存器来实现。

 

.失效模式的处理

针对关键故障,如输出过压、闪光超时、LED输出短路和过温等状况,ADP1660内置保护特性。如果发生关键故障,寄存器0x0F中的LED1_ENLED2_EN位就会置0,驱动器关断。故障信息寄存器(寄存器0x0C)中会设置相应的故障位。处理器可以通过I2C接口读取故障信息寄存器,确定故障状况的性质。读取故障寄存器时,故障位清0。如果发生非关键性事件,则LED驱动器会继续工作。非关键性故障包括TxMASK事件、达到直流或软电感电流限值。故障信息寄存器(寄存器0x0C)中会设置相应的信息位,直到处理器读取寄存器。

这里需要注意一点,一旦失效寄存器(0x0C)内的标志位被写入1,则只能通过读取0x0C寄存器或者重新启动系统才可以清除掉0x0C内的标志位。如果标志位不被清除,关键性故障标志位会阻止系统进入工作模式。

 

. 寄存器内容易混淆的设置

 

1. 0x02寄存器的第7R02<7>

R02<7>=0 : Flash, Torch, TxMASK模式全部结束后,工作模式回到000,同时R0F<1:0>=<0 0>

R02<7>=1: Flash, Torch, TxMASK模式全部结束后,工作模式不变,R0F<1:0>=<0 0>

 

2. R02<5:4>寄存器设置GPIO管脚的定义

  这些位配置GPIO引脚。

00 = 高阻抗(默认值)

01 = 手电筒模式

10 = TxMASK操作模式

11 = 手电筒模式,无8 ms去毛刺滤波器

注意在Torch模式,需要用到GPIO的管脚来控制进出Torch模式,此时GPIO必须要定义,否则默认是高阻,它无法接收输入信号。

 

3. R03<7>寄存器关于软电感峰值限流的定义

  0 = 使能软电感峰值限流

1 = 禁用软电感峰值限流(默认值)当达到电感峰值电流限值

   如果使能软电感峰值限流,那么当触发电流峰值限流时,只是阻止峰值电流继续上升,但不会将关键失效信息写入0x0C.

   如果禁用软电感峰值限流,当触发电流峰值限流时,0x0C会被写入关键失效标志位,同时0x0F<1:0>=<0 0>,系统关闭。

 

4. R03<6>寄存器关于动态OVP的定义

   R03<6>=0,禁用动态OVP,一旦触发OVP,则0x0C写入关键失效标志位,0x0F<1:0>=<0 0>,系统关闭。

   R03<6>=1,使能动态OVP,阻止VOUT继续上升,而且不关闭系统。

   注意:在固定5V输出模式,没有OVP功能。

 

5. R04<4:3>

   00 = 窗口禁用;整个闪光期间使能低电量检测

01 = 窗口使能1 ms

10 = 窗口使能2 ms

11 = 窗口使能5 ms(默认值)

这里窗口的定义是:启动Flash模式,从Flash启动算起,在规定窗口时间内发生的LBP才记为有效。

 

6. R0F<1:0>

   这个寄存器控制两个通道使能,注意这个寄存器的刷新要遵循以下原则:

  

 

 

  

.在工作过程中刷新Mode和电流寄存器的值

   1. Flash模式执行过程中,不允许通过刷新R01<2:0>在修改sgm3784的工作模式。其它模式允许在执行过程中刷新R01<2:0>来改变工作模式。

   2. 电流寄存器允许实时刷新。

 

.TxMask模式

   一个人拿着手机正在照相,此时已经开启了闪光模式,闪光灯已经亮了,与此同时,正好来了电话,手机铃声响了。如果电池同时给闪光灯和Audio Buffer供电,就会因为供电电流过大导致电压下降,可能会引起故障。

   引入TxMASK模式就是为了避免这种情况的发生,当Audio开启前,CPU会发送指令给SGM3784,闪光电流立即被切换到了TxMASK寄存器内的电流。

     TxMASK可以分为两种方式,一种方式是用GPIO控制两路LED同时切换到TxMASK电流,另外一种是通过GPIOSTROPE分别控制LED1LED2切换TxMASK电流。

  . STROPE是可以省略的  

   STROPE主要是为Flash服务的,唯一的设置是在0x01寄存器,

   参考寄存器表中的0x01<5:3>的设置。

   如果Flash模式被设置成软触发,Flash的启动是不受STROBE控制的,只要0x0F<1:0>使能有效,Flash可以直接执行。


评 论
还没有网友评论,欢迎您第一个评论!
博 主
进入king_zhang的首页
博客名称:张坤-希荻微电子
日志总数:124
评论数量:345
访问次数:501924
建立时间:2012/7/16 15:15
导 航
公 告
希荻微电子有限公司 http://www.halomicro.com/
评 论
链 接