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 穴ブレッドボードの配線例を示します。
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) |
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) |
Output | |||
L432KC | 経由 | ペリフェラル | |
PB6 (D5) | レベル変換2 | ダイオード | DOUT(5) |
PB1 (D6) | レベル変換3 | ダイオード | DIN (8) |
PB7 (D4) | レベル変換1 | ACK (9) | |
PA10 (D0) | レベル変換4 | ダイオード | SEL2 (10) |
PA9 (D1) | レベル変換5 | ダイオード | SEL1 (11) |
※ 配線はブレッドボード用 (BREADBOARD) のものとなっています。GitHub の回路図は基板用 (PCB_V1) となっている事に注意してください。
See also:
プロジェクトをコンパイルするには Keil Studio Cloud を使います。Mbed のアカウントを持っていない場合には、事前にサインアップする必要があります。
以下、プロジェクトのコンパイルと転送です。
ブレッドボード組みの場合は、main.cpp の PCB_V1 の定義をコメントアウトし、BREADBOARD をアンコメントして有効にする必要があります。
|
PC-E500 系で大きなファイルが LOAD できない場合には、commands.h にある OUT_BUF_SIZE と IN_BUF_SIZE の値を調整してみてください。
|
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 氏による CE-140F エミュレータ基板が届きました。基板裏右上にあるのはシリアルナンバーでしょうか?
ピンソケットと L 字ピンヘッダは手持ちのものを使いました。
ちゃんと動作しました!ブレッドボード組みに比べるととても簡単でいいですね。
個体によってはこのボードは不安定な挙動を見せる事があります。R16, R20, R22 の抵抗の値を変更すると正常動作するかもしれません。
オリジナルでは 10kΩ抵抗が取り付けられていましたが、後の回路図では 5kΩに改められています。
合成抵抗値 | 取り付ける抵抗 |
5kΩ | 10kΩ |
3.2kΩ | 4.7kΩ |
3kΩ | 4.3kΩ |
抵抗は交換するよりも、二階建て (並列) にするのが簡単かと思います。
5kΩで動作しなかった手持ちの PC-1470U は 3kΩで動作するようになりました。
ぽよこまだんな氏による CE-140F エミュレータ基板がリリースされています。オリジナルボードの不安定さが解消されています。
『組み立てキット版』は各種コネクタとタクトスイッチをハンダ付けるだけとなっています。その他の部品は最初から実装されています。
手持ちの PC-1470U はそのままで動作しました。
CE-140F エミュレータを使うにあたって有用だと思われる情報です。
ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。