CE-140F エミュレータを作る

CE-140F エミュレータを作ってみようという記事です。

CE-140F エミュレータはマイコンボードと microSD カードでポケットディスクドライブ CE-140F をエミュレートするというものです。



概要

FABIO FUMI 氏による CE-140F エミュレータが開発中で、GitHub にてハードウェアとソフトウェアの情報が公開されています。

本記事は、このエミュレータをブレッドボードで作ってみようという趣旨となっています。



部品表

CE-140F エミュレータを自作するにあたって必要な部品は次の通りです。部品一覧は基板の回路図を元にしています。

部品 規格 数量
Nucleo-L432KC 1
microSD カードモジュール 1
microSD カード DAISO の 32GB とかで OK 1
ロジックレベル変換モジュール BSS138 使用のもの 2
ダイオード 1N4148 4
抵抗 3kΩ (不具合対応) 4
10kΩ 6
47kΩ 5
積層セラミックコンデンサ 0.1μF 1
ハーフサイズブレッドボード (S)AD-101 または EIC-3901 を推奨 2

See also:



組み立て

組み立て方です。 6 穴ブレッドボードの配線例を示します。

  1. Nucleo-L432KC の裏面にある SB18 と SB16 の 0Ω抵抗 (またはハンダブリッジ) を取り外します。そのままだと PA5 (A4) と PA6 (A5) がアナログ入力用途となり、SPI 用途で使用できないため、microSD が使えません。表面にあるジャンパーピンも抜いておいてください
  2. 部品を配置します。上側のブレッドボードの電源レーンは + 側が左右で分割されている事に注意してください。
  3. 見づらくなるので、機能別の配線を示します。まずは SD カード用の配線です。
    microSD
    L432KC SPI microSD
    PA7 (A6) MOSI 2 D1 (CMD)
    PA6 (A5) MISO 6 D0 (DAT0)
    PA5 (A4) SCLK 4 SCK (CLK)
    PB5 (D11) CS 1 CS (CD / DAT3)
  4. 入力用の配線です。ダイオードから繋がっている 10KΩ抵抗は、3KΩ抵抗に変更した方がいいかもしれません (参考)。
    Input
    L432KC 経由 ペリフェラル
    PA8 (D9)10KΩ抵抗BUSY (4)
    PA11 (D10)10KΩ抵抗DOUT(5)
    PA0 (A0)10KΩ抵抗XOUT (7)
    PA1 (A1)10KΩ抵抗DIN (8)
    PB0 (D3)10KΩ抵抗SEL2 (10)
    PA12 (D2)10KΩ抵抗SEL1 (11)
  5. 出力用の配線です。
    Output
    L432KC 経由 ペリフェラル
    PB6 (D5)レベル変換2ダイオードDOUT(5)
    PB1 (D6)レベル変換3ダイオードDIN (8)
    PB7 (D4)レベル変換1ACK (9)
    PA10 (D0)レベル変換4ダイオードSEL2 (10)
    PA9 (D1)レベル変換5ダイオードSEL1 (11)
  6. 全体の配線です。リボン状になっているジャンパーワイヤーを使い、機能別にまとめると若干スッキリします。
  7. おまけのユーザーボタン用配線です。プッシュボタン (タクトスイッチ) は向きに注意してください。プッシュボタンの種類によっては、足を狭めると 4 本ともブレッドボードに挿せます。プッシュボタンの足を広げてブレッドボードの中心を跨がないでください。反対側には 11 ピンペリフェラル端子があるのでショートします。
    ペリフェラルコネクタの 1 ピン目の配線を横に逃がせば、プッシュボタンを跨いで配置する事ができ、配線も多少簡素化できます。

※ 配線はブレッドボード用 (BREADBOARD) のものとなっています。GitHub の回路図は基板用 (PCB_V1) となっている事に注意してください。

See also:



プロジェクトのコンパイルと転送

プロジェクトをコンパイルするには Keil Studio Cloud を使います。Mbed のアカウントを持っていない場合には、事前にサインアップする必要があります。

