TONO PMT−192改造レポート |
PMT−192の9600bpsモデムに使われているCML−FX589は最大64Kbpsまで可能なデバイスです。メーカー標準では19200bpsまでしか対応できないので改造してみることにしました。
1998.8.13 de JS1RSV
FX589のスペック
DataRate | 4Kb/s〜64Kb/s |
Selection BT | 0.3 or 0.5 |
Full−Duplex GMSK |
使用可能なボーレート(太線はPMT192標準)
(ClkDiv)A-B | 8.192 | 4.9152 | 4.096 | 2.4576 | 2.048 | MHz |
0-0 | 64000 | 38400 | 32000 | 19200 | 16000 | bps |
0-1 | 32000 | 19200 | 16000 | 9600 | 8000 | bps |
1-0 | 1600 | 9600 | 8000 | 4800 | 4000 | bps |
1-1 | 8000 | 4800 | 4000 | bps |
Down Load FX586 Data Sheet (PDF/268Kb)
名称 | FX589(pin) | PIOB(bit) | 備考 |
BT | 15 | 6 | 0=0.3 1=0.5 |
ClkDivA | 3 | 0 | |
ClkDivB | 4 | 1 |
PIOとFX589の結線
PMT−192は、FX589を全てTNCから制御できるように結線されています。また、PMT−192のハードウエアを改造しなくても、モデム自体は38400bpsが使用可能にすることができるハズです。つまり、ファームウエアを改造すれば、それだけで38400bps化できることになります。
ただし、これはアナログ回路の話は考慮されていません。広帯域化することで、フィルタ関係の定数を変更しなくてはなりません。ちなみに、IFフィルタにはB型が使われているので、かなり広いと思われます。38400bps/BT=0.3ならアナログ部無改造でも使えないかなあ?などと考えています。この辺は、今後の実験で明らかになるでしょう。
PMT−192のTNC用ROMは、データラインの接続を変更していて、ROMの内容をそのまま読んでも正しいデータは出てきません。しかし、アドレスラインは素直に接続されているので、ビット操作だけで修正できます。
CPUのデータバス | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | bit |
ROMのデータバス | 2 | 1 | 0 | 6 | 4 | 7 | 3 | 5 | bit |
ROMの暗号化を解いて、Z80のディスアセンブラで解析してみました。中をのぞいてみると、プログラム的には38400bpsに対応できるように作られています。プログラムの設定では、4800〜19200bpsではBT=0.5、38400bpsではBT=0.3の設定になるようです。IFフィルタにB型が付いていたのは、これが理由だったようです。この辺は予想通りといったところでした。
でも、38400bpsに切り替えるのはプロテクトが掛かっていて、それが何処に掛かっているか中々見つかりませんでした。少々てこずりましたが、なんとかファームウエアのパッチ(5byteのみ)だけで38400bpsが出せるようになりました。これで、1200,4800,9600,19200bpsが使用可能だった処を、1200,9600,19200,38400bpsが使えるようになります。テストの結果、FX589からは、ちゃんと38400bpsの信号がでているようです。
アドレス | オリジナルデータ | 変更後データ |
60DE | 28 | 20 |
60DF | 12 | 85 |
60E0 | 20 | 00 |
60E1 | 85 | 4E |
60E3 | 4E | 33 |
ファームウエアに5バイトパッチを当てる
しかし!! 38400bpsにすると、送信がうまく動きません。どうやら、SIOからの送信信号がちゃんと出ていないようです。19200bpsだと問題ないので、ひょっとするとCPUの速度的な問題があるのかもしれません。PMT−192はTNC2クローンです。Z80も9.8MHzで動いていますから、まずまずの速度だと思います。KISSモードなら動くかもしれませんが、実験できる環境がないので試してはいません。
8/13時点での実験結果では、KISSモードで使用したときも、うまく送信できないことが分かりました。38400bpsで動かない理由がTNC2のファームウエア以外にあるなら対策できるかもしれませんが不明です。既にTNC2で38400bpsの稼動例をご存知の方、いらっしゃいましたらJS1RSVまでお知らせ頂ければ幸いです。