はじめに
こんにちは、どふぃです。
最近は、技術研修の一環として制作実習をおこなっていました。
制作したのは、家庭用の警報機です。
人を検知すると、音と光でアラームを発生させる装置となっております。
制作実習の中では、たくさんのことを学ばせて頂きました。今回から少しずつご紹介していきたいと思います。
制作実習の始まり ~10月~
”入社後より学んできた「知識、技術」を用いて、研修の集大成となる品を制作する”という目的で、制作実習を開始しました。
私が入社後に勉強した製品は、以下です。
・電源 IC
・A/D コンバーター
・D/A コンバーター
・オペアンプ etc・・・・・
上記アナログ製品、知識を用いて、家庭用の警報機を作ります。
通信って??
初めに躓いたのは、表題にある通り”通信”という概念です。
上記の製品の中で、 A/D コンバーターや D/A コンバーターはデジタル信号も扱うため、データ送受信のための”通信”が必要になります。
電源をはじめとするアナログ製品は、基本的に導線で配線をおこない、これによって機器が電気的に接続された状態になります。
一般に、回路図で表される線の部分は導線で配線されます。
私は初め、導線で回路図通りに配線をおこなう = 通信ができると思っていました。
この時の私の脳内イメージが図 1 です。
簡単に装置の処理を説明します(図 1 参照)。
1. センサーがデジタル信号( High / Low )を送信
2. マイコンが受信し、信号が High の時のみデジタル信号を送信
3. D/A コンバーターでデジタル信号をアナログ信号に変換し、出力
これで装置のブロック図が決まったので、部品選定をしようと考えていると、先輩から指摘が入ります。
先輩「ところで、何を使って通信するの?」
私「・・・・・・・!?(いや、何を使うって導線で接続してますが。。。)」
私は初め、先輩の指摘の意味を全く理解できませんでした。
その後調べてみると、デジタル信号(データ)の送受信をするためには、「通信」をしなければならないことがわかりました。(もちろん導線で接続しただけでは通信はできません。。。)
先輩の指摘の意味は分かりましたが、この時の私は「通信」については全くの初心者でした。
ここから調査の日々が始まり、結果的には「シリアル伝送の I2C 通信」という通信方式を採用することにしました。
ここで、「シリアル伝送」と「I2C 通信」について、少し説明したいと思います。
シリアル伝送??
シリアルとは、「直列」の意味です。
その意味の通り、シリアル伝送は直列に並んだデータを 1 本の線で 1bit ずつ順番に送ります(図 2 )。
シリアル伝送(図 2 )は、データ伝送の線の数は 1本で済みますが、伝送の際に送信側でパラレル→シリアル、受信側でシリアル→パラレルへのデータ変換が必要です。
I2C 通信??
シリアル伝送方式の 1 つである I2C ( Inter - Integrated - Circuit )には、以下 3 つの特徴があります。
1. 2 本のバスライン( SCL (クロックライン)と SDA (データライン))のみでデータの通信が可能
2. 1 台のマスター(制御する側)で、複数のスレーブ(制御される側)を設定できる
3. 個々のスレーブがアドレスを持っており、 1バイト( 8bit )転送毎に受信側が「アクノリッジ」をマスターに送る
※アクノリッジについては後程説明
私の装置では、、回路設計の際に線の数を減らしたい、 A/D コンバーター、 D/A コンバーターの 2 つをスレーブとして設定しなければならなかったという理由から、 I2C 通信を採用しました。
これで理論は完璧。いよいよ実機での動作確認です!
トラブル発生!? ~アクノリッジが返ってこない~
理論を理解したので、早速実機で I2C 通信をおこなってみました。
しかし、ここでトラブル発生です。
なんと「アクノリッジ(図 3 参照)」が返ってこないではありませんか!!?
アクノリッジとは、マスター側が指定したアドレスが接続したいスレーブのアドレスと一致した際にスレーブ側から返送される「接続ができています」といったような合図です。
これが返ってこないということは、私の装置でいうとマイコン(マスター)がD/Aコンバーター(スレーブ)を認識していないということになります。
まず、マスターで指定したアドレスを確認しました。
I2C 通信では「スレーブのアドレス( 7bit ) + 送信・受信指定ビット( 1bit )」の計 8bit でアドレスを指定します。
使用した D/A コンバーター( LTC2631A-12 )のスレーブアドレスは「 0010000 」で、今回は送信( Write )なので、 8bit目は " 0 "です。
よって、マスターが指定したアドレスは「 00100000 」となります。
そのため、マイコンのプログラムでは 16進数に変換した 0x20 と定義しました。
実際の測定波形が図 4 です。
図 4 を見ると、明らかにおかしいことがわかります。
「 00100000 」のデータを送信したはずなのに、「 01000000 」になっています。
また、正常であれば 9bit 目は Low ( 0 )でアクノリッジが返送されるはずですが、 9bit 目は High ( 1 )でした。
何故なんだ。。。。。
⇒後編へ続く
終わりに
制作実習の中では”通信”にかなり苦しめられました。
まだまだ勉強が必要です。。。
さて、次回記事ではどのようにして「アクノリッジ」の問題を解決したのかをご紹介いたします。
次回記事もよろしくお願い致します。
最後に弊社で取り扱っているアナログ IC メーカーの紹介をさせて頂きます。
Analog Devices ~アナログ・デバイセズ~
高性能標準アナログ IC のリーディングメーカー。
アンプ、バッテリーマネージメント、データコンバーター、高周波、インターフェース、電圧レギュレーター、電圧リファレンスなどお客様の最終製品の性能、品質を定め、安定供給を実現。
基本的に製品の製造中止はおこなわず、産業機器など長期利用のお客様にも安心してお使いいただけます。