8051マイクロプロセッサのクロックとしてのEconOscillator™の使用

2008年05月16日
myAnalogに追加

myAnalog のリソース セクション、既存のプロジェクト、または新しいプロジェクトに記事を追加します。

新規プロジェクトを作成

要約

8051ベースのマイクロコントローラを使用する際には、外部クロックリファレンスを選ぶのに注意が必要です。コントローラのシリアルインタフェースのタイミング要件が満たされなくてはならないからです。通常、8051シリアルポートは、もう一つのプロセッサまたはホストプロセッサにシリアル通信リンクを提供するためにRS-232トランスミッタ/レシーバとともに使われます。RS-232仕様は、このプロトコルを使って他のすべてのデバイスへの通信を保証するような特定のタイミング要件を持ちます。8051ベースのプロセッサは外部タイミングリファレンス(水晶またはクロック)と内部プログラマブル分周器チェーンの組合せを使ってシリアルポートタイミングを生成します。このアプリケーションノートはEconOscillatorを使ってどのように外部クロック要件が満たされるのかについて説明し、8051内部シリアルポート制御レジスタをプログラミングする際の計算の手助けとなります。

はじめに

EconOscillatorは基本周波数を提供する内部発振器を備えており、内部分周器チェーンを使用して基本周波数を所望の速度まで落とします。各部品番号が4つの基本周波数(60MHz、66.67MHz、80MHz、または100MHz)を分周して、基本周波数の2052分の1まで速度を調整することができます。EconOscillatorは、システムの要求条件に応じてマイクロプロセッサ、FPGA、およびCPLD回路を含む任意のタイプのクロック付ロジック用に使用することができます。

8051マイクロプロセッサとRS-232シリアル通信

クロックを選択する時は、クロック速度と、動作寿命を通じてのクロック精度という2つの要因に注意して下さい。8051マイクロプロセッサシステムにおいては、RS-232シリアル通信の使用がしばしばシステムクロック速度を決定します。例えば、12MHzクロック(オリジナルの8051の最大クロック速度)を使用する非同期モード1シリアル通信を想定して下さい。表1に、標準ボーレートを確立するために必要なタイマー1オートリロード値を示します。

表1. オリジナルの8051マイクロプロセッサ用に12MHzクリスタルを使用する場合のボーレートおよびボーレート誤差

Timer 1 Auto Reload Value Actual Baud Rate
(Desired Baud Rate)
Baud Rate Error
255 31250 (28800) 8.5%
254 15625 (14400) 8.5%
253 10417 (9600) 8.4%
249 / 250 4464 / 5208 (4800) 7% / 8.5%
243 2404 (2400) 0.16%

