サーマルプリンターの接続

AVRとZ80でCP/Mの改良の応用例です。

拡大/基板

プリンターを接続してみたい

小さなマシンなのでそれに合うような小さいプリンターはないかとヤフオクを検索していたら小型のサーマルプリンターが安く出ていたのでこれuTP-58S24Aを落札しました。新品でしたが取説を読むと内部は8050というマイコンでI/Fチップはなんと8251というかなり古いもののようです。付属品に変な板金が付いていますが用途がいまいち分かりません。そのまま取り付けるとコネクタのビスにぶつかってしまいます。本体が軽いので「重し」代わりには使えるのでプラバンでスペーサを作って取り付けています。写真

インターフェースはシリアルで設定は変更できるようですがデフォルトで、非同期/9600bps/8ビット/奇数パリティ/2ストップビット、DTR端子でタイミングを取るようになっています。

回路図

SIOとの接続は2本だけですがどちらも論理が逆なので素直に7404を使えばよかったんですがあり合わせのもので済ましてます。RxD端子は内部でプルダウンされているのでPch(BSS84)でないとうまくいきませんでした。

ソフトの作成

CP/Mメモリサイズ変更手順メモでBIOSの更新がCP/M上でできるようになったので、必要なファイルを集めたディスクを用意してしまえば後はPC無しで作業ができます。

CTC/SIOのプログラミングですが最近は資料がなかなか見つからないですね。初期化で悩みました。プリンターのDTRをSIOのCTSで受けていますが、RR0レジスタでCTSの状態が読める(のでインバータは要らない)と思っていたのですが違いました。非同期の場合はソフトからはCTSは読めないようです。資料を読むとCTSのチェックはハード的に行われる(オートイネーブル動作)ので、バッファが空かをチェックしろと書いてあります。BIOSの変更箇所はこんな感じ。(8080アセンブラなのでZ80コードはハンドアセンブルです)

BOOT:
	LXI	SP,BUFF
	CALL	INICTC3		; 2014.5.17
	CALL	INISIOA		; 2014.5.17
	LXI	H,SIGNON
	CALL	PRMSG
LIST:
	CALL	SIOAEMPCK
	JZ	LIST
	MOV	A,C
	OUT	SIOAB
	RET

追加。

SIOAB	EQU	18H	;DATA BUFFER
SIOAC	EQU	19H	;COMMAND/STATUS
CTC3	EQU	13H
;-----------INIT CTC3------------------------------------------------
INICTC3:			; CLOCK FOR SIOA (CPUCLOCK 9.8304MHZ)
	MVI	A,00010111B	; NON-IRQ : Timer.mode : 1/16 
	OUT	CTC3
	MVI	A,4		; 153600Hz = 9600bps
	OUT	CTC3		;
	RET			;
;----------INIT SIOA-------------------------------------------------
INISIOA:
	LXI	H,SIOATBL
	MVI	B,10
	MVI	C,SIOAC
	DB	0EDH,0B3H	;OTIR
	RET
;----------
SIOATBL:
	DB	00H,18H		; reset
	DB	01H,00000000B	; RCV IRQ DISABLE
	DB	04H,01001101B	; PARITY ODD SB2
	DB	05H,11101010B	; tx8 / tx.en / dtr on / rts.on
	DB	03H,11100001B	; rx8 / auto.en on /rx.en
;--------------------------------------------------------------------
SIOAEMPCK:			; SIOA TX EMPTY CHECK
	XRA	A
	OUT	SIOAC
	IN	SIOAC
	DB	0CBH,57H	; BIT	2,A	; 0:EXIST, 1:EMPTY
	RET

レジのレシートのように静かにすうっと出てくるかと思いきや、結構大きな音をたてながらうにょうにょとゆっくり紙が出てきます。古いものだから仕方ないですかね。しかし24カラムしかないのはきついですね。

拡大

関連リンク

下のほうにCTC/PIO/SIOの和文資料(pdf)がある
http://www.tt.em-net.ne.jp/~k-system/z80page.htm
当サイト内
AVRとZ80でCP/Mの改良


  • サーマルプリンターの変な金具は操作盤に固定する為のものです。表側から綺麗に見えるように、プリンタの前面パネルの出っ張りと金具で操作盤を挟み込むように固定します。 私も以前サーマルプリンタをヤフオクで購入しましたが、どうやら宅配便のお兄ちゃん用でUSBやBluetooth接続だったのでマイコンへの接続を断念、ジャンク箱の肥やしになっています。貴記事を拝見し、再チャレンジしたくなりました。 - sum (2016年08月16日 08時23分39秒)
  • 情報ありがとうございます。スペーサーが要らない謎が解けました。 - 管理人 (2016年08月16日 11時47分41秒)
お名前: コメント:

トップ メニュー

This web page is described in Japanese, but you can read in English by translation site.

  • リンクに許可は不要です。
  • コメント欄は改行せず一行で入れてください。
  • スパム判定ではじかれた場合は、その後に「書込みました」旨のみのコメント等何らかの書き込み成功していただけると早く対応できます。
  • 非日本語対応ブラウザからは書き込みできません。