ビデオ出力を備えたSTM32F7ベースのコントローラーボード

彼らの仕事の性質上、多くの場合、さまざまなタイプの制御および測定システムを設計する必要があります。 もちろん、マイクロコントローラーに基づいています。 最初に、彼らはAVRを使用し、次に次のATxMegaファミリを使用し、最終的にSTM32ファミリに落ち着きました。 設計されたデバイスの機能は異なりますが、ユーザーと外部デバイスとのインターフェース、データストレージ、リアルタイムクロックなど、機能の質量は変わりません。したがって、アイデアはメインノードを含むユニバーサルコントローラボードを作成し、追加のプラグインボードは必要に応じて機能を拡張します。 最初はSTM32F103のコントローラー、次に207、次に429でした。現在は746クリスタルです。



しかし、このボードの主な目新しさはビデオ出力です。 それ以前は、原則としてグラフィックディスプレイ(モノクロ、320 x 240)が使用されていました。 しかし、このアプローチには欠点があります。



1.適切なサイズのカラーディスプレイに切り替えると、統合コントローラーで5を超えると、価格が非常に大きくなります。

2.インターフェースは通常互換性がないため、使用するディスプレイは1種類のみです。



しかし、その後、アイデアは標準的な車のモニターを使用するようになりました。その価格は非常に手頃で、多くのメーカーがあり、さまざまなサイズがあります。



これを行うには、ビデオ出力を実装する必要がありました。











インターネットを検索した結果、321 kBの内部メモリとコンポジットビデオ出力を備えたグラフィックコントローラーS1D13746F01が発見されました。もちろんS-Videoもありますが、使用する予定はありませんでした。 また、100ピンのケースではありますが、詳細な接続図が記載された評価ボードのデータシートも発見されました。



マイクロサーキットのデータシートを読んだ後、内部メモリへのアクセスの組織の特徴、つまり特定のアドレスへの書き込みが不可能であることを発見しました。 つまり、ビデオバッファをすべて書き換える必要があります。 この機能により、マイクロコントローラのメモリにビデオバッファのストレージを整理し、必要な頻度で上書きする必要があります。



ビデオバッファを整理するには、320 * 240 = 76800バイトが必要です。 色の数は256になります。このカラーコーディング形式は、ビデオコントローラーのドキュメントでRGB 3:3:2として示されています。 つまり、赤に3ビット、緑に3ビット、青に2ビットです。 さまざまなレベルの合計8つの赤い花、8つの緑と4つの青。



ビデオチップへの書き込みは、ポートを介してプログラムで行われます。 これがCプログラムです。



void refresh_display(void) { unsigned long h, s; unsigned short out_port; for (s = 0; s < Height_window; s++) // { for (h= 0; h < Width_window; h++) // { out_port = gLCD_port->ODR; out_port &= 0xFF00; out_port |= video_buffer[h] [s]; // gLCD_port->ODR = out_port; gLCD_color_WE_low; // gLCD_color_WE_high; } } }
      
      





ビデオバッファ全体の記録時間は約20msです。 必要に応じて、50フレーム/秒でビデオを出力できますが、コントローラーは出力のみを処理します。 :)実際のタスクでは、1秒間に3回から10回画面を書き換える必要があります。



そして、これは近くの店で買ったコネクテッドカーモニターの写真です。 モニターサイズは7インチです。







これは、高電圧試験装置の制御です。 コントローラボード上のビデオ出力に加えて、Winstar WG320240C0モノクロディスプレイを接続するためのコネクタがまだありました。



コントローラボード上のメインノードの簡単な説明:





コントローラーが判明しました。



All Articles