以下、プロジェクトのコンパイルと転送です。

  1. Keil Studio Cloud へブラウザでログインします。
  2. [File | Clone...] を開きます。何もプロジェクトがない状態だと、左側に [Clone] のリンクがあると思います。
  3. URL に GitHub のアドレス (https://github.com/ffxx68/Sharp_ce140f_emul) を入力します。プロジェクト名はそのままで構いませんので、[Add Project] を押します。
  4. プロジェクトが読み込まれたら、Target HardwareNUCLEO L432KC を選択します。
  5. [Build project] ボタンを押してビルドします。デフォルトの状態だと、ブレッドボード用 (BREADBOARD) のビルドになります。
  6. ビルドに成功すると sharp_ce140f_emul.NUCLEO_L432KC.bin というファイルがダウンロードされます。
  7. NUCLEO L432KC と PC を USB ケーブルで接続するとドライブが見えるようになりますので、先程ダウンロードした .bin ファイルをここへドロップします。

ブレッドボード組みの場合は、main.cpp の PCB_V1 の定義をコメントアウトし、BREADBOARD をアンコメントして有効にする必要があります。

#define BREADBOARD // prototype
//#define PCB_V1 // PCB make

PC-E500 系で大きなファイルが LOAD できない場合には、commands.h にある OUT_BUF_SIZE と IN_BUF_SIZE の値を調整してみてください。

// communication data depth (max file size during LOAD)
#if defined TARGET_NUCLEO_L432KC
#define OUT_BUF_SIZE 20000
#define IN_BUF_SIZE 1000
#endif
#if defined TARGET_NUCLEO_L053R8
#define OUT_BUF_SIZE 256
#define IN_BUF_SIZE 256
#endif

プレビルドバイナリの転送

ver1.7 からは GitHub の Release ページでバイナリファイルが提供されるようになったので、これをダウンロードしてドロップするだけでよくなりました。



使い方

筐体の右にあるペリフェラルコネクタに接続します。USB ケーブルを接続して L432KC に電力を供給する必要があります。ポケコン側には給電されない事に注意してください。

デバッグ出力がシリアルポートへ出力されています (115200 bps)。正しく動作しない場合にはデバッグ情報を確認してください。LD3 の LED (緑) が激しく点滅している (デバッグ出力にずっと ok が流れている) 場合には、接触不良か配線ミスを疑ってみてください。

2024/10/20 現在でサポートされているディスク命令は次の通りです。

動作 命令
CHAIN
CLOSE
×COPY
DSKF
EOF
FILES
INPUT#
×INIT
KILL
×LFILES
LOAD
LOAD M
×LOC
×LOF
MERGE
×NAME
OPEN
PRINT#
SAVE
SAVE M
×SET

ディスク関連の命令に関しては SHARP CE-140F の使い方 を参照してください。

ブレッドボード組みの CE-140F エミュレータが動作した。#ポケコン pic.twitter.com/76zOrA9Hln

— DEKO (@ht_deko) February 16, 2023

CE-140F エミュレータを PC-E500 で試してみた所です。最後ちょっと操作ミスしてます。反射してモードインジケーターが見にくいのです!! pic.twitter.com/xHthkWUGos

— DEKO (@ht_deko) February 20, 2023


FABIO FUMI 版 PCB

FABIO FUMI 氏による CE-140F エミュレータ基板が届きました。基板裏右上にあるのはシリアルナンバーでしょうか?

ピンソケットと L 字ピンヘッダは手持ちのものを使いました。

ちゃんと動作しました!ブレッドボード組みに比べるととても簡単でいいですね。


ボードの改修

個体によってはこのボードは不安定な挙動を見せる事があります。R16, R20, R22 の抵抗の値を変更すると正常動作するかもしれません。

オリジナルでは 10kΩ抵抗が取り付けられていましたが、後の回路図では 5kΩに改められています。

合成抵抗値 取り付ける抵抗
5kΩ 10kΩ
3.2kΩ 4.7kΩ
3kΩ 4.3kΩ

抵抗は交換するよりも、二階建て (並列) にするのが簡単かと思います。

5kΩで動作しなかった手持ちの PC-1470U は 3kΩで動作するようになりました。



ぽよこまだんな版 PCB

ぽよこまだんな氏による CE-140F エミュレータ基板がリリースされています。オリジナルボードの不安定さが解消されています。

『組み立てキット版』は各種コネクタとタクトスイッチをハンダ付けるだけとなっています。その他の部品は最初から実装されています。

手持ちの PC-1470U はそのままで動作しました。



その他の情報

CE-140F エミュレータを使うにあたって有用だと思われる情報です。


ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。

メニュー: