2017年10月3日火曜日

HUB75メモ

 HUB75の制御はRGB各2本の計6本と、アドレス(3bitあるいは4bit)、それからCLKとLAT、BLANKの計12本あるいは13本を使用する。

 CLKは立ち上がりでRGBをキャプチャする。CLKがHの状態でRGBを動かしても反映されない。
 LATはHの時にキャプチャされ、Lの時は動かない。実質立ち下がりエッジでキャプチャ。ただしLATがHの時はシフトレジスタからLEDドライバへ常に反映されるので、基本的にLATを動かす時はBLANKをHにして非表示にしておく必要がある。
 LATがLならLEDは変化しないので、BLANK↑, LAT↑,ADR set,LAT↓,BLANK↓の順で制御すれば、最短時間で処理できる。LATトグルの間にADRを動かすのは、LATのパルス幅を確保するため。NOPでも良いけど、ADRを動かしたほうが低コスト。

 サクッと試したところでは、ピクセルクロック20MHzまでは問題なく動作する。これ以上の速度だとSTBee F4miniのGPIOからは出せない。FMCとか使えばできるかもしれないが、SF4mにはFMCがないので試せない。もちろん最大速度は配線の引き回しや、フラットケーブルの長さにも依存する。クロストークとかタイミングとかはATA(IDE)の歴史に近い。

 STBee F4miniを使った場合、9KiPix3bit程度までは問題なく表示できることを確認している。うまく処理すれば32KiPix3bitくらいは表示できそうな気もする。ただそこまで来るとかなりのデータ転送速度が必用な気がする。Cortex-Mでやることじゃない。

/*
 そういえば、ドットマトリクスLEDパネルは6年くらい前にも作ったんだった。ソレは単色で40x8pxくらいだった気がするけど。それはTLC5940を使って、コイツもBlankとかLATで苦労した気がする。デイジーチェーンも。なんか似たようなことやってるなぁ。フルカラーになったし解像度も30倍近くになってるんだけど。
*/

0 件のコメント:

コメントを投稿