2021年01月30日

最近作ったもの

最近作ったものをまとめて紹介します。
主にLEDパネル関係ばかりなんですが、そうでないものも多少はあります。


1. P3、256×128ピクセル高輝度LEDディスプレイ
屋外用の3mmピッチ、64×64ピクセルのLEDパネルを8枚使用した高輝度LEDディスプレイを構築しました。
フレームは黒色のアルミフレームで、LEDパネル前面に保護用のアクリルパネルを取り付けています。
DSC_1175DSC_1174
でかいし明るいしサイコー。最高輝度時全部白だと40Aくらい消費しています。えげつない。


2. PCの画面を無線でLEDパネルに表示させるやつ
ESP32とらびやん氏のScreenShotReceiverを使用して、PCの画面を無線でLEDパネルに表示させる奴を作りました。
大体27FPSくらい出ています。多分頑張れば2倍くらいの速度は出せるんじゃないかと思います。
というのもDMA転送をしているのにDMA転送中は何もしないという大変非効率なプログラムになっているためです。
DSC_1653-1DSC_1902
LEDパネルでマイクラもプレイできてしまいます。若干カクカクしてはおりますが、なかなか良い感じです。



3. HUB75インタフェースなドットマトリクスLEDドライバ基板
普通のドットマトリクスLEDをHUB75インターフェースにできるLEDドライバ基板です。
普通のLEDパネルと似たような回路になっており、最大32×16ピクセルのLEDパネルが構築できます。HUB75インタフェースなので当然LEDパネルコントローラで制御できますし、複数数珠繋ぎにして拡張させることもできます。
わずか32×16ピクセルとはいえ、はんだ付け大変でした・・・
もうやりたくないという感想があります。
DSC_1598DSC_1600ドットマトリクスLEDドライバ
回路図はこちらになります。
マトリクスLEDドライバ


4. LEDパネルな時計
そういえば時計をちゃんと作ったことなかったなと思ったので作りました。
ESP8266を使用し、NTPサーバーに接続して自動的に時間合わせをしてくれます。
せっかくのフルカラーLEDパネルなので時間によって背景画像が変わるようにしてあります。
DSC_1901


5. 超小型定電流レーザードライバ
降圧タイプのものと昇降圧タイプのもの2種類を作りました。
とにかく小型化することに命を懸けてみました。
降圧タイプは17.94mm×7.78mm、昇降圧タイプは12.86mm×7.78mmとなっております。
小さすぎる&ICがDFNではんだ付け難しかったです。
それぞれ一長一短があります。
降圧タイプは最大2Aまで流せますが電流を可変できません。また基板外形が昇降圧タイプより少し大きめです。
昇降圧タイプはレーザーダイオードのVfと電源電圧が同じでも高くても低くても定電流動作をしてくれますし、半固定VRによって電流を可変することもできます。しかし最大1Aまでしか流せないのと、使用しているICが1個500円以上します。
DSC_1863DSC_1888DSC_1861
回路図を乗っけておきますのでどなたか作ってみては?
LDドライバ回路

wata_net at 21:38コメント(0) この記事をクリップ!

高性能版LEDパネルコントローラアップデート&販売開始のお知らせ

BOOTHでLEDパネルコントローラの販売を開始いたしました!
こちらから購入できます!
高性能版LEDパネルコントローラ



高性能版LEDパネルコントローラのハードウェアをアップデートいたしました。
主に製造の都合によるアップデートになります。
とにかく自分でQFPとかをはんだ付けするのがめんどくさすぎるので、PCBアセンブリサービスで製造できるように部品を片面実装にしたり、部品を変更したりしました。
部品配置最適化のためマイコンのIO割付も少し変更されておりますが、通常使用において意識する必要はありません。
高性能版LEDパネルコントローラ表_1


