VersaBoard 8052 の製作 *********************************** *    製作に当たっての注意 * *                    * * 配線図どおり、ハンダ付けが出来れば必ず完成します。貴殿の責任に * * おいて製作するものであって、基板製作者及び頒布者側に一切の責任 * * の無いことを念頭においてから製作し下さい。    * *  * ***********************************  このボードを作るに当たっての注意点としては、おおよその回路を追いかけら れることが必要です。また、各I/Oの アドレスについてマップ(別紙)を見て どんなアドレス構成か理解出来ることなどです。BASICを大体理解出来、通 信ソフト(9600bps)の動くターミナルでMSDOSテキストフォーマッ トのファイルをアップロード出来るPCをお持ちの方々が条件となっています。 しかし、ICの向き抵抗、コンデンサの値を間違わずに差し込むことが出来れば 全く問題はありません。ベータテストでは多くのかたに使ってもらいました。若 干の問い合わせはあったものの無事にこのボードを使い衛星の自動追尾が可能と なっています。  別紙パーツリストにより、各人の使用目的に合わせた部品を取付ける。ワープ ロの通信機能を使い、このVersaBoardを使いBAISCを走らせ楽し む方にはU19(8255),U18(PDC7004C),U12(6242 1)は必要無いでしょう。順次、8255やPDC7004Cを使い外部入出力 に使うと面白い遊びが出来ます。  アンテナ・トラッカーとして組み立てることを想定した場合は、先ず必要な部 品だけ揃えるとよいだろ。次の部品はトラッカーとしては必要有りません。    U15(75176)                      始めて、ICを使った基板を作る方は、ICのソケットを使って組み立てた方が 何かのトラブルに見舞われた時修正が楽でしょう。 経験の豊かな方でもMPU ,ROM,RAMやインターフェイス関係のIC等は(後述 制作手順にあり) ソケットを利用してください。 8052のXTALは12MHz以下ならばど んな周波数でも使えますが、今後供給されるROMやプログラムでは11.05 92MHzを標準として扱っていきます。  その他、このボードは拡張性と汎用性を持たせていますのでCN(コネクタ) 類についても外部と接続するインターフェイスに関してのみパーツを入手し製作 に取り掛かって下さい。 *** ROMについての注意点 ***  プログラムROM(U10)はEEPROMを使うと、書き込みや消去が大変 楽になるため、特にプログラム開発や初期のテスト段階では大変便利でしょう。 27128のROMを使うと、今回紹介する自動追尾のプログラムとステップ数 の少ないプログラムは入ってしまいます。あるベータテスタの人はROMライタ で使われている28ピンのソケットをケースの前面に出し、ROMを差し替えて は色々なプログラムを動かせるようにしておりました。  通常EPROMに書き込んでおくプログラムは、定常的に使われるプログラム やBASICからCALLされ実行するサブルーチンなどが最適でしょう。 EEROMやEPROMの指定やROMのサイズはJP2,JP4を別紙ジャン パの設定方法を参照して下さい。  もう一つのROM(U9)はユーザROMと呼ばれ、8052モードとしては BASICの拡張ROMやモニタープログラムなどとして使われます。また、8 051モードとして27256,27512を使います。            先ず、BASICのユーザROMとして使う場合は2764(8KB),27 128などのROMを使い開始アドレスは´2000H´からとなりJP1,J P5,JP9をROMサイズによりそれぞれ別紙ジャンパの設定方法を参照して 行って下さい。 MicromintのBASIC拡張ROM(注1)8Kバイトの物を差し込む ことによりBASICの拡張やアッセンブリーコードの開発時には重宝です。 さらに、外部ROMモードとして使う場合は、27256,27512を使い開 始アドレスは´0000H´から最大´FFFFH´の64Kバイトを取ること が可能です。 8052/8051の/PSEN(ROMのリードストローブ用 )を使うことによって、RAM,PIO,ADCやRTCと同じアドレス空間で も競合せずに/RDと区別し読み出すことが出来ます。        注1 参照ユーザROM使用法 *** 電 源 ***  電源は、13.5V直接入力ですと、一挙に三端子レギュレータ(7805) によて安定化すると大変大きな発熱量となります。 大きめのヒートシンクを付 けるか8V位の電源を供給されると良いでしょう。ROMを焼き込む為の電源と して、特別な回路は入れておりませんがCN2にはROMの該当電圧を加えて下 さい。書き込み電圧が12.5Vのものは13.5Vを直接CN2の1に接続し てもよいでしょう。又は9Vの乾電池をVCCとの間に加算するような接続を行 うの事もできます。 RAM,RTC及び74HCT139はリチウム電池(3.6V 300MAh )によって電源遮断時には、開発中のプログラムや時計がバックアップされます 。 その制御はPST−532AによりVCCの低下が始まるとRAM,RTC のチップセレクトをブロックしRAMの内容や計時を保護します。 LCDのコントラスト用としてMAX232から−12Vを用意してあります。 コントラストを上げたい時には供給して下さい。 *** RS−232C ***  RS−232Cの入出力ケーブルは別紙ジャンパ,コネクタ接続を参照し、C N10からストレートケーブルを使い接続して下さい。接続ピンは対応するPC やソフトウエアによりTXD/RXD/GND以外に接続する必要が有るものも あります。例えばCTS/DSR/DCDのラインがアクティブでないとターミ ナルとして使えないものまで様々です。DB25のPIN4−5,PIN6−2 0を各々ジャンパすると良いでしょう。ここではPCはあくまでもASCIIフ ァイルがアップロード可能であれば機種やS/Wを選びません。 VersaB oardから出されるBASICのプロムプト″>″に対してアップロードが速 すぎるとフローコントロールを取り入れて有りませんので、″SYNTAX E RROR″と返されデータオーバランとなります。16Kバイトあまりのプログ ラムをロードするには7〜8分かかります。そんな時はコーヒブレークとして下 さい。 8052にはもう一つのシリアル出力が付いてます。プリンタポートとして備 わっており、CN4からRS−232CレベルとTTLレベルの出力が用意して 有ります。衛星追尾の時には周波数制御としてのトランシーバへの制御を行って います。UO−14などのFMにて受信する時は全く周波数に関して気にせずに 送受信が可能となっています。 *** 組立準備 *** すべてICソケットを使った方がいいかも知れませんが最低限以下のIC はソケットにすること。   U4  8252AH   U8  RAM   U9,U10 ROM   U11 62803   U12 RTC   U19 8255   U21 MAX232   U20,U22 LS645/640   これらのICはアプリケーションにより交換することがある、また他のユニ   ットとのインターフェイスで破壊されることがあるためです。 *多目的ボードであるため必ずしもすべての部品をとりつける必要はなく とりあえず以下にあげた部品をチェックしながら取り付ければ普通のBASI C衛星追跡ボードとしては十分です。あと必要に応じて追加してください。  従って欠番の部品番号があります。 *** 組立手順 *** パターンは細かいので一度取り付けた部品を取り外すことは困難で周辺のパタ ーンを破損する可能性が高い。 ICに関しては特別な道具がないとまず不可 能と考えたほうがよい。 十分にチェックしながら組み立ててください 1.ICソケットの取付   ICの方向、足の折れ曲がりに十分注意!! □U4ソケット □U8ソケット □U9ソケット □U10ソケット  □U11ソケッ □U12ソケット □U19ソケット□U20ソケット  □U21ソケット □U22ソケット ICの取付   □U1  □U2  □U3  □U5  □U6  □U7   □U13 □U14 □U16 □U17 □U18         2.コンデンサー取付  □ 0.1uF 積層コンデンサー  C1,C2,C4,C5,C6,C7,C8,C9,C10,C11,C12  C13,C16,C17,C18,C20,C21,C22,C23,C24  C25,C27,C31,C32,C33,C34  電解コンデンサー(またはタンタルコンデンサー)  極性に注意!!  □ C3,C36 各10uF 10V □ C28,C29,C30,C35 各47uF 25V  セラミック(30pF)  □ C14,C15 3.Q1,Q2 取付 □ Q1 7805 □ Q2 2SA1015 4.ダイオード取付  □ 1S1588 (10個) D2,D3,D4,D5.D6,D7.D8                 D9,D10,D11  □ 10D1 (1個) D1 5.抵抗の取付  □ RP1(47kx8)  □ 抵抗用ソケット(RP2.RP3) 20pICソケットを切って流用  □ 10K  R1,R2,R3,R4,R8,R9,R10  □ 1K   R5,R6,R12,R13,R14,R15.R16,R17         R18,R19 □ 4.7K R11 6.X−tal □ 11.0592MHz 7.Liーバッテリー  □ 3.6V リチウムバッテリー 8.ジャンパーポストの取付  □ 3P JP1,JP2,JP3,JP4,JP5,JP6,JP9       JP12,JP16  □ 2P JP13 9.コネクター取付  □ CN1電源 3P じか付けでも可 □ CN2 2P  □ CN4   5P  □ CN5   10P  □ CN8   8P  □ CN9   8P  □ CN10  10P  □ CN11  2P  □ CN12  5P 以上で完成です。  □ トラブルとして一番多いハンダブリッジの有無、ハンダ付けわすれ等確認。 *** パワーオン ***  テストを開始する前には必ず、ICの向きコネクタの接続の向き、特に電源の 入力の正負や三端子レギュレータを使わない方は電源を正しく5Vになっている か確認してから行って下さい。最初の設定は8052のBASICモードでおこ なってください。ROM/RAM/ADC/RTC/62803/8255は後 ほど順次取り付ければ良いでしょう。 設定を下記のように8052内部ROM BASICモードでおこなってくださ い。 JP3(1−2),JP6(1−2),JP8(1−2),JP13(OPEN) PCを接続する前に、CN1に電源を供給しパーワーオンを行い、各部の電圧を 点検して下さい。  □ Q1(7805)のOUTPUTが+5Vがあること。 □ U21(MAX232)のPIN2に約+8〜−12V □ U21(MAX232)のPIN6に約−8〜−12V 電圧は特に異常なければ、PCを接続しテストに入ります。 PCにターミナルソフトをロードし、4800bpsないしお好きなスピードで 8bit,パリィティ無しに設定して下さい。 RS−232CケーブルをボードとPCに接続し、ボードをパーワーオンして下 さい。まだここでは何も表示されません。ターミナルの″スペースバー″を1回 押し下げて下さい。するとMCS−51(tm)BASIC V1.1と表示さ れ更にBASIC READYが表示され″>″のプロンプトでウェイトに入り ます。 もし、ここまで来ない場合はもう一度次の箇所を点検して下さい。  □ RS−232Cの(TXD/RXD/GND)コネクター接続 CN10−3=DB25−3 TXD CN10−5=DB25−2 RXD CN10−9=DB25−7 GND  □ ICの向き  □ JP3,JP6が8052のBASICモードになっているか *** テ ス ト *** CLOCK/RAMバックアップ テスト  トラッカー用のプログラムを動かす前に、RAM/ROM/RTCなどの機能 をテストする必要があります。 U8(62256)にRAM,U10(2764/27128/EEPROM) ,U12(RTC−62421A/B),U18(PD7004C)とU19( 8255)を差し込みます。U9ユーザROMは今後プログラムが開発されてか らにします。ジャンパはU10のプログラムROMのサイズ,EEPROMとE PROMによって違います。EPROMを使う時は、CN2にROMを焼くとき に使う的確な(12.5V又は21V)電圧を供給してください。 (1)RTC 62421A/Bのテスト  フローピィに入っているCLOCK.BASをターミナルよりロードして下さ い。ロードされた後、″RUN″をさせプログラムにしたがい″1″入力し順次 ″年,月,日,時,分,秒″をUTC(JST−9時)にて設定して下さい。タ ーミナルの表示に時刻が変わっていく様子が写しだされるでしょう。 バックアップテストを行うために、JP13のバッテリィのジャンパを接続して 下さい。CN2にEPROMを焼くための電圧がかかっていることを確認し、次 の設定をおこなって下さい。 □ バッテリーバックアップ用JP13ジャンパ  □ ″CTRL−C″にて一端プログラムを止める。  □ XBY(5FH)=0A5Hキーイン 次のパーオン時にRAMクリアを    行なわない   □ PROG5 キーイン 再度、パーワーオンを行いターミナルの画面の表示を待ちます。すると今度はR S−232CのボーレイトはPROG5により覚えているのでMCS−51(t m).....READYと表示されます。先ほどプログラムがバックアップさ れているか確認の為に、LISTとキーインして下さい。CLOCK.BASの プログラムが表示されれるでしょう。RUNさせ今度は先ほど設定した時間のバ ックアップの確認の為、″1″とキーインして下さい。現在の時刻と同じになっ ているはずです。 もしEPROMに16Kバイトの27128を使っている場合は、トラッキング プログラム格納出来るだけの容量を持っていますので、このプログラムをROM に焼き込んでおきましょう。一端時計の表示を止めるため″CTRL−C″にて BASIC READYにして下さい。 ROMの内部のプログラムを動かす。  □ PROGとキーインすることでRAMからROMにプログラムが書き込み    がされます。直に″1″と返され1〜2分後にREADYが表示される。  □ パーワーオフ/オン   □ LISTとしてもRAMには何も入っていないことを確認  □ ROM1とキーインしカーレントプログラムをROMから呼び出す  □ RUNにてROMのプログラムが動き始める。 その他、ROMの書き込みの注意点は以下のとうりです。 ROMの書き込み方法は、インテル発行の「MCS BASIC-52 User's Manual」に詳 しく述べてありますが、とりあえず″PROG″とキーインとするとRAMに入 っているプログラムが転送されます。 RAMからROMへ書き込み時間は、長いプログラムだと十数分かかります。 ROMのVccを+5Vから+6VにすることによってFPROGコンマンドが 使え書き込みの時間を節約することが出来ますが回路が複雑になります。 初めてROMに書き込みした場合は、″1″が返されます。さらに2回目ならば ″2″と返され、今、最初にセーブした1番目のプログラムをROM上で動かす 場合は、″ROM1″とキーインし1番目のプログラムが呼び出されます。″L IST″とやってみれば1番目のプログラムだと確認も出来ます。更に"ROM  2″とすることで2番目のプログラムが呼び出されます。 このようにROMファイルとしてプログラムを管理してくれます。ここがまさし しく8052 MPUの魅力です。 更に、RAM上に展開してあるプログラム はそのままでROMのプログラムを動かしたり、RAMのプログラムも交互に動 かすことが出来ます。 8052にはカーレントプログラムをROMメモリーからとRAMメモリから 動かすことが理解できたでしょう。 ROMに書かれたプログラムは、あるライ ンのステートメントを変更することは出来ません(ROMですから)。その時は一 端ROMからRAMに″XFER″で転送しラインエディットが可能です。。 ROMに書き込みするプログラムはCLOCK、BASやADCPIO、BAS が良いでしょう。出来る限りREM文(注釈文)を少なくしてから保存しROM の空き領域を多くしておきましょう。 TRACKING用のプログラムは自分が使う環境(LAT,LON,HIGH TやAZ,ELのオフセット等)をカストマイズしてからROMに焼きんだほう が良いでしょう。 uPD7004Cと8255(ADCとDIGITAL IN/OUT)  ADCPIO、BASというプログラムをNEWコマンド(RAMクリア)の 後に、先ほどと同じようにターミナルから転送して下さい。 □ ADCの動作テスト 先ず、アナログテストをすることにします。プログラムをRUNさせ″1、TE ST OF ADC″の表示に従い、″1″とキーインして下さい。 今はAZ のインプットの代わりに+5VをCN12−1のADC0に加えて下さい。約1 023と表示されるはずです。 10BITのADCを使っているためADCの Vref.の電圧+5Vと同等だからです。 次は、CN12−1をGNDに落とします。そうすると表示は0になります。 0から+5Vの範囲の電圧を加えることによって表示の変化を見て下さい。その 時にもう一つの表示されている数字は最大360度の仮の水平方向を現していま す。同様にELの入力として、CN12−2のADC1もテストして下さい。 □ 8255 C−PORTテスト ″2、TEST OF PIO″の表示に従い″2″とキーインし、更に825 5の各ポートをテストするため、テスターの抵抗計を100オームにセットしU 11−1(PC0)とGNDにあて。″1.SET BIT 0″に従い″1″ とキーインすると、テスターの振れは導通になるでしょう。″5″とキーインす ることによってテスターの振れはオープンに戻ります。 同様にPC1〜PC3まで確認して下さい。 □ 8255 B−PORTテスト B−PORTの入力テストは74LS645(非反転論理)をU22に差し込み JP16(2−3)にジャンパし8255に対してインプットとして下さい。 又、プルアップ抵抗RP−3を差し込んで、CN9に何も接続せずに、″9 R EAD PORT−B″にて″255″になります。反対に全てをGNDを接続 すると、プログラムからは″0″が返されます。 以上で、RTC,ADC,PPI(8255),ROMの基本的なテストは完了 しました。