2018年04月21日

謎PC構想

今までいろいろやったことを、レトロなパソコン風に仕上げたい。考えがまとまってくるにつれ、なんだか、APPLE II みたいな感じのものを目指す雰囲気になって来た。

appleii-layout-s.jpg
ちょっと調べて、基板の写真を入手。 長辺を 1000 とすると 短辺は 567 。メインボードは、100mm x 56.7mm に決めた。実際の APPLE II は、大きなスイッチング電源が左側にある。正確なサイズはちょっと分からないのだが、幅 25mm の電源ボードもくっつけてしまって 100mm x 82.7mm にしようと思う。

appleii-like.png

イメージを固めようと描いたもの。本体の方は、まだあまり考えていない。(Nanopi-DUO か ESP32) + FPGA 程度で キーボードと NTSC 出力が付くということだけ決めた。 Nanopi-DUO とか載ることは載るのだが、コネクタが相対的にでかい。-- イーサは無理。USB も不格好になりそうな感じ。

そんなことよりも、重要なのは 拡張スロットである。これがあってのレトロ・パソコン。なにか載せたい。サイズ的には、7x1 のピンソケットを 8 列付けると それらしくなると思うのだが、間隔が狭すぎて、本当にかざりにしかならなさそう。というわけで、7x2 を 4 つである。

なにか載せたい。と言っても何も決まっていない。そこから考えていこう。

    自作キーボードは、これに使うのが本当の目的だったのである。
拡張コネクタの構想

    まずは既存のものを見繕ってみる。一応似たようなのがあるのである。それは、Digilent が策定した pmod 。

    FPGA 評価ボードに小基板を付けるためのもの。定義も 公開されている。ざっと見ると、基本は 6ピン1列のタイプと 6ピン2列 。その2つは互換性がないようだ。他に 4ピン2列というのもある。

    基本 FPGA 用なので、いろんなピンアサインがある。こういうデバイスを付けるときは、こういうピンアサインにしましょうという感じのものである。
    ちょっと 6x1 のものを書くと

      1 IO1 SS CTS CTS DIR DIR1
      2 IO2 MOSI RTS TXD EN EN1
      3 IO3 MISO RXD RXD SA DIR2
      4 IO4 SCK TXD RTS SB EN2
      5 GND GND GND GND GND GND
      6 VCC VCC VCC VCC VCC VCC

    何を書いているか分からないと思うが、重要なのは電源ピンの位置と 信号線4つということだけかも知れない。他に 4 ピン 2列のものがあり、以下のものが 2列になっている。

      1 SCL
      2 SDA
      3 GND
      4 VCC

    まぁ FPGA を使うなら似たようなものになるだろう。6 ピンタイプを元にして まずは、7x2列 にすることを考えてみよう。7 ピンは非常に重要である -- バランス的に。6 ピンだと小さい。

      5V 1 2 IN
      IO1 3 4 ODOUT1
      IO2 5 6 ODOUT2
      IO3 7 8 SCL(共通)
      IO4 9 10 SDA(共通)
      GND 11 12 GND
      3.3V 13 14 3.3V

    5V をくっつけて 7 ピンにする。で、2 列目に I2C バス。IO1 〜 IO4 は Pmod と同じ。
    未定が3つある。Open Drain 出力を 2 つ付けたい。あと1つ 5V トレラント入力でどうか?

    1 スロット あたり I/O が 7 本で、他に I2C 2 本。合計 30 本である。--- iCE40 一個では 無理ですな。

    ううむ。USB ? USB だとコネクタ付けてボードを消費するだけのような気がするから X。
    シリアルで良いか。しかも共通にしてしまう。一応オープンドレイン駆動ということにしておこう。

      IO5 1 2 5V
      IO1 3 4 TXD(共通 HOST → DEVICE)
      IO2 5 6 RXD(共通 DEVICE → HOST)
      IO3 7 8 SCL(共通)
      IO4 9 10 SDA(共通)
      GND 11 12 GND
      3.3V 13 14 3.3V

    こういうことにしよう(確定)。6 ピンに 1つ IO を足して 7 ピンにする。これだけ使っても良い。右は 5V と シリアル、I2C 。

    I/O 4 つだと SPI にプラスしてモードがあるような装置を制御できない。具体例としては FPGA のコンフィグ。5 つあった方が良いと思うのである。それ以上あるともっと良い SDIO, LPC(bus), RMII など 10 I/O 以下のものもある。きりがないが、I2C , シリアルが、FPGA に接続されているので、どうしてもということであれば、9 I/O まで使える。

    あと、何故に 5V ? と思われるかも知れない。スピーカーアンプとかパワー系のためである。... というのは建前で、手近に線が来てたからである。そういえば、5V 動作のDAC を持っている。これに使えたらという理由が一応ある。
    本当は違う。FPGA の 1.2V は 5V から作っているのである。3.3V を作る同じ IC 同じ周波数で 3.3V → 1.2V はちょっとまずいかなと。3.3V でも大電流が必要なら 5V から作れというのが理由である。



