雑誌無償購読申込み 最新号 バックナンバー 広告資料請求 EDN Japanについて お問合せ
雑誌無償購読申し込み
メールニュースレター登録
登録内容変更
アナログ IC/ディスクリート
電源/電池/コントローラー
PLD / メモリー
組み込みシステム
コンピュータ&ボード
EDA/IP/CAE/ソフトウェア
電子部品
計測器
ディスプレイ
デジタル家電
通信・ネットワーク
カーエレクトロニクス/産業機器
EDN Japan 記事検索
検索方法の詳細
雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
DESIGINIDEAS
2006.10
パルス列をマイコンでプログラマブルに生成
William Grill 米Honeywell BRGA社
 回路の評価などを行う際、任意のパルス列を生成したいケースがよくあるだろう。そのような場合、従来はパルスジェネレータを用いるか、あるいは複雑な回路を構成して、連続したパルス列やイベントをトリガーとしたパルス列を発生させていたはずだ。しかし、今日のマイクロコントローラを利用すれば、目的に応じて最適化したパルス列の発生器を、最小限の部品で安価に構成できる。そうした例として、本稿では、PWM(パルス幅変調)信号をはじめとする各種パルスの発生回路を紹介する。
 図1に示したのがその回路例である。マイクロコントローラとして、米Microchip Technology社の「PIC10F 200」を用いている。同コントローラで用いるアセンブリプログラム(ここからダウンロード可能)により、任意のパルス列を生成させる仕組みだ。そのアセンブリプログラムでは、パルスの仕様を定めるために、図2に示した3つのパラメータを使用する。
図1 パルス生成回路
PIC10F200と1個の抵抗により、パルス生成回路を構成できる。
図2 パルス波形を決める3つのパラメータ
「基本周期」は5つの「サイクル」から成る。各サイクルは同一デューティ比で「単位パルス周期」の3つのパルスから成る。連続パルスを発生させるには、「基本周期」を繰り返す。
 1つ目のパラメータは「サイクル」である。これは、周期、デューティ比が等しい同一のパルスを繰り返し出力する回数を表す。パラメータ名はtemp_ cntkで、1〜255の範囲で整数値を設定する。図2の例ではtemp_cntkを3としているため、同一のパルスが3回ずつ出力されている。
 2つ目のパラメータは「単位パルス周期」である。このプログラムでは、29のインストラクションから構成されるルーチン(以下、パルス生成ルーチン)が中心となる。単位パルス周期は、このパルス生成ルーチンを繰り返す回数によって決まる。パラメータ名はloopsKで、2から255の範囲で整数値を設定する。このプログラムでは、PIC10F200の4MHzの内部クロックと8ビットのカウンタを用い、1インストラクションが処理される時間を1μsとしている。そのため、29のインストラクションの実行にかかる時間は29μsとなる。単位パルス周期は29μsにloopsKの設定値を乗じることで決まるため、その値は58μsから7395μs(周波数は17241 Hzから135Hz)の範囲で設定できることになる。ここでは、loopsK=31に設定することにした。
 3つ目のパラメータは「基本周期」であり、この周期にサイクルをいくつ含めるかを規定する。パラメータ名はtable_maxKで、1〜252の範囲で整数値を設定する。
 上記3つのパラメータに加え、プログラムでは1つのテーブルを使用する。このテーブルには、各パルスのデューティ比を決める値を指定する。図2の例ではtable_maxKを5としており、パルスのデューティ比が25%、50%、87.5%、12.5%、75%の5種類のパルスが発生するようテーブルに値を定義している。
 パルスのデューティ比は、loopsKの値(パルス生成ルーチンを繰り返す回数)によって変化する。また、デューティ比の分解能もloopsKによって決まる。loopsKの値が31の場合、デューティ比の分解能(resolution)は、1/loopsK×100=1/31×100=3.22(%)となる。本稿の例では、各デューティ比に対応する値をテーブルを書き込んで使用する。その値は簡単に計算できる。例えば、デューティ比が25%である場合、以下のようにして計算する(INTは整数への変換を行う関数)。
 INT(25/resolution+0.5)= INT(25/3.22+0.5)=8

 このようにして計算すると、デューティ比25%、50%、87.5%、12.5%、75%に対応する定数値は、それぞれ8、16、27、4、23となる。アセンブラプログラムには、これらの値と、先述した3種のパラメータの値を記述する。
 図3に示したのは、本稿で紹介した回路の一利用例である。図中の(a)はコントローラからのPWM出力であり、それをローパスフィルタに通すと正弦波(b)が得られる。
