器件:TM1623
1 tm1623
TM1623是带按键扫描接口的LED驱动控制器;为了驱动数码管量身定制的,顺带也可以直接驱动led;tm1623也20岁了;
按键驱动最大支持10*3矩阵,即30个按键;
led驱动支持11段7位-14段4位,8级辉度可调;常见数码管是8段,从11段开始那不是摆明浪费吗?
2 引脚定义
左起逆时针排序,数据引脚,Kx键扫值锁存,SEGx和KSx为P管开漏输出;右起顺时针GRIDx为N管开漏输出;
SPI的DIN输出数据时为开漏输出,所以建议上拉个10k电阻;手册建议DIN和DOUT连接在一块用;
SEG和GRID是怎么让led亮的呢?就像IO电路,led接到P管和N管分压电阻点的上面,这样就只有P管和N管都通的时候才亮;
KSx和Kx又是如何和扫描键值的呢?P管搭配键扫值锁存寄存器,键扫寄存器扫一遍需要两个显示周期约10ms;
3 指令控制
tm1623的cmd可以分为4种cmd,以cmd-bit[7:6]来指定
[7:6] 00b 显示模式设置 >> 段位设置;led的设置;
[7:6] 01b 数据命令设置 >> 读写模式和地址模式设置;led驱动为写模式;键扫为固定地址读模式;
[7:6] 11b 地址设置 >> 显示寄存器的地址映射;led的设置;
[7:6] 10b 显示控制设置 >> 显示开关和亮度设置;led的设置;
  

led驱动则按"地址增加模式"或"固定地址模式"根据datasheet-page10的时序来写数据;在page11还给了两个流程图;
键值扫描则直接cmd<0x42>+ [data1-5] 来读数据;扫描周期8ms内只有第一次按键有效;
所以这里还有几个指令的截图,我懒的截,本小结要结合p10-11看;
4 LED段位操作
段:segment;位:grid;seg只能接LED阳极,grid只能接LED阴极,电流始终由seg流向grid;(段位+-)
显示寄存器的一个地址可以操作8个seg段数据;不论共阴还是共阳,要点亮对应位段,则向如下对应地址bit写1;
比如想点亮位段seg1-grid1,那么就向0xc0的bit0写1;
显示寄存器的上电默认值为不定值,数码管会显示乱码;所以建议上电后向地址0xc0-0xcd写入数据0;
  
5 键盘扫描
  
6 典型电路
没啥,可以看看,具体见手册;
7 code
后续看看,会不会补充;
8 小结
这个器件也没啥,其实花两个小时完整看一遍就可以了,因为我整了整,所以多花了三四个小时;
控制led通过SEGx和GRIDx的阵列来批量控制led,猜测像IO电路那样,Led排在P管和分压电阻点之间;
键盘扫描就是P管+Kx数值锁存寄存器;按键排在P管和锁存器之间;扫描一遍要两个周期,约8ms,期间只会锁存一次按键值;
SPI数据上升沿有效,下降沿变化;写就是写LED,读就是读键扫;cmd见p10-11;
这个器件的主要学习点在于理解P管开漏和N管开漏的电路用法;
                    
                
                
            
        
浙公网安备 33010602011771号