nazopc-03k.pngappleii-clone.jpg
キーボードと合わせたイメージ。だいぶ、らしくなった。キーボード −幅はともかく、奥行がある。しかし、スケールさせたら押せるような気がしない。まぁスケールさせるのは無理なんだが。キーボードを右にオフセットしているように見えるが、こんなもの。3キーと 4キーの間に メインボードの左端が来る。また、キーボードは 9mm ほどメインボードの手前においた。Nanopi-DUO の microSD , USB-OTG をふさがないようにしないといけない。

    このキーボードは実際には作らない。作ったものの中で合いそうなものを選ぶ。USB 接続はしないので、I2C の機能が重要である。

    Version 2 の 861 版にしようと思う。元々そういうつもりでデザインしてある。t88 版というのは、ちょっと存在感がありすぎ。キーボード別体型なら t88 版が良さそうなのではあるが、これには向かない。


nazopc-03t.png
(裏面)

設計が進んで、発注できそうなところまで来ている。

    nazopc-pcb.jpg
    問題が出る気がしてしかたないのだが、発注してしまった。評価用と割り切って使おう。

ホストはやはり、Nanopi-DUO で行く(決定)。左にスイッチング電源を置く。スイッチング電源にシールド(のようなもの)を付けて雰囲気をだそうと考えていたのだが、結局イーサもオプションで付けることにした。

3つのパーツをくっつけて1枚の基板にしているが、バラしても良い。いつもの手口である。

    イーサは、なんちゃって POE 対応である。Orangepi ZERO の回路図を参考にした。ただし、電圧は 9V 〜 23V 。 5V は不可。

    裏面だが、シールドをハンダ付けするための パッドを付けてみた。このパッドは Frame GND に接続している。はじめて GND と Frame GND を直結しない基板になった。(間は 1000p のコンデンサで接続し 直流的には絶縁)。
    メインボード裏側に少しパーツのパターンを付けた。オプション的なもので、一つは、FPGA の 空き ピンに RC を入れて遅延回路にする。もうひとつは、LVC1G07 を使って TX1 を オープンドレインにするためのもの。Nanopi-DUO を直接ハンダづけすると裏面でないと変更できなくなる。

    シールドをハンダ付けするとか簡単に書いたが、自分では無理だとは思っている。きれいに作れなければだいなしになってしまう。熱が出る部分でもあるし、スリットも入れなければ。材質も何が良いのか?知識がない。

さて、拡張スロット。7x2列 のピンフレームを付ける設計なのだが、相手側にピンヘッダ以外にボックスヘッダを使えるように配慮した。普通は逆で、メインボード側にボックスヘッダなのだが、デザイン上 逆にするのだ。その場合でも、部品が干渉しないようボックスヘッダの分を空ける必要がある。FPGA は、iCE40 ultra plus UP5K を直接載せる。作った iCEDIP という小型基板で行きたいところだが、拡張基板と干渉すると困るのでこういうことにした。

FPGA からは、5本の線を各スロットに配線する。これが結構難しい。差動ペアになる信号は、クロックが共通なので、別々のスロットに割り振るわけにはいかない。一回配線して、都合が悪いものは入れ替えていく。

