LPC810マイコンで作ったコンソールをSBC6800へつなぐ

1チップマイコンでシリアルコンソール

LPC810というマイコン(なんと8pin DIPなのに32bit!!)でシリアルコンソールがつくれるという記事がこちらで公開されています。
この回路をプリント基板へ起こしたものがオレンジピコで販売中だったので、早速買ってみました。(2018/4/22現在売り切れ?)
入力はPS/2キーボード、出力は懐かしのアナログビデオ出力です。

SBC6800をスタンドアロンコンピューターにできそう?!

部品あつめ

部品はメインとなるLPC810マイコンチップと抵抗器、コンデンサなどです。

  • LPC810マイコンチップ
  • 秋月電子などでも販売されていましたが在庫が無いようです。安いときは100円を切っていた模様ですが、今は安くて100円台の模様。(すでにディスコン??)
  • 抵抗器
  • 1/4W程度のカーボン抵抗を使いました。10kΩx2、390Ω、180Ω、51Ω(回路図ではそれぞれ400Ω、170Ω、51Ω)
  • コンデンサ
  • 元回路図ではすべて0.1μFでしたが、オレンジピコの回路図では3端子レギュレータの両端は10μFが指定されていたのでタンタルコンデンサを使用。(極性があるので注意。間違うと発火するらしいです)
  • その他 5v→3.3V 三端子レギュレータ、PS/2キーボード端子、RCA端子(アナログビデオ)、ピンヘッダ等…

ハンダ付けの注意

  • 部品のハンダ付けで注意するところはあまりありませんが、いつもどおり背の低い部品からハンダ付けが吉です。
  • タンタルコンデンサを使用する際は極性に注意。+と-を間違えると発火したという画像がたくさんあります….
  • 三端子レギュレータはトランジスタみたいにちっちゃいやつじゃないとうまく収まらないかも。
  • ジャンパピンを差す2列ピンヘッダの手持ちが無かったので、1列ピンヘッダを並べて装着しました。

LPC810へプログラム書き込み

稼働の前にLPC810へプログラムを書き込む必要があります。
こんな感じで接続しました。LPC810は3.3V駆動ですので5Vは三端子レギュレータ経由でつなぎます。
LPC810開発ボードのジャンパピンは全部はずした状態で実施しました。

参考→LPC810(6) 〜 ISPモードでのプログラム書き込み

  • 以下のページからリンクされているzipファイルをダウンロードして展開します。
  • LPC810を使ったコンソール(紹介編)
  • バイナリ形式とHEX形式のファイルがあり、106キーボードの場合は “con810_106.hex”を使用すれば良い模様。
  • 書き込みには Macで lpc12isp を使用しました。(Homebrewで導入できます) コマンドと実行結果は以下のような感じです。書き込みが上手く行ったらターミナルモードに入るので[esc]キーで抜けます。これで書き込み完了のはず。
$ sudo lpc21isp con810_106.hex -hex -term /dev/tty.usbserial 115200 12000
Password:
lpc21isp version 1.97
File con810_106.hex:
loaded...
Start Address = 0x0000010D
converted to binary format...
image size : 3316
Image size : 3316
Synchronizing (ESC to abort). OK
Read bootcode version: 4
13
Read part ID: LPC810M021FN8, 4 kiB FLASH / 1 kiB SRAM (0x00008100)
Will start programming at Sector 1 if possible, and conclude with Sector 0 to ensure that checksum is written last.
Erasing sector 0 first, to invalidate checksum. OK
Sector 1: ...|.|.|.
Sector 2: ...|.|.|.
Sector 3: ...
Sector 0: ..|.|.|.
Download Finished... taking 1 seconds
Now launching the brand new code
Terminal started (press Escape to abort)

Terminal stopped

$

稼働!…しない?だと?

SBC6800とクロス接続

今回作成したシリアルコンソールとSBC6800ボードを接続してテストしてみました。接続は以下のようなかたちでGND同士を接続とTx(送信)とRx(受信)を互い違いに接続してみました。

SBC6800のスイッチをON!! にしてみましたがカーソルは出るものの無応答…orz
しかも4.2インチ液晶モニターのカーソルはジワジワとスクロールアップしていきます。水平同期が合っていない模様。

SBC6800のスイッチをOFF/ONするとたまに? “*”とか入力したコマンドが表示されます。どうもシリアル通信が詰まっている模様。^^)
試しにMacにシリアル-USB変換基板をつないで同様に3線で接続してターミナルソフトを立ち上げてみたらちゃんと通信できました!! これはSBC6800との接続でなにかありそう….

原因はRTS/CTSの接続でした

クロス接続の基本がなってなかったわけですが…..原因はRTS/CTSの接続でした。

こちらにクロスケーブル接続の例が2つ出ていますが、今回つくったLPC810シリアルコンソール基板はRTS/CTSがありませんので、SBC6800側をショートさせる必要があるのでした。…. orz (←相変わらず基本がなってない..)

気を取り直して、このような接続へ変更。

うごきました!!

スクロールする問題

上の動画でも まだスクロールする問題が治ってませんが、@houmei さんより初期の4.3インチモニターだと発生する事象らしいという情報をいただきました。(Ichigojamではちゃんと映るけど、MSXなどではスクロールする模様)
Ichigojamでも安定しなくて水晶振動子を追加で買った気がしてきました。LPC810へ焼き込んだプログラムの調整で安定しないか試してみたいと思います。

この記事はつづく?…かな??

コメント