図3 パルス発生回路の利用例(その1)
PWM信号(a)と、それをローパスフィルタに通して得た正弦波(b)。

 もう1つ、シリアルリンクのエラー応答試験に利用可能なパルス列の生成例を示す。図4は、本稿で紹介した回路を用いて発生させた100個のパルスのデューティ比を表している。99個のパルスのデューティ比は、標準値である48%〜51%の範囲に収まっており、1つのパルスだけデューティ比が75%という誤った値になるように設定してある。具体的には、まずloopsKを100、temp_cntKを1、table_maxKを100としてデューティ比が標準値の74個のパルス列を生成し、次にデューティ比75%のパルスを1個生成し、最後にデューティ比が標準値のパルス25個を生成するようにしている。
図4 パルス発生回路の利用例(その2)
シリアルリンクのエラー応答試験のための信号。100個のパルスを含むパルス列が繰り返し出力される。図の横軸はパルス列1周期に含まれる各パルスの位置、縦軸は各パルスのデューティ比を表す。

 本稿で紹介したプログラムは、メモリーを155バイトしか使用しない。またPIC10F200は、パッケージがSOT-23と小型で価格も1米ドル程度なので、十分に利用価値があるだろう。

Advertisement
「design ideas」への寄稿のお願い
「design ideas」は米EDNの「名物コラム」です。このコラムは、電子機器設計や電子回路設計などの現場で働く技術者の皆さまからのご寄稿により成り立っています。そこで、「EDN Japan」でも半導体メーカーや電子機器メーカーの電子技術者のほか、大学などの研究者、コンサルタント業務に携わる技術者などの皆さまからのご寄稿を募集します。
【記事内容】
電気/電子回路の新たな提案とその説明。
半導体製品に搭載した新たな回路の紹介。
半導体/電子部品の面白い使い方。
半導体/電子回路の性能を引き出す、あるいは部品の弱点を補う回路の提案。
などです。上記以外のテーマについては、別途ご相談ください。
【原稿の長さ】
1〜2ページ。文字数は1000〜1500、図版は1〜2点です。
【原稿料】
採用原稿に対して、400字当たり3000円(税込み)。
【注意点など】
未発表のものに限定します。
ご寄稿いただいた原稿は、EDN Japanで選考して、採用/不採用を決めさせていただきます。ご寄稿いただいた原稿は、お返しできません。
ご寄稿いただいた原稿に対して、加筆、改筆をお願いする場合がございます。
掲載した原稿の版権はEDN Japanに帰属します。
design ideasへのご寄稿に関するご質問、ご要望などは、
EDN Japan編集部、 住所: 〒107-0051東京都港区元赤坂1-7-17 テラサワビル4F
電話: 03-3402-0076、FAX:03-3402-0209
e-mail:ednjreader@reedbusiness.jp

雑誌無償購読申込み ニュースレター登録 この記事に対する感想/ご意見
Reed Electronics Group
Electronic BUSINESS Japan | Design News Japan | Semiconductor INTERNATIONAL | DETAIL JAPAN
EDN Japanについて | 広告掲載について | サイトマップ | お問合せ
 Copyright (C) 2000-2007 Reed Business Information Japan K.K. 
個人情報に関する方針 | 著作権・リンクについて | 会社情報