由于MCU不支持SPI模式双沿采样,并且只能控制时钟线空闲时状态,并不能控制数据线空闲时状态(配置好后第一次为高,紧接着最后发送的数据是什么数据线就为什么状态)所以本次驱动MY9221用IO方式模拟驱动。
以下是MY9221介绍
http://wenku.baidu.com/view/5cd5a4dcad51f01dc281f1bc.html
根据手册内容,在发送灰度数据之前需发送16bit命令资料
依次是 CMD[15:11]00000 默认
CMD[10] 1 快速电流模式
CMD[9:8]00 8bit灰度模式
CMD[7:5] 默认频率
CMD[4] 0 PWM自动输出
CMD[3]0 频率内部震荡
CMD[2] 0 LED驱动
CMD[1:0]0 0 结束
其余为196BIT灰度数据 MSB先发 RGB的顺序 用的方法为根据灰度数据1 0控制IO置高置低即可, 每次操作后切换另一个IO的状态。
在结束后 需要拉低数据和时钟线 12US (Tstart) 然后为4个跳变沿 高电平时间大于70NS 低电平时间大于230ns 最后拉低数据和时钟线超过200NS+芯片数*10ns 即可。
至此驱动MY9221成功
LED芯片 点亮后的效果 酷6上找的http://v.ku6.com/show/R1lZ4SpT8tikC4s0.html
另外想问 怎样贴图?
|