私の計測器、測定器活用法 – 組み込み系ソフトウェアと オシロスコープ

私の計測器、測定器活用法 – 組み込み系ソフトウェアと オシロスコープ

電気系のエンジニアであれば恐らくほとんどの方が使ったことがあるオシロスコープ。実はこのオシロスコープ、組み込み系ソフトウェアエンジニアも頻繁に使います。今回は、組み込み系ソフトウェア開発を始めて間もないビギナー向けに、私のオシロスコープ活用法を紹介したいと思います!

組み込み系ソフトウェアとは?

プログラム イメージ

悲しいかな、組み込み系ソフトウェアはみんなから理解されにくいものです。。皆さん、ソフトウェアのイメージはつきますよね?もちろんPC上で扱われますね。組み込み系ソフトウェアをわかりやすく言うと、PC以外の機器向けのソフトウェアです。具体的には家電製品や産業機器向けのソフトウェアです。携帯電話なんかもそうです。正確にいうと、こういう機器に搭載されているマイコン(頭脳の役割)に組み込まれるプログラムのことを組み込み系ソフトウェアと呼びます。
では組み込み系ソフトウェアが用いられている身近な例を挙げてみます。
洗濯機やテレビ、カーナビを思い浮かべてみてください。洗濯機だったら洗濯物と洗剤をいれて、スタートボタンを押したら後は勝手に、洗濯・すすぎ・脱水・乾燥などの工程を行ってくれます。それぞれ動きが違いますよね?水をいれたり、抜いたり、ぐるぐる回したり。テレビやカーナビもそうです。ボタンを押せばボタンに対応した事をしてくれます。これはマイコンが家電の中に組み込まれており、電子部品につながり制御して実行しているからです。
そして組み込み系ソフトウェアエンジニアにとって、オシロスコープは最もよく使うツールの一つかと思います。開発経験がまだ浅い方によく見られたりするのですが、オシロスコープを使わないで作業をしてしまって、デバッグの無限ループに陥っている場合があります。そうならないためにも、今回はオシロスコープをどういうときに使うかを簡単にご紹介します!

基本事項のおさらい

オシロスコープ

さすがにここまで読んだ読者で、「オシロスコープ?マイコン?」と思っている方はいらっしゃらないとは思いますが簡単にオシロスコープとマイコンについて一言説明をしておきます。
オシロスコープはリアルタイムで電気信号の変化を観測する測定器です。オシロスコープとセットになっているプローブ(*1)を、測定したい場所に刺して使い電圧や周期を観測できるわけです。下の写真のようなものです。

(*1) 測定や実験などのために、試料に接触または挿入する針。 探針(たんしん)。

オシロスコープ

出典:Amazon

マイコンはマイクロコンピュータの略で、名前の通り非常に小さいコンピュータのことです。前章でも少し触れたように頭脳の役割をしています。
マイコンは各電子部品に繋がっていて、それらに対して電気信号を伝えて制御します。まさに頭脳の役割をしているというわけです。そして一番初歩的な使い方としてマイコンの動作電圧(5.0vや3.3vが多いかと思います)と0vをIO(*2)ピンを介して伝える事です。

(*2) デジタル信号を入出力できるピン

この動作の例としてはLEDを点滅させたりするために使ったりします。
しかし、LEDの様に目に見えて分かる物が実装されていない場合、本当にデジタル信号がHighになっているか?Lowになっているか?の確認が必要になってきます。そんな時は必ずオシロスコープを使って確認します。”えっそれだけのために?”って思うかもしれませんが、マイコンの設定はメーカーによって様々です。そして大抵は思った通りに動きません。特に初めて使うマイコンならなおさら上手くいきません!!

実例紹介

ではちょっと実例を挙げてみます。ここからは少しテクニカルな話になるので、多少のバックグラウンドが必要かもしれません。
以下はAnalog Devices(アナログデバイセズ)というメーカーのマイコンのIOピンをパタパタ切り替えるサンプルコードです。(if文、while文、for文がわからない方は別途調べてみてください!)
このマイコンは合計40ピンのIOピンを保有していて、0~4の先頭番号と0~7の後尾番号で表現されています。つまり、0.0〜0.7 、1.0〜1.7、 2.0〜2.7 、3.0〜3.7 、4.0〜4.7の計40ピンということです。GP4DATに0x04040000(*3)を設定すると4.2というピンがHighになり、0x0400000でLowにするというプログラムです。
ではGP4DAT とか0x0400000とか0x04040000ってなんですかー???ってなると思いますが、この意味は続くGPxDATのデータシートに記述されています。

(*3)数字の先頭0xは16進数を示す表記です。

【プログラム例】

プログラム例

【データシート】

データシート

はい、よくわかりませんね。解説します。
先頭番号はGPxDATで指定します(xに0~4の数字が入ります)。後尾番号の指定についてはこの先で説明します。そしてGPxDATは32bitのレジスターです。レジスターはマイコンにやってもらいたい事を設定する箱だと思うと少しイメージが湧くと思います。マイコンはこの箱の中身をみて動作を決めます。箱にはいろいろな種類がありますが、今回は4.2のピンをHighかLowにするプログラムなのでGP4DATというIOピンの操作に関係する箱の中身をいじります。
ここで重要なのが表42に書いてある31~24bit目と23~16bit目の設定内容です。上記のソースコードにあるGP4DAT = 0x04040000を思い出してみてください。これは、GP4DATに26bit目と18bit目を1に設定している事となります。(計算機で0x04040000を2進数に直すとわかりやすいかと思います。)
そして26bit目は表の31~24bit目の内容に該当するビットです。これは、設定したいピンが入力か出力か、すなわち電気信号を受け取るか、出すかの設定に関するビットに該当します。1に設定しているので出力ピンとなります。これだけではなにも出力しません、あくまで出力するピンですよーとマイコンに教えてるだけです。(データシート上ではセットすると表現されています。これは1にするという意味で、クリアする、は0にするという意味です。)
18bit目は23~16bit目の設定に該当するビットです。ここを1に設定する事ではじめてHighをマイコンが出力してくれます。そして0にするとLowを出力します。
先ほどのソースコードでいうと、GP4DAT = 0x04040000がHighで、GP4DAT = 0x04000000でLowとなります。
そしてこの表をよく見ると8bit毎に内容が変わっているのがわかると思います。これは先ほどの後尾番号に関わってきます。
今回はピン4.2なのでGP4DATの 26bit目と18bit目に1を設定しているというわけです。もし1.0ピンからHighを出力したい場合はGP1DATの24bit目と16bit目を1にすれば良いわけです。コードにするとGP1DAT = 0x01010000 です。
この様にピンを一つ制御するだけで、これだけ考えて設定しなくてはいけません。そしてこれはマイコンにおけるほんの一部の機能です。ほかにもたくさんの操作のために色々な設定があります。そんな時は、必ずといっていいほどオシロスコープを使って、本当に出力さているかの確認が必要になってくるわけです。
また、私はマイコンにプログラムを実装したら、オシロスコープの機能の一つとしてスクリーンーショットを使い、画面保存しておきます。保存した画面は設計書やテストレポートに載せるために使用します。関係者を説得するには、実際のデータを見せるということは非常に重要になってくると思います。

オシロスコープは中古?レンタル?

今回は組み込み系ソフトウェアにおけるオシロスコープの使い道を今回紹介しました。オシロスコープがあれば色々な機能の確認が出来てとても助かります。
ちなみにこのオシロスコープなのですが、価格は高いものですと数百万円もするものもあります。予算が厳しいようでしたら、ダウングレードさせる、中古で買うなどもありですね。まずは中古買取業者に連絡して確認するのもありかもしれません。

中古計測器、測定器を売買したい会社様へ

当サイトはAnyble(エニブル)株式会社が運営しております。 法人間で中古計測器、測定器を直接売買できるプラットフォーム【Ekuipp(エクイップ)】を提供しております。 興味がある会社様ははこちら↓。登録料は無料です。

パソコン用の画像:法人間で中古計測器、測定器を直接売買できるプラットフォーム 【Ekuipp(エクイップ)】 スマートフォン用の画像:法人間で中古計測器、測定器を直接売買できるプラットフォーム 【Ekuipp(エクイップ)】

ライター紹介
ライタープロフィール
Ekuipp Magazine編集部

法人間で中古計測器・測定器の売買を専門にしているプラットフォームEkuippが運営する、Ekuipp Magazineの編集部です。機材に関するあらゆる情報を発信していきます。

私の活用法
Ekuipp(エクイップ) Magazine