また前回からソフトウェアもアップデートされております。
変更点は以下になります。
(1)描画範囲指定方法が矩形範囲で指定できるようになりました。
(2)輝度調整方法にボリューム値とコマンド値の乗算が追加されました。
(3)外部から垂直同期信号を入力できるようになりました。
(4)64*64ピクセル(1/16スキャン)の屋外用LEDパネルに対応しました。
(5)LEDパネルテスト機能の表示パターン切り替え間隔が少し長くなりました。
(6)コマンド、データ受信やDC端子切り替えに必要な待機時間が変更されました。またRDY信号(元BUSY信号)がタイミングチャートに追加されました。
(7)一度に受信できるデータ容量が無制限になりました。(以前は最大21845ピクセルでした。)
(8)代わりに指定された描画範囲の1行が16 ピクセル未満の場合、データ受信速度が高速すぎると処理が間に合わず正しいデータが書き込まれない現象が発生するようになりました。その場合指定範囲1行分のデータを書き込む度に10us程度の待機時間を設ける必要があります。
(9)その他細かいバグ修正など

特に大きな変更点は描画範囲指定方法が矩形範囲で指定できるようになった点です。
これにより従来より直感的に描画範囲を指定できます。
描画範囲指定

また64×64ピクセルの屋外用LEDパネルに対応した点もあります。
これの何が素晴らしいかというと、屋内用とは比べ物にならない圧倒的輝度を得ることができます。屋外でも視認性ばっちりのクソ明るいLEDディスプレイを構築できるのです。
(ただし消費電力もえげつないですが。)
屋外用の特徴として、LED側は黒いコーキング材で防水されています(おかげでドット欠けの修理がドチャクソ難しい)。基板自体は緑色なので裏から見ると緑色の基板が見えます。
DSC_1866DSC_1867
DSC_1136

取扱説明書もアップデートされました。
以下にプレビュー版を置いておこうかと思ったのですが、なぜかSCRIBDにログインできないので以下URLからダウンロードをお願いいたします。
高性能版取扱説明書とサンプルプログラム

wata_net at 20:43コメント(0) この記事をクリップ!

2020年07月16日

レーザー駆動基板改造

某プロジェクターのレーザー駆動基板をスタンドアロンで動作するように改造してみたという記事です。
レーザーダイオードアレイ、駆動基板、電源基板の最小構成で電源を入れるだけで24個のレーザーダイオードを同時に光らせれるようになります。

こちらが最小構成です。左が24個のレーザーダイオードが付いているヒートシンク、真ん中がレーザー駆動基板、右が電源基板(12V出力)です。
DSC_1073
最小構成とは言いましたが、レーザーの発熱が結構ヤバいため冷却ファン必須です。プロジェクターの中に入っていた40mm角のファンをそのまま使えば良いと思います。

まずは電源基板の改造箇所です。
画像のようにCN101の4番ピンと6番ピンをショートさせます。こうすることでこの電源基板からDC12Vが出力されるようになります。ちなみにショートさせる代わりにスイッチを付けるとこの電源をONOFFさせることができます。普通に12Vの電源としても使えます。
DSC_1074

続いてレーザー駆動基板の改造です。
レーザー駆動回路などの電源をONOFFしているQ315を常にON状態にさせるためにドレインソース間(1,2,3,5,6,7,8ピン)をショートさせます。
DSC_1075

ちなみにレーザードライブ回路にはLDGCと刻印された謎の16ピンQFNなICが使用されていますが、これはずばりリニアテクノロジー(アナデバ)のLT3755というLEDドライバICです。
このLEDドライバICにはシャットダウンピン、電流設定ピン、PWM入力ピンがあり、それぞれのピンに適切な電圧が印加されるように改造していきます。

まずはシャットダウンピンに1.22V以上を印加してLEDドライバICを起動させるための改造です。
下の画像のようにQ401の1番ピンに1kΩのチップ抵抗をはんだ付けします。抵抗のもう片側、エナメル線が伸びている方は後述するC514の片側のパッド(DC12V)に接続します。
DSC_1079

