6809のフリーランについて調べる。

前回記事に書いたシグネチャーアナライザのHP5006Aですが、こいつを汎用マイコンの故障検出に使うには
MPUをフリーラン状態にしなければどうしようもないということで、フリーランについて調べてみました。

私の持っている6809関係の書籍を一通り確認してみましたがフリーランに関する説明はありませんでした。

やはりアスキーの 6809ハンドブック  P190にあるシグネチャアナライザの解説以外に発見できません。
(どなたかご存知でしたら教えて下さい^^;;)

インターネットで集めたマイコンのフリーランの資料では68系に限らず80系や68K系等も
同じ特性で動作すると記述がありますのでZ80関係の書籍も調べてみましたがフリーランの正体分からず状態です^^;;;
(どれも英文なので話の半分も見えていなかったりします・・・・)

と、いうわけで予備機の数台あるFM-8実機で動作を調べてみました。

アスキの6809ハンドブック P.190を引用させてもらうと

ボードを保守するために、ボード上ではフリーランするようにデータバスをシステムから開放し、プロセッサのリセット直後から1バイト命令たとえばCLRB($5F)が実行されるように抵抗ジャンパを組みます。リセット直後、プロセッサは$5F5F番地の$5F(CLRB)を実行します。各アドレスラインはCLRBの1バイト命令の実行により、ちょうどバイナリカウンタになります。

とあります。

これを読んだだけでは私には具体的に何をすればいいのか分かりませんでしたが、HP社のアプリケーションノートAN-222に具体例がありました。

13ページからの「Section 4 General Hardware Considerations」が私のやりたいことにかなり近いと思われます。

アプリケーションノートでの実例は6800MPUですが、6809ハンドブックのP.191に「6809,6800,6801/3も等しくなります」
とあるので6809同様と考え読み進めます

アプリケーションノートの16ページに6800でCLRBを使ったフリーランの実例がありました。
68jp8

この通り配線した治具を作って6809に接続します。
DSC00993

MPUに付けるとこんな感じ^^
DSC00994

これをFM-8に取り付けて動作確認してみます。
(結論を先に書くとFM-8で実験する場合メインMPUではNGでサブMPUでSC28を外すと安定します)
DSC01012
本当は割込み線(NMI,IRQ,FIRQ)もプルアップが必要なようですが、オシロで見たところ必要なさそうなので省略してます

 

ロジアナでアドレスバスの発生アドレス確認

と、いうわけでこの状態で電源オン、MPUをスタートさせます。

アドレスバスに発生するアドレスをロジアナで測定してみると

なんと、きれいなカウンタ出力が出ていました。
DSC01025

きちんと$FFFF番地から$0000にループしているようです。
DSC01033
ときどきバス無効?? の$FFFFが出ますが1番地ずつインクリしています。

アドレスバスの波形を見ると、どうやらMPUのフリーランというのはPC値をそのままアドレスバスに番地出力するもので、
0番地からFFFF番地を無限ループする仕組みのようです。

その方法としてはアドレスバス~データバスになっている閉ループ回路でデータバスを開放して開ループにすることで
フリーランモードになると書かれていました。
その際、カウンタのインクリメントの条件としてデータバスに命令を指定するとその命令ステップでインクリするようです。
シグネチャーアナライザでアドレス関係の回路をテストするためには1バイト命令で1番地ずつインクリすることで目的の指示値が得られる仕組みのようでした。

別の資料には1バイト命令としてNOP命令を使うとありました。
と、いうことはバスで指示した命令をBRAなどの2バイト命令にすると2ステップずつインクリするんでしょうか?

次回ダイオードが出てきたら試してみます^^

シグネチャーアナライザを試す

MPUが無事にフリーランしたところで、シグネチャーアナライザを接続し指示を確認してみました。

測定条件は6809ハンドブックにある条件を使用しています。
START = A15立ち下がり
STOP = A15立ち下がり
クロック = E立ち下がり
この条件でアドレスバスの各指示を確認してみると

6809ハンドブックの通りの指示値が表示されました(^^)
DSC01034
A5ライン測定中 = 1U5P
(HP5006AはLED消灯で立下がり検出です。今回の測定ではSTART/STOP/CLOCKを立ち上がりにしても同じ指示値でした)

各アドレス線の指示値をメモ

ライン 指示値 ライン 指示値 ライン 指示値
Vss 0000 A4 1U5P A10 37C5
Vdd 0003 A5 0356 A11 6U28
A0 UUUU A6 U759 A12 4FCA
A1 FFFF A7 6F9A A13 4868
A2 8484 A8 7791 A14 9UP1
A3 P763 A9 6321 A15 0001

とりあえずMPUからのアドレスバス指示は全て確認が取れました。

あとは故障していない基板で各ポイントの指示値を調査して指示値の再現性があれば回路図にまとめることで障診断の
ヒントになるかと思われます。

しかし、フリーランも理解できていない、シグネチャーアナライザやロジアナの使い方も手探り状態では
正しいデータはいつ収集できることやら・・・・

今回の実験では謎がたくさん出てきましたが、シグネチャーアナライザ使用の第一歩にはたどり着いた感じです
(FM-8の場合、メインCPU回路やサブのSC28が付いた状態では正常にフリーランしないので、フリーランの条件などもっと情報を集める必要がありそうです・・・)

謎はおいおいまとめていく予定です(^^)

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。 本文に全角文字を2文字以上含めて下さい (スパム対策)