シリアル, I2C は、 Nanopi-DUO から接続するが、FPGA の信号線もつないでおくことにした。あと、Nanopi-DUO の SPI + GPIO(G11) を コンフィグ用として、FPGA に接続。SPI は通信にも使う。

    GPIO(G11) についての注意点
    この信号は、USB SATA チップのリセットに使われることがある。ドライバによっては、不意に FPGA のリセットがかかる場合があり得る。トラブルになったときのために注意点は覚えておかないと。

    Nanopi-DUO は GPIO が少ない。FPGA との高速通信は SPI しかないのである。なんでもかんでも SPI である。なので、基本のプロトコルを決めて、内部のレジスタやメモリを読み書きできるようにする。SPI RAM を手本にするとどうか? で、特定のアドレスに、どういうものかを示す ID を置いておく。USB のディスクリプタのようなものが良さそうに思えるが、めんどくさい。とりあえず ID と機能名ぐらいを考えておく。

    また、シリアルは、SPI 通信の補助として GPIO で使うかも知れない。H2+ は、GPIO を割り込み線として使うことができる。本格的な装置にすることは一応考えておく。

    SPI RAM について

    シンプルに使うには、SS を L にして READ(0x3)/WRITE(0x2) コマンド+ 24BIT アドレスを MSB FIRST で出力し、そこから好きなだけ READ/WRITE すれば良い。終わったら CS を H にする。-- 終わり。

    ただし、2bit パラレルの SDI モード、4bit パラレルの SQI モードがある。扱えないものは知らないことにしよう。モードリセット(0xff) のみ覚えておく。

    これだけ覚えて、24bit - 16MB の空間に レジスタを配置して 好きに使えば良いのである。

    ... と思ったが、この通りに作るとスレーブ側がきついのだ。非同期クロックなので、FIFO を使いたい。だが、READ の場合、すぐにデータを送出しなければならず、FIFO が意味をなさない。1 バイトだけでも遅延できれば、だいぶ楽に実装できる。ちょっと検討が必要である。

ext1.jpgext2.jpg
拡張基板は、5x7cm のものを半分に切って使うか、秋月D基板をイメージした。D基板の場合は、普通にL型2列ピンヘッダを使う。1 列のみという使い方を考慮すると、拡張基板はスロットの右側になるようにする。5x7cm の方はピン間に基板を入れるので中央になる。2列ピンヘッダよりは BOXヘッダの方が見栄えが良さそうに思う。

    なお、拡張ボードはホットプラグ不可。なにを意味するかというと、Nanopi-DUO をシャットダウンして電源をOFF、拡張ボードをセットし、電源入れて再起動という手順。特に実験では、すごくめんどくさい。ホストとFPGA が一体化してればお手軽だとか考えていたのだが、そうでもなかった。いまさら、ホットプラグを可能にしようとは思わないが、どんな注意点があるのかよくよく調べておかないと。

メインボードの上端から、Nanopi-DUO まで 約 55mm なので、どちらでもいけるはず。 メインボードからの高さだが、BOXヘッダ が 8.8mm 。+ 35mm で 44mm ぐらい。

これぐらいの高さを見なければならないのであれば、キーボードは余裕である。イーサのコネクタも 13.1mm 高 で(使わなければ)邪魔にならない。

内寸ベースで 100mm x 90mm 程度のものの高さが 50mm 程である。相当デフォルメした形になりそう。これぐらい上が空くのであれば、イーサモジュールを切り離し、電源部にマウントしても良いかも知れない。検討しておこう。

extuniv.png

結局、ユニバーサル基板を作ってしまった。サイズは、47mm x 32mm (+5mm) に決めた。
たしか、APPLE II 用のユニバーサル基板にこういう形のものがあったはず。-- デザインが先なわけで、それっぽいものが欲しいのだった。

    一応 SOIC-8 1 つと、SOT23-5 2つ。2012 の CR 8 つに、CD43 の L を1つ付けられるようにしてある。手持ちの部品は、SMD ばかりなのだ。

    SOT23 なら、SOT23-5 のパターンに逆向きに付ければ良い。SOT23-6 は付けにくく嫌いなので対応しない。部品もほとんど持ってないし。必要なら無理に付ければ良いだけだし。

蛇の目は、16x7 。DIP の 32 PIN まで乗る。

ところで、拡張ボードへのピンヘッダの取り付けだが、間隔があるので基板と距離がある。適当に付けるとナナメになったりする恐れがある。どうするかと言うと、一回基板にハンダを盛る。ピッタリにしておいて、改めてハンダ付けするらしい。メモ。


謎PC としたが、デザインから決めていったので、どう使うかいまだに謎である。