続いて電流設定ピンに適当な電圧を印加し、レーザーダイオードに1A程度の電流を流すようにするための改造です。
下の画像のようにIC110を取り外し、R187,R188,R191,R192の片方のパッドをすべてショートさせ12kΩのチップ抵抗を接続します。そのチップ抵抗の片側は先程と同様に後述するC514の片側のパッド(DC12V)に接続します。ちなみにこの抵抗と直列に50kΩ程度のボリュームを接続することでレーザーダイオードに流れる電流を可変することができるようになります。
DSC_1078

C514の片側のパッドにDC12Vが来ていますのでこちらに上記2つのチップ抵抗の片側を接続します。
DSCPDC_0003_BURST20200716201953192_COVER

最後にPWM入力ピンの論理をHighにし、常にレーザーダイオードが光るようにするための改造です。
レーザー駆動回路は4回路分あり、それぞれの箇所に改造が必要になります。
ICの2番ピンに接続されているチップ抵抗を取り外し、ICの2番ピンと7番ピンをショートさせます。
DSC_1080DSC_1081
DSC_1082DSCPDC_0003_BURST20200716202017263_COVER

以上で改造はすべて完了です。レーザーアレイとレーザー駆動基板、電源基板を接続し、電源を入れるとこんな感じで24個のレーザーがすべて光るはずです。
DSC_1069

wata_net at 22:33コメント(0) この記事をクリップ!

2020年06月14日

新しいオシロとLEDパネルコントローラのバグ解析

こんな時期なので色々察しはつくかと思いますが、新しいオシロを買ってしまいました。
購入したオシロはRIGOLのMSO5074です。
rigol_mso5000
ちょうどRIGOLがバンドルオプション(シリアル信号のデコード機能とか)の無料キャンペーンをやっていたのと、コスパが良すぎるということでこの機種を選択しましたが・・・
Aliexpressで103882円で購入し、届いたあとで並行輸入品はバンドルオプション無料キャンペーンの対象外だと知ったのでした。
そんな感じのなんだかんだがあって結局はオプションフル開放されたので結果オーライってとこです。

こちらが届いたオシロです。
EaJD1TOU0AAxJCh

私が以前持っていたオシロと性能を比較してみます。
EaJTdvfUEAAQ3BT
帯域幅
 TDS3014B:100MHz
 MSO5074:70MHz or 350MHz(オプション)

サンプリングレート
 TDS3014B:1.25GS/s
 MSO5074:8GS/s

最大メモリ長
 TDS3014B:10kポイント
 MSO5074:100Mポイント or 200Mポイント(オプション)

最高波形取り込みレート
 TDS3014B:3.6k波形/s
 MSO5074:500k波形/s

アナログチャンネル数
 TDS3014B:4
 MSO5074:4

デジタルチャンネル数
 TDS3014B:0
 MSO5074:16

内蔵信号発生器出力数
 TDS3014B:0
 MSO5074:0 or 2(オプション)

ディスプレイ
 TDS3014B:6.5inch 640x480
 MSO5074:9inch 1024x600 静電容量式マルチタッチスクリーン

新しいだけあって、基本性能は完全に上回っています。
またトリガの種類や演算、測定、解析、入出力もMSO5074のほうが遥かに豊富です。
各チャンネルごとに垂直軸のつまみが独立しているのもとても良いです。
たまにバグがあったり、動きがちょっともっさりだったりといった気になる点はありますが、この安さでこの性能と機能はもう最高としか言いようがありません。

他に面白い機能として、内蔵信号発生器とアナログ入力を使ってボード線図を描く事ができたりします。テスラコイルを作ってた頃にこのオシロを持っていれば・・・
EaW-jU7UEAEkAVu


おまけとして、この新しいオシロが早速役に立つ事例があったのでそれを紹介します。

