Toshi's Blog

[ブログ一覧]
 ● サムネイル一覧表示
[ホームページリンク]
 ● ホームレコーディング 楽曲集/宅録/DTM
 ● 自作ギターエフェクター/ツール/パーツ
 ● A3サイズのNゲージ箱庭鉄道模型

デジタルオシロスコープのメモリ機能を使ったSPIのデバッグ

2024/09/16


デジタルオシロスコープのメモリ機能を使ったSPIのデバッグ
初心者向けのデジタルオシロの使い方紹介です
オシロスコープ初心者の方向けに、Arduinoを使ったマイコンのSPI(シリアル・パラレル・インタフェース)の信号をデバッグするとき、私のRIGOLのデジタルオシロスコープ(DS4012)で、どの様に使っているかを紹介します。

SPIデバイスのシリーズ接続
Arduino+XIAOマイコンを使って「プリセットプログラム可能なアナログディレイ」を作った時には、デジタルポット(可変抵抗)と2個のHC595の3つをシリーズに接続して、1つのSPIで制御しました。上の構成図の右下の部分です。

<接続順>
デジタルポット(10bit)→HC595(8bit)→HC595(8bit)

最初につながっているデジタルポットのSPIは、ビット数が10bitで、特殊な信号でした。このシリアルデータが正しく出ているのかを、デジタルオシロで確認しました。このSPIの信号は、HC595経由でLEDを点滅させるための周期タイマーと、ボタン操作による非同期の割り込みハンドラーで、常時連続出力されています。

例として4回目のSPI信号を確認したいとき
下の画面は、3つのデバイスの4回分のSPI波形です。1つのパルスの様に見えますが、中身は26bit分のSPI信号です。上がCLK、下がDATAです。例えば、4回目のSPI信号(赤枠)に何が出ているかを確認したいとします。4回目の信号にうまくトリガーが掛かれば一発で確認できるのですが、この信号は常時出続けているため、見たい信号を狙ってトリガーを掛けることは困難です。

デジタルオシロのメモリ機能が威力を発揮
このとき、デジタルオシロのメモリ機能が威力を発揮します。以下のような方法です。

1. まず、4回分(もっと多くてもOK)のSPI信号が入るように時間のつまみを長めに調整します。

2. オシロの「SINGLE」モードで、サンプリングします。うまく4回分のSPI信号が入らなかったら、何回か試行して、4回分のSPIがサンプリングできるまで繰り返します。

SPIのデバッグ1

3. メモリされた信号を左にスクロールし、観察したい4回目のSPI信号を中央に移動させます。

SPIのデバッグ2

4. このまま時間のつまみで横方向を拡大すると、SPIの波形が見られるようになります。

5. この拡大した波形の右側が最初に出力したデジタルポットの10bit(2bit + 8bit)の信号です。

SPIのデバッグ3

この例では、上の2.の手順で70msだけサンプリングしていますが、オシロのメモリ長が許す限り、もっと長く(数秒)録っても大丈夫です。

この様に、長い時間範囲の波形を見ている場合は、リアルタイムでは最初の波形のようにSPI信号の中身を見ることはできないのですが、メモリ機能のお陰で、適当に長くサンプリングした後で問題箇所を探し、時間軸を拡大することで、信号の中身を確認することができます。SPIのデバッグには、無くてはならない機能です。

オシロが1台あると趣味の電子工作の幅が広がります
デジタルオシロは、そもそも業務用途の機器ですので、価格的に趣味には敷居が高いイメージがあります。ところが最近では、誰でも購入できる低価格帯のオシロが発売されており、特に中国の「RIGOL」は、性能、機能ともに十分な標準的なオシロを4万円以下で出しています。

私はギター用のエフェクターや鉄道模型の自動運転システム等を作ってきましたが、オーディオ信号の確認やマイコンクロックの確認にとても役に立っており、工作の幅が広がりました。下のブログ記事を参考にしてみてください。

RIGOLの新しいオシロスコープ DHO800シリーズ、めちゃくちゃコンパクト高性能
デジタルオシロスコープのメモリ機能を使ったSPIのデバッグ

多く読まれたブログ


「エフェクトペダル」に関連するブログ

>> 「エフェクトペダル」サムネイル一覧表示ページへ

デジタルオシロスコープのメモリ機能を使ったSPIのデバッグ

中国のデバイス開発会社に支えられた私の趣味

RIGOLオシロスコープのプローブワイヤー(アース)を修理

うるさいデジタルオシロスコープのファンを交換:RIGOL DS4012

RIGOLの新しいオシロスコープ DHO800シリーズ、めちゃくちゃコンパクト高性能

自作エフェクター部品の購入とおおよその価格

Noiseless Delayのボックス型コンデンサ容量を設計変更

アナログオクターバーでリードを弾いたオリジナル曲

Arduinoでプリセットできるディレイ制作中

本気でやるKiCADを使ったギター用エフェクトペダルのプリント基板設計

古いエフェクターに使われている古い部品の代替部品:2SK30Y, BBD

RIGOLのデジタルオシロスコープ DS4012 を手に入れました

一般の両電源用オペアンプ(4558など)の「出力反転」と言う現象

エフェクター用面実装チップ部品の購入方法

チップ部品を使ってミニサイズのディストーションRiotクローンを自作

自作アナログオクターバーのノイズ対策

アナログオクターバーの動作原理を調査

自作アナログコーラスCE-3にRATEインジケータを追加してみました

CMOSフリップフロップを使ったアナログオクターバー自作

BOSS CE-3アナログコーラスに使われているBBD ICチップ

BOSS CE-3アナログコーラスをモディファイし自作

BOSS DM-3 のクローンを制作中

小型ハンディーオシロスコープを入手

BB-PREAMP の自作用PCBをeBayでポーランドから購入


2024/09/16 10:33 | ブログ一覧