United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

携帯計測器「Digital Discovery」Arduino用LCDシールドのデバッキング

この記事では、Digilent社が公開しているサンプルを紹介します。このサンプルではArduino用のLCDディスプレーシールド「HD44780」を、携帯計測器「Digital Discovery」のロジックアナライザー機能を使ってデバッキングする手順の資料を公開しています。

Digital Discovery (136-8070)   は携帯計測器「Analog Discoveryシリーズ」の姉妹品で、ロジックアナライザ ・ パターンジェネレータ一といったデジタル信号に特化した計測機能を1台で使用することができます。

この Digital Discoveryにより、組み込み系開発、そくにデジタル制御システムのデバッキングや視覚化、シミュレーションが行えます。LCDディスプレイのデバッグにはPythonを使用しています。

Digilent LCD Test

 

ステップ 1: LCDディスプレイをArduino Unoに接続

最初に、LCDディスプレイを以下の配線表に基づいてArduino Uno (769-7409) へ接続します。提供されているArduinoスケッチでは、ArduinoのLiquidCrystalライブラリを用いて、LCDの列数と行数を設定し、シリアル通信を初期化し、バックライトを有効にする設定をしています。

LCD側ピン Arduino Uno側ピン
RS 8
Enable 9
D4 4
D5 5
D6 6
D7 7
Backlight control 10
R/W Ground

 

ステップ 2: Digital Discoveryのジャンパーワイヤーを各端子に接続

LCDシールドをArduino Unoに接続した後、以下の配線表に基づいてシステム全体をDigital Discoveryに接続する必要があります。

Digital Discovery側ピン LCDシールド側ピン
GND GND
DIN0 EN
DIN1 RS
DIN2 D4
DIN3 D5
DIN4 D6
DIN5 D7

注記: まずグランド (GND) を接続してください。

 

ステップ 3: LCDシールドをデバッグするためのPythonスクリプト

LCDシールドの制御信号をリアルタイムで計測収集し分析を行います。このスクリプトには次の4つのスレッドが含まれています。

  1. メインスレッド (GUI) は、機器を初期化し、GUIまわりの環境を整えます
  2. 収集スレッドは、Digital Discoveryからリアルタイムのデータを収集し、データをキューに挿入します
  3. RAWデータ処理スレッドは、キューからデータを読み取ります。ENの立ち上がりエッジでのみラッチし、データを別のキューに挿入します
  4. データ処理スレッドは、2番目のキューからラッチされたデータを読み取り、HD44780ディスプレイの動作をシミュレートします

 

ステップ 4: LCDシールドのデバッグ

Pythonスクリプトを実行します。RAWバッファまたはデータバッファが急速に満杯になる場合、サンプルレートを下げる必要があります。「Int」インジケータは、スクリプトにより初期化が検出されたかどうかを示します。値が「2」であれば初期化が正常に完了していますが、「0」または「1」の場合は処理が不完全であることがわかります。

Com10 Decoder Screen

LDCシールドに送信されたデータは、Digilent WaveForms Logic Analyzerで見ることができます。ロジックアナライザでは、EN信号の立ち上がりエッジにクロック信号付きのバスを追加します。次に、RS信号を別の信号として追加し、トリガモードをEN信号の立ち上がりエッジでトリガを実行するノーマルモードに設定します。

Com10 Setup Screen

このプロジェクトの詳細、Arduinoスケッチ、Pythonスクリプトは、こちらのDigilentのドキュメントページで入手いただけます。

awong さんはまだ自己紹介を入力されていません...