4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SK6812の電圧や信号の特性についての調査

Last updated at Posted at 2020-02-21

SK6812の性能テスト

フルカラー RGB LED の SK6812 について、実際に使うとデータシートの数字から大幅に離れた電圧や信号を使っても動作したりするので、詳しく物理的な特性を調べてみた。

SK6812 

マイコンを内蔵したフルカラーLED

ピン配置及びピンの機能は以下の通りである

PIn配置.PNG
図 1 SK6812ピン配置
表 1 ピン番号と機能
ピン番号 名称 機能
1 VDD LEDへの電源供給
2 DOUT 制御信号の出力ピン
3 VSS GND
4 DIN 制御信号の入力ピン

制御方法

SK6812のDINにRGB各8bitからなる24bitの信号入力することで点灯制御が可能

24bitデータの構造は図 2のようになっている.データを転送する際はG7から順に転送を行う.

スライド5.PNG
図 2 データ構造

データの送信方法

 制御信号の送信元に近いSK6812から順にピクセル1,ピクセル2,ピクセル3,…とする.ピクセル毎24bitの制御信号をつなげて送信する.送信されてきた制御信号をピクセル1は先頭24bitのデータを抜き出し,残りを次のピクセルに2に送信する.ピクセル2も先頭24bitのデータを抜き出し次のピクセルに送信する.制御信号が80μs以上途絶えた際は以前の制御信号はリフレッシュされ,次の制御信号はピクセル1から順に割り当てられる.

制御信号

制御信号は,1bitのデータの送信時間を1.25μsとして,この時間内にHIGHとLOWを変化させる.その時,HIGH=0.3μs,LOW=0.9μsとしたとき’0’,HIGH=0.6μs,LOW=0.6μsで’1’となる.

RESET信号は80μs以上のLOW信号により認識される.

信号.png
図 3 信号'0'及び信号'1'

性能テスト

“0”と”1”を識別する境界の調査

LEDを制御する際の制約をより厳密にするために”0”と認識される信号と”1”と認識される信号の境界の調査を行った.

実験方法

RGB値をR=0,G=0,B=0で与える. SK6812が“0”と認識するHIGH=0.3125μs,LOW=0.9375μsからHIGHの時間を1クロックずつ増やしていく. 16MHz動作のArduino pro miniで実験したため1クロックは0.0625μsである.

実験結果

実験を行った結果を表 2に示す.HIGHが0.5625μsの際にLEDが白く点灯することが確認された.そのため,HIGH=0.5μs以下で”0”, HIGH=0.5625μs以上で”1”と認識されることが分かった.

表 2 認識される信号の境界の結果
HIGH(μs) LOW(μs) LEDの状態
0.3125 0.9375 消灯
0.375 0.875 消灯
0.4375 0.8125 消灯
0.5 0.75 消灯
0.5625 0.6875 点灯

スライド6.PNG

図 4 HIGH=0.3125μs時の制御信号波形とLEDの状態

スライド7.PNG

図 5 HIGH=0.5625μs時の制御信号波形とLEDの状態

信号“1”のHIGHの比率を大きくした際の認識の変化の調査

 LEDを制御する際の制約をより厳密にするために”1”と認識される信号のHIGHの比率を上げていった際にどう認識されるのか調査を行った.

実験方法

 RGB値をR=00100000(2進数),G=0,B=0で与える. SK6812が“1”と認識するHIGH=0.625μs,LOW=0.625μsからHIGHの比率を1クロックずつ増やしていく. 16MHz動作のArduino pro miniで実験したため1クロックは0.0625μsである.

実験結果

 実験を行った結果を表 3に示す.実験に使用したアセンブラの仕様上HIGHを1.00μsまでしか長くすることができなかったが,色,光量ともに変化は確認できなかった.そのため,信号”1”のHIGHを1.00μsまで長くしても問題ないことが確認された.

表 3 HIGHの比率を高くした際の認識の変化の結果
HIGH(μs) LOW(μs) LEDの状態
0.625 0.625 点灯(LED点灯色:赤)
1.00 0.25 点灯(LED点灯色:赤)

スライド8.PNG

図 6 HIGH=0.625μs時の制御信号波形とLEDの状態

スライド9.PNG

図 7 HIGH=1.0μs時の制御信号波形とLEDの状態

RESET信号の必要時間の調査

一度,LEDの制御信号を与えなおす際にRESET信号としてなにも信号を与えない時間をデータシートでは80μs必要とする.信号のRESETを安定して行うためのRESET信号の長さの調査を行った.

実験方法

 2つのLEDを点灯させる信号を送信する.LEDごとの信号の間にRESET信号挟む.このRESET信号の長さを変化させ調査.RESET信号の認識が不安定な信号長の際の挙動を目視しやすくするため点灯信号は赤,緑,青と順々に点灯させた.

実験結果

 実験結果を表 4に示す

表 4 RESET信号の時間を変化させた際の結果
RESET信号(μs) LEDの状態
~50 2つのLEDが点灯
50~70 1つ目のLED点灯,2つ目のLED点滅
70~ 1番目のLED点灯,2番目のLED消灯

RESET信号が50μs以下では認識せず,50μs以上70μs未満では2番目のLEDは点滅しており,RESET信号を認識できているときとできていないときがあるため点滅していると考えられる. 70μsでは1番目のLEDのみ点灯しており点滅も確認されなかったため正常に動作していることが確認された.そのため,正常にLEDを制御するためにはRESET信号は70μs以上の時間を必要とする.

 

制御に必要な信号の電圧値の調査

 SK6812の電源電圧を5Vとし,制御信号の電圧を低下させた際にどの程度の電圧でも制御が可能なのかの調査を行った.

実験方法

 LEDに与えるRGB値は赤,緑,青と順々に点灯するように与える(視覚的には白く発光しているように見える).FXMA2102を使用した電圧レベル変換モジュールを使用して制御信号の電圧を変化させる.制御信号の電圧を5Vから0Vに向け低下させていく.

実験結果

制御信号を2.7Vに変化させた際にLEDの点灯色が制御信号を認識しなくなったタイミングでの色で変化しなくなっていることが確認できた.そのためSK6812の電源電圧を5Vとして動作させた際は2.7V以上の電圧の制御信号で制御を行う必要がある.

スライド12.PNG

図 8 制御信号5V時のLEDの状態

スライド13.PNG

図 9 制御信号2.7V時のLEDの状態

SK6812の電圧値を変化させた際の信号電圧の変化の調査

 SK6812の電源電圧と制御信号の電圧低下させていった際のSK6812の挙動の調査を行った.

実験方法

 LEDに与えるRGB値は赤,緑,青と順々に点灯するように与える(視覚的には白く発光しているように見える).FXMA2102を使用した電圧レベル変換モジュールを使用して電源電圧と制御信号の電圧を変化させる.電源電圧と制御信号の電圧を5Vから0Vに向け低下させていく.

実験結果

 電源電圧と制御信号を2.7V以下にした際もLEDは正常に動作していることを確認.しかし,青LEDは約2.5V,緑LEDは約2.0V,赤LEDは約1.9Vで光量が確認できなくなった.2.7V以下に電圧を落としたとしてもSK6812は制御信号を認識して動作しているが,LEDを点灯させるための電圧が足りなくなっていると考える.

スライド14.PNG

図 10 電源電圧,制御信号5V時のLEDの状態

スライド15.PNG

図 11 電源電圧,制御信号2.5V時のLEDの状態

スライド16.PNG

図 12 電源電圧,制御信号2.0V時のLEDの状態

スライド17.PNG

図 13 電源電圧,制御信号1.9V時のLEDの状態

(団員F)

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?