以前このブロクで紹介した高性能版LEDパネルコントローラですが、実はちょっとしたハードウェア的バグがありました。
DSC_1014DSC_1013
本来は左のように画像が表示されるはずなのに、データ化けが発生してしまい右のように表示されてしまうのです。
このバグは電源電圧が5VかつSPI信号電圧も5Vであるときに限り発生、電源電圧もしくはSPI信号電圧が下がる(3.8V程度)と発生しなくなるという特徴がありました。
そもそもの原因はSPI入力バッファに74LCX245と間違えて74AHCT245を付けていたせいであり、そのことは既に分かっていました。
しかしながらTDS3014Bで波形を見ても波形品質的にもタイミング的にも全く問題なく、どうしてそうなるのか長らく謎だったのですが、改めてMSO5074で波形を観測したところその真因が明らかになったのです。

まず高速信号をできるだけ忠実に観測するため、このようにプローブと測定対象の距離を短くしました。理想的とは言えないかも知れませんが、0.5mmピッチのICのピンに直接プローブを4本同時に当てるのはかなり困難なのでこれが最善だと思います。
DSC_1012

それではMSO5074とTDS3014Bで観測した波形を以下に示します。
00_SPI_signal10_SPI_signal
MSO5074ではNthエッジトリガという、任意回数のエッジが発生した時にトリガを発生させる機能を使っています。またSPIをデコードする機能や入力チャンネルにラベルをつける機能も使用しています。
TDS3014BにはNthエッジトリガがないため、立ち下がりエッジと遅延トリガを使っています。
この波形には画像データをLEDパネルコントローラに送信する前のコマンド部分が表示されています。このあとに画像データが続きます。

画像データ部分が含まれるよう時間軸を縮小した波形を以下に示します。
01_SPI_signal_wide11_SPI_signal_wide_1

ここでCSとDCの画像データ部分の波形に注目していただきたいのですが、MSO5074は見づらいながらも非常に小さいパルスがしっかり捕捉できているのがおわかりいただけるかと思います。
対してTDS3014Bはパルスの高さが変わったり捕捉できていないパルスが発生しています。これはサンプリング周波数が不足しているためです。
異常波形

実はTDS3014Bでは下の画像のようにこの小さいパルスを全く捕捉できないことが殆どで、上の画像も何回か取り直したものです。
11_SPI_signal_wide
MSO5074を買うまでこの小さいパルスの存在に気づけなかったのはこのためです。

そしてこの小さいパルスをズーム機能で拡大したものを以下に示します。
03_SPI_signal_pulse_width12_SPI_signal_zoom
MSO5074Bはサンプリングとメモリ長が豊富にあるため、ここまで大きく拡大してもパルスのディティールがしっかりと確認できます。
対してTDS3014Bは一見パルスをしっかり捉えられているように見えますが、実はこの波形は正しくパルスのディティールを表現できていません。少し詳しい人ならば気づくかも知れませんが、このパルス波形はほとんどsinc関数そのものです。つまりサンプリング点が極端に不足しているのをオシロの補間機能でそれっぽく見せているだけで、実際とは異なる波形が表示されているのです。

このように怪しげな小さいパルスの存在が確認できたため、パルストリガ機能でこの小さいパルスにトリガを掛けた画像を以下に示します。
04_SPI_signal_pulse_width_zoom14_SPI_signal_pulse_width_zoom
ここでもサンプリング周波数の差は明らかですね。
3.28nsというとても小さいパルスですが、STM32のHレベルしきい値をしっかり満たしています。
このパルスが原因でデータ化けを起こしていたのはほぼ間違いないと思われます。
電源電圧が下がるとデータ化けが発生しなくなるのは、パルス電圧も低下してSTM32のHレベルしきい値を満たさなくなるからでしょう。
こうしてMSO5074のおかげでデータ化けの謎が解明できました。



そんなわけでみんなも給付金でMSO5074を買おうという記事でした。

wata_net at 16:21コメント(0) この記事をクリップ!
プロフィール

wata

Recent Comments
記事検索
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード
  • ライブドアブログ