1) SBC である Nanopi-DUO がメインで、小型ディスプレーと小型キーボードを付けて、PC らしく使ってみる。
では、拡張ボードはどう使うのか? SBC の 40pin コネクタみたいなもので、I2C のセンサを付けてみたりシリアルで通信してみたりが、とりあえず出来る。FPGA で I/O を拡張することも可能である。その場合は、多分 SPI を 分配して全部のボードで使えるとか、多チャンネルシリアルだとか、そういう限られた機能でコンフィグして、再プログラミングしないで使うことになりそうだ。

2) FPGA の評価ボードがメインで、Nanopi-DUO を開発用途でのみ使う。
どちらかと言えばこれが想定した使い方。キーボードもFPGA で使うことが出来る。最終的に Nanopi-DUO を外してしまってさえ良い。(未確認:一部 Nanopi-DUO の 3V3 を使用している)

拡張ボードは好きに使えば良いのだが、1チップなんとかを作る場合、VIDEO, SOUND, STORAGE ... と 3 つ程スロットを埋めそうである。

3) あるいは、ミニスーファミのようなもの。
手前の USB 2 つは、USB コントローラを接続することを想定した。コネクタが大きくて不格好かも知れないが、デザイン的にはそういうことである。私はゲームはしないが、NTSC でディスプレーを接続するなら、レトロ・ゲーム機でしょというイメージがある。

こういう設定で、イーサが前面にあるのはどうかと思うのだが、ないよりはマシという考えで付けた。これを切り取って 電源の上にマウントできるように検討するが、取り付け穴の条件が厳しい。また、イーサの信号線の接続にも問題がある。裏返して取り付けるイメージなのだが、そうすると、電源側のコネクタが使えなくなるかも知れない。なかなかに悩ましい。


組み立て方針

基板は来て、最後の部品のダイオードも入手した。が、まだ基板を眺めているばかりである。
どうやって組み立てるべきか?というと、やはり電源から。予定道理の電圧になっていることを確認しないことには、FPGA を取り付ける気にはならない。

その次に 手はんだでの FPGA 取り付けであるが、これがまた自信がない。だいたい iCEDIP だの基板だけは作ったが、ダイオードがなかったために組み立ててないのである。配線もそうだが、フットプリント自体も自作で、間違っている可能性がある。

どうも怖くてなかなか組み立てに入れないのであった。キーボード基板で練習して、iCEDIP に移り、ひとつづつ確認して最後にこれといういう順番になりそうである。

あと POE も。配線が間違えているとか、+/− が逆だとかの可能性はある。これまた確認しないとならないのだ。


付録

 ・nazopc-06.zip
 ・nazopc-out-03.zip
 ・extuniv2-out.zip

拡張スロット

IO5 IO1 IO2 IO3 IO4
CN1 3_9B 2_6A 47_2A 44_G6_3B 46_0A
-----------------
CN2 45_5B 48_4A 43_49A 36_48B 35_G0_46A
--------------- ---------------
CN3 34_44B 37_G1_45A 32_43A 31_42B 28_41A
------------------ ---------------
CN4 27_38B 26_39A 25_36B 20_G3_25B 19_29B
---------------

TX1 18-31B
RX1 13-24A
SCL 12-22A
SDA 11-20A

http://www.aitendo.com/product/10348 RJ45コネクタ(LED付き) [91-RJ01-010]
https://www.aliexpress.com/item/2pcs-RJ45-Femlae-Socket-with-LED-Light-56-Plastic-Network-jack-Connector-Right-Angle-8P8C-Interface/32828210331.html
099
https://www.aliexpress.com/item/10PCS-RJ45-Modular-Network-PCB-Jack-56-8P-LAN-Connector-Shielded-with-LED-Lamp/32782182800.html
258
パルストランス H1102NL SOP16
https://www.aliexpress.com/w/wholesale-H1102NL.html?spm=2114.search0104.0.0.44fe7fad0BAfNb&initiative_id=SB_20180406020113&site=glo&groupsort=1&SortType=price_asc&g=y&SearchText=H1102NL $1.99 10個

ボックスヘッダ
https://www.aliexpress.com/item/10PCS-Socket-Header-Connector-DC3-6P-DC3-8P-DC3-10P-To-DC-50P-Double-Row-2/32821005244.html
094
https://www.aliexpress.com/item/10PCS-2X7-Pin-14P-2-54mm-Double-Row-Female-Straight-Header-Pitch-Socket-Strip/32649433912.html
068
posted by すz at 12:48| Comment(0) | TrackBack(0) | NAZOPC
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/182881209
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック