フォト
無料ブログはココログ

HD63B03

2013年6月23日 (日)

ロジアナ

 HD63B03SBCにLILBUGを載せようとしている。動かないのでロジアナを持ち出してきたのだがイマイチよくわからない。
Zeroplus16064

 このロジアナ(LogicCube16064)は16chで安かったのと、32chに改造できるという情報を見付けたので買ったのだが、残念ながら内部のチップが32chに対応していなかった。

 16chあれば大抵は十分なのだけれど、アドレスバスとデータバスを見ようとするとちょっと厳しい。せめてあと8ch欲しい。

 遅くてもよいので32chくらいのロジアナを探していると、sigrokなるプロジェクトを見付けた。

 sigrokは、portableでcross-platformでFreeでLibreなOpen-Sourceの信号解析ソフトウェアだ。(まんまやんけ)もちろんLogicCube16064も使えるし、 Openbench Logic Sniffer (OLS)が使える。

 OLSは open sourceなlogic analyzerで、USB-シリアル変換に使ってるPIC18F24J50の先にSpartan3E XC3S250Aが繋がる。200MHzでサンプリングできるが、FPGA内蔵のRAMを使っているので、4k@32ch、8k@16h、16k@8chとメモリが少ない。FPGAを使っているのでSDRAMを外付けすればメモリは問題にならないのだけれど。

ここで売っていて

Openbench Logic Sinffer(16ch)   $50
plobe (8ch) $6×2 $12
16ch $62
buffer wing(16ch)   $15
plobe (8ch) $6×2 $12
32ch $89

である。

 32chで$89は安い、オプティマイズのカメレオンUSB+ロジアナキットより安い。
カ メレオン・ロジアナにもソフトは付いているけれどプロトコルを解釈してくれない。LogicCubeはソフトも立派でプ ロトコルの解釈もしてくれるけど、プロトコル解釈のアドインは有料だ。
sigrokはOpenSourceでプロトコルが解釈できるようになっているので今後サポートされるプロトコルことが 期待できる。

 OLSは作れそう。XC3S250Eが載ったDWMのオマケ基板があったような気がする。


ロジアナ(2013/06/23)
ロジアナ(2)(2013/06/25)
ロジアナ(3)(2013/07/05)
ロジアナ(4)(2013/07/09)

2013年5月26日 (日)

モニタ(LILBUG)(2)

 使っているROMライタは、実アドレスとROM内のアドレスを変換する機能が無いので、S19ファイルからバイナリファイルを作って、適当にROMアドレスに配置して他を$FFで埋めることにした。

 プログラムを作ろうかと思ったが、きっと誰かが作っているはずだと探してみた。S19フォーマットを扱うフリーソフトはいろいろ見付けたけど、使い勝手がよさそうなソフトが見付からない。

 S19からバイナリの変換はソースが公開されているs19tobinというツールが見つかったのでこれを使うことにした。

 Cygwin上のi686-pc-mingw32-gcc.exeでコンパイルして(-nno-cygwinオプションは使えなくなったらしい)S19をバイナリに変換すると数バイト増えてる??
変換したバイナリファイルをバイナリエディタで開いてアセンブルリストと比べてみると $0Aの後に$0Dが増えている。

 ここでようやく気が付いた。
Cywingのdllが無くても動くようにMingwのgccでコンパイルしたのがよくなかったようだ。ソースを確認すると、出力用のバイナリファイルが
  fopen(nfile, "w")
でオープンされている。
昔DOSでプログラミングしていた時よくハマったのになあと思いながら
  fopen(nfile, "wb")
に直したら$0Dが混ざらなくなった。

 LILBUG.ASMの修正を間違えたのが原因かと思い、ソースを見ようとしたらとても見にくくて、ソースファイルを修正するスクリプトまで書いたのに...

 ROM用のバイナリファイルを作って、実際にROMに焼いてHD63B03SBCに挿して起動すると動かない。シリアルにメッセージとプロンプトが出るはずだけど。

