[Saturn Heart 2 のページへもどる]

こちらは、汎用入出力インターフェイス Serial to Parallel Port eXtender (S2PPX)に関するページです。ご質問などはこちらへお気軽にどうぞ。
現在はこれの発展形の Serial Port eXtender (SPX) が開発されています。 詳しくは、まさやんのページへどうぞ!
■ S2PPXの概要と特徴
■ 回路図
■ 命令
■ レジスタ
■ 注意事項

S2PPXの概要と特徴
Serial to Parallel Port eXtender (以下 S2PPX) は、 GAME BASIC for SEGASATURN の Windows 通信ケーブルや、パソコンのシリアルポート に接続し、お気軽に電子回路をプログラム制御するためのインターフェイスです。 以下のような特徴を持っています。

  • 制御機器を選ばない設計

    シリアルポートさえついていればどんなものでも接続できます。

  • 8 bit×3 ポート = 24 本 の ビット単位で自由に入出力設定が可能な I/O ピン

    各ピン最大 25 mA までの電流が流すことができ、 LEDの直接駆動も可能です。
    (詳細な電気的特性は、 microchip社製 マイコンチップPIC16C74 に準じます)

  • I/O ピンの一部をアナログ入力として使用可能

    分解能 8 bitの ADコンバータが最大 8チャンネルまで使用できます。

S2PPXは、拙作 Parallel Port eXtender を シリアルポート経由で制御できるようにしたものです。
[もどる]
回路図
[S2PPX 回路図]
[PIC16C74]
PIC16C74 ピン配置・ハンダ面からの図
[34P コネクタ・基板面からの図]
34ピンコネクタピン配置・ハンダ面からの図
[S2PPX 製作例]
S2PPX 製作例
�@ PIC16F84マイコンモジュールキット(秋月電子通商)
�A PIC16C74A-20P (写真は開発用のもの。実際には中央の窓がありません。)
�B 34ピンコネクタ (H411-034Pなど) 1〜4番ピンはニッパで切り取っています
(*1) PIC16C74A-20Pは アイ・ピイ・アイで入手
(*2) AKIPIC (PIC16F84マイコンモジュールキット)は 秋月電子通商で入手
AKIPIC, PIC16C74-20/P にはそれぞれプログラムを書き込む必要があります。
AKI-PICプログラマーキット(秋月電子通商)用 S2PPXアセンブルソースをダウンロード
[もどる]

命令
S2PPXとのデータのやり取りはレジスタを介しておこないます。 レジスタの詳細はこちらを参照してください。
  • レジスタへの書き込み

    書き込みは 'W', 'データ', 'レジスタ番号'の文字列を送ることで行います。 'データ' は、2バイトの16進文字列("00"〜"FF")、 'レジスタ番号' は、1バイトの16進文字列("0"〜"F")です。 文字はすべて大文字である必要があります。

    • 例: レジスタ 1 に、値 &H5E を書き込む場合

      FWRITE #1,"W5E1"

  • レジスタの読みだし

    'R', 'レジスタ番号'の文字列を送ると、対応するレジスタ番号の値が 2バイトの16進文字列で返ってきます。値が返ってくるまで、S2PPXに対して 書き込みを行ってはいけません。

    • 例: レジスタ 3 から値を読みだし画面に表示

      FWRITE #1,"R3"
      FREAD #1,A$,2
      PRINT VAL("&H"+A$)

[もどる]

レジスタ
  • レジスタ一覧

    レジスタ番号 機能
    0 Port A の入出力
    1 Port B の入出力
    2 Port C の入出力
    3 A/Dコンバータ変換値
    4 Port Aのビット単位の入出力設定 ( 0:出力 , 1:入力 )
    5 Port Bのビット単位の入出力設定 ( 0:出力 , 1:入力 )
    6 Port Cのビット単位の入出力設定 ( 0:出力 , 1:入力 )
    7 A/Dコンバータ動作指定
    8 バージョン情報取得
    9 未定義
    A 未定義
    B 未定義
    C 未定義
    D 未定義
    E 未定義
    F 未定義

■ レジスタ 0〜2
  • 機能
    Port 単位のデジタル入出力をします。

  • レジスタ 0
    bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
    PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0

  • レジスタ 1
    bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
    PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0

  • レジスタ 2
    bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
    PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0

■ レジスタ 3
  • 機能
    A/Dコンバータの値を読みだします。 あらかじめレジスタ7を設定しておく必要があります。 このレジスタへの書き込みは無視されます。
■ レジスタ 4〜6
  • 機能
    I/Oピンの入出力設定をするレジスタです。 1を指定した場合には該当するピンを入力ピンに、 0を指定した場合には、出力ピンに設定します。

  • レジスタ 4
    bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
    PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0

  • レジスタ 5
    bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
    PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0

  • レジスタ 6
    bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
    PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0

■ レジスタ 7
  • 機能
    Port A (PA0〜PA7)のピンの一部 あるいは全部をアナログ入力に設定することができます。 レジスタ7はその割り当てを指定します

  • 詳細
    bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
    ADON ADMODE -- ADADRS

    bit 7: ADON : A/D変換を有効にするかどうかの指定をします
    1 = A/Dコンバータ有効
    0 = A/Dコンバータ無効
    bit 6-4: ADMODE :   A/D入力とデジタル入出力の指定をします
    ADMODE PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
    111 A A A A A A A A
    110 A A A A Vref A A A
    101 D D D A A A A A
    100 D D D A Vref A A A
    011 D D D A A D A A
    010 D D D A Vref D A A
    00x D D D D D D D D
    A :アナログ入力として使用
    D :デジタル入出力として使用
    Vref :A/Dコンバータのリファレンス電圧入力として使用
    bit 3: --  未定義
    bit 2-0: ADADRS :   どのチャンネルの入力値を変換するか指定します
    111 = channel 7 (PA7)
    110 = channel 6 (PA6)
    101 = channel 5 (PA5)
    100 = channel 4 (PA4)
    011 = channel 3 (PA3)
    010 = channel 2 (PA2)
    001 = channel 1 (PA1)
    000 = channel 0 (PA0)
[もどる]

注意事項
本回路は十分な動作試験をおこなっていますが、この回路を製作・ 使用したことによってなんらかの損害を生じたとしても保証できません。
[もどる]

[Saturn Heart 2のページへもどる]