表1の実際のボーレートは、次式を使用して計算されました(ダラスセミコンダクタの「High-Speed Microcontroller User's Guide (高速マイクロコントローラのユーザーズガイド)」から転載)。

式1

表の数字は以下のタイマー1条件を基にしています。

  • タイマー当たりの増分を12クロックサイクルに設定(DS87C520はタイマー1のカウントを4または12クロックサイクル毎に増分可能です)
  • オートリロードモードはイネーブル
  • ボーレートダブラ(SMOD=0)はディセーブル
RS-232シリアル通信のユーザーの殆どは、ボーレート誤差が3%を超えると通信エラーが起こりやすいことを知っています。エラーはデータ転送中にスタートおよびストップビットの同期を行っても生じます。許容誤差が3%の場合、12MHzクリスタル使用時の最大通信速度は2400ボーに制限されます。これは1990年代の初期なら悪くない速度ですが、今日の基準では遅すぎます。幸い、8051シリアル通信用に作られたクリスタルがあり、周波数は11.059MHzまたは22.118MHzとなっています。これらのクリスタルを使用するマイクロプロセッサは、ボーレートが大幅に改善されており(表2)、最大57.6kbps (SMOD = 1としてボーレートダブラを使用するDS87C520の場合115.2kbps)のデータ転送速度を実現しています。これは今日の殆どのマイクロプロセッサ機器にとって十分な値です。

表2. RS-232シリアル通信用に選択されたクリスタル周波数を使用して生成されたボーレート

Timer 1 Auto-Reload Value Baud Rate with
Focc = 11.059MHz
Baud Rate with
Focc = 22.118MHz
255 28.799.5 57598.9
254 14399.7 28799.5
253 9599.8 19199.6
250 4799.91 9599.83
244 2399.95 4799.91
232 1199.98 2399.95
208 599.98 1199.98
160 299.99 599.99
64 149.99 299.99

注:
ボーレートを指定されたレートの3%以内に要求することでクロックの精度を確保することができます。仮にRS-232通信向けに理想的なクロックレートが選択されても、クロックが3%以上変化すれば一貫した通信に支障をきたす可能性があります。

8051マイクロプロセッサのクロックとしてのEconOscillator DS1077の使用

DS1077は様々な基本周波数で提供されており、内部発振器は133 MHz 、125 MHz 、120 MHz 、100 MHz 、および66.667MHzとなっています。内部分周器チェーンを使用して、これらを8051アプリケーションに十分なだけ遅くする場合、理論的にはどの製品を使用しても構いません。しかし8051のシリアルポートを使用する場合は、マイクロプロセッサのニーズに合せて基本部品を選んで下さい。これは必要なボーレートとマイクロプロセッサのボーレート生成式に依ります。

この例の8051マイクロプロセッサの場合、発振器周波数としては11.059MHzと22.118MHzが適しています。ボーレート生成の許容誤差は約3%です。66.667MHzの基本製品(DS1077-66)を使用すると、基本周波数を6分周して11.111MHzまで下げることができます。これだと理想の周波数11.059MHzとの誤差が0.47%と小さくなります。設定周波数からの偏差が1.25%というワーストケースの場合でも、誤差は許容範囲に収まります。即ち、DS1077-66は所望の周波数11.059MHzからの最大誤差1. 72%を許容することになり、最大28.8kbpsまでの通信には十分です。

DS87C520 (最大クロック速度33MHz)のような許容クロック速度の高い8051を使用する場合は、クロック速度を3分周するだけで22.222MHzを得ることができます。この時の最大誤差は、いずれの22.118MHzボーレートにおいても通信可能な範囲です。また、クロック速度が速いと、他のアプリケーションのニーズに対しても高レベルのプロセッサ性能を提供することができます。

8051設計にDS1077を使用することの大きな利点は柔軟性です。オリジナルの8051または相当品のマイクロプロセッサ(最大クロック速度12MHz)を使用して始めた設計の場合でも、単に発振器を再設定してマイクロプロセッサを置き換えるだけでアップグレードすることができます。設計によっては、DS1077をソケット内で再設定することもできます。8051マイクロプロセッサの40ピンDIPバージョンを使用している場合、マキシムおよび多くの他社が100%コンパチブルのいくつかの置換え用チップを製造しています。中でも最も速いのはマキシムのDS89C430であり、オリジナルの8051より50倍アップの高性能を提供し、ウォッチドッグタイマおよび電源管理等、オリジナルの8051にはないリソースも備えています。DS87C520のように最大11倍の性能を提供するチップもあります。(マキシムは更に制御アプリケーション用にPWMおよびADCを備えた8051のバージョンも作っていますが、これらは40ピンDIPパッケージでは提供されていません。)

ハードウェアのセットアップ

DS1077を使用するためには、本製品のEEPROMレジスタを設定するための方法を確立する必要があります。一旦、DS1077を設定したら、図1の回路図を参照して、DS1077を8051マイクロプロセッサと適正に動作させるための配線を行います。DS1077の出力はXTAL1に行き、XTAL2は接続されていないことに注意して下さい。XTAL2は通常、8051のクリスタル発振器出力です。このピンに何かを接続するとマイクロプロセッサの負荷となりますし、XTAL1で補助クロックデバイスをマイクロプロセッサと並列に接続できる時は必要ありません。(但しこれは、補助デバイスと8051の複合負荷がDS1077の出力電流仕様を超えないと仮定した場合です。)

図1. 8051マイクロプロセッサのクロックとしてDS1077発振器を使用する場合のハードウェアセットアップ
図1. 8051マイクロプロセッサのクロックとしてDS1077発振器を使用する場合のハードウェアセットアップ

最新メディア 21

Subtitle
さらに詳しく
myAnalogに追加

myAnalog のリソース セクション、既存のプロジェクト、または新しいプロジェクトに記事を追加します。

新規プロジェクトを作成