2013年5月20日 (月)

モニタ(LILBUG)

 HD6303/MC6803/MC6801のモニタを探してみると、PROBUGとLILBUGというデバッグモニタがあることが分かった。いずれもMC6801/MC68701評価ボード用のモニタらしい。

PROBUGのマニュアルとs19ファイルを見付けた。このモニタは$B800~$BFFFに配置するらしい。HD63B03SBCのROMは$C000~$DFFFに配置したのでアドレスを変えてアセンブルしなければならないがソースが見つからない。

 一方LILBUGはPDFのマニュアルがすぐに見つかってマニュアルの中にソースリストが掲載されている。LILBUG.ASMで検索するとソースがあっさり見つかった。

ソースコード

 MC6801用のアセンブラas1.exeでアセンブルすると

C:\lilbug>as1.exe lilbug.asm
7: Unrecognized OPT
8: Unrecognized Mnemonic
11: Unrecognized Mnemonic
12: Unrecognized Mnemonic
14: Unrecognized Mnemonic
109: Unrecognized Mnemonic
111: Unrecognized Mnemonic
112: Unrecognized Mnemonic
114: Unrecognized Mnemonic
254: Unrecognized Mnemonic
259: Unrecognized Mnemonic
260: Unrecognized Mnemonic
261: Symbol Redefined
268: Unrecognized Mnemonic
281: Unrecognized Mnemonic
287: Unrecognized Mnemonic
288: Unrecognized Mnemonic
289: Symbol Redefined
293: Unrecognized Mnemonic

とエラーがいっぱいである。680xのアセンブラは書いたことが無いけれどソースを見ると。

 1 ** FOR VDG, SET VDG = 0,
 2 ** FOR NON-VDG, SET VDG = 1
 3 VDG EQU 1
 4 * FOR ON-CHIP IO, SET CHIPIO = 0
 5 * FOR ACIA TEST SET CHIPIO = 1
 6 CHIPIO EQU 0
 7  OPT Z01
 8  IFEQ VDG
 9  TTL 6801 MONITOR WITH VDG MODS
10 VDGORG EQU $100
11  ENDC
12  IFNE VDG
13   TTL 6801 DEBUG MONITOR
14  ENDC

(このソースは読みにくい!オペコード、オペランドの後は何を書いても良いのか。それにしてもスペースではなくてTABにしてくれたら良いのに!)

 7行目のエラーは as1のOPT擬似命令でZ01は指定できないということか。
この行は、おそらく6801命令の宣言だろう。今回は6801用アセンブラを使用しているのでコメントアウトする。

 8行め11行目のエラーは
 IFEQ xxx ~ ENDC
が Unrecognized Mnemonic なのでこのディレクティブが使えないのだろう。
  VDG EQU 1 や CHIPIO EQU 0
が定義してあるので、

 6 *CHIPIO EQU 0
 7 * OPT Z01
 8 * IFEQ VDG
 9 * TTL 6801 MONITOR WITH VDG MODS
10 *VDGORG EQU $100
11 * ENDC

のようにコメントアウトしたらとりあえず通るようになった。

通信速度

 このシステムのクロックは 4.9152MHz/2.4576MHz だけど 7.3728MHzを使ったのでシリアルの通信速度が変わってくる。

Command4.9152MHz2.4576MHz 7.3728MHzDevide
HY9,600bps 4,800bps 115,200bps /16
      14,400bps /128
HI1,200bps 600bps 1,800bps /1024
Reset300bps 150bps 450bps /4096

 シリアルの通信速度は RMCR( Control Register)で指定する分周比で決まって、指定できる分周比は/16,/128,/1024,/4096である。
クロックに7.3728MHzを使ったので、使える通信速度は115,200bps(/16)と14,400bps(/128)だけなので、リセット時とHIコマンド実行時は14,400bpsとし、HYコマンド実行時には115,200bpsになるようにしよう。具体的には。

319 CION LDD #$1007 SET PADDING FOR 300
   ↓
319 CION LDD #$1005 SET PADDING FOR 300

364 S120 LDD #$4F06
   ↓
364 S120 LDD #$4F05

371 HY LDD #$0005 ALSO SET RMCR
   ↓
371 HY LDD #$0000 ALSO SET RMCR

のように修正してようやくLILBUG.S19ができた。

このモニタは $F800~$FFFFに配置するようだ。使ってるROMライタにはS19に記述された実アドレスとROMに書くアドレスを変換する機能が無いようだ。

2013年5月 6日 (月)

配線した(HD63B03)

プレゼンテーションタイマ(2013/3/31)のバグが取れないので、気分を変えてHD63B03 SBC(2012/3/20)の半田付けした。
Hd63b03sbc1
↑ソケット、コネクタ、X'tal、lCRの配線が終わったところ。

↓裏面 バスの配線にはサンハヤトのシール基板ICB-055を使用した。
Hd63b03sbc3

配線のチェック
Hd63b03sbccheck
配線忘れが1ケ所と、集合抵抗がおかしいことが判明。

この集合抵抗
Hd63b03sbcrnetwork

この集合抵抗は↓図のTypeAとばかり思っていたらTypeBだったというお粗末。
Rnetwork

MCU、RAM、ROMを載せたところ
Hd63b03sbc4
RAMは8k(6264)でよかったのだが手持ちが無かったので32kの大盤振る舞い。

さてモニタはどうしよう。

2012年9月16日 (日)

シュリンク基板

 シュリンク基板は千石でも売っていることに気がついていたのだが、若松でも見つけた。
Milic01

 サンハヤトのMIL ICB-01という製品で、現在はICB-01Bになっている。ICB-01Bは28pin,40pin,64pinに対応しているがICB-01は28pinと40pinだ。
それで安かったのか。なんと¥280だ。

Photo_7
左から、秋月、千石、若松

サンハヤトの基板は全て1.77mmピッチでないところがいいね。

2012年7月23日 (月)

シュリンクソケット

1.77mmピッチの秋月C基板を買ってきた
Shrink_socket
当然だけどちゃんと載る。

シュリンクDIPには幅が異なるパッケージがあることに気が付いた
幅:0.77in (HD63B03YP)
Hd63b03yp_socket

幅:0.63in (↑より2列狭い) (MB8431)
Mb8431_socket

2012年3月27日 (火)

HD63B03YP

IC箱を見ていたら、HD63B03YPがあった。
マルツの現品限りで買ったようだ。
Hd63b03yp1

HD63B03RPと違うのは、

  • アドレスバス、データバスが独立
  • タイマが2コ
  • 内臓RAMが256Byte

アドレスラッチが不要でポートが8bit+2bit余計に使える。

でも、シュリンクDIPだ。ユニバーサル基板に載らない。
64ピンシュリンクDIPソケットをRSオンラインで探したら10ケで\3,020だ。ICより高いぞ。
もしやと思い秋月で探したら、1ケ\50だって。
こんど秋葉に行ったときに買ってこよう。

2012年3月20日 (火)

回路図を描いてみた(HD63B03)

HD63B03を使ったSBCの回路図を描いてみた。

Sbc6303

これなら、ICB-293Uに載りそうだ。
ということで Pass を使って載せてみた。

Sbc6303board

配線が少なくて簡単そうだ。

疑問点は2つ
○Monitor
 6303のBUGは何を使ってたのだろう?
○割り込みベクタ
 この構成だと、割り込みベクタの領域がRAMではない
 RAMエリアに飛ばして、そこにBRA XXXXを書くのかなあ

2012年1月 5日 (木)

HD63B03

年末は最近飲み会続きで半田ごてを触れなかった。

ちょっと前に買ってきたHD63B03

Hd63b03rp

タイマ、シリアルIO、パラレルIOが付いていて 8031みたいな感じだ。
BASICでも載せてみようか。