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 つである。

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

    自作キーボードは、これに使うのが本当の目的だったのである。
続きを読む
posted by すz at 12:48| Comment(0) | TrackBack(0) | MachXO2

自作キーボード ソフト編(1)

どのようなコードを作るかについて書いてきたが、これも良くわからなくなっている。仕切り直しであらためて書こうと思う。

ソフト編(1)では、キースキャン側の処理について。I2C や V-USB のインターフェイスについては別途。



続きを読む
posted by すz at 10:56| Comment(0) | TrackBack(0) | I2CKEYBOARD

2018年04月17日

自作キーボード (HWまとめ)

Linux SBC に添える小さなキーボードを作ろうとしているのだが、だらだらと書いてきて自分でも分からなくなったので、まとめようと思う。

レイアウト (一応確定)

    i2c_keyboard_asign.png

    これでいこうと思う。太字の右はシフト。右上は FN キーを押したとき。
     -- ◇は カーソルの4キー。
     -- SysRQ は、"Print Scr" になるかも知れない。
     -- QWER に割り当てがあるが、 最初の版にない、ESC と \ の代替。
     -- FN+R は、SCANCODE1, HID では無理かも。FN+SHIFT+E

マトリックス (確定)

    ROW1 ROW2 ROW3 ROW4 ROW5 ROW6 ROW7 ROW8
    COL1 1 TAB CTRL ALT BS ] ENTER ESC
    COL2 2 Q A Z = [ ' SHIFT
    COL3 3 W S X - P : /
    COL4 4 E D C 0 O L .
    COL5 5 R F V 9 I K ,
    COL6 6 T G B 8 U J M
    COL7 7 Y H N \ FN SP2 SP3

    発注したキーボードが 2 種類あって、さらにもう一つ検討中であるが、同一である。
     -- COL に L レベルを出力し、ROW 側で読み取る。
     -- 特殊キーは、ダイオードを入れて 同時押しをサポート。
     -- version 1 には、ESC と \ がない。(ファイルを修正はした)

続きを読む
posted by すz at 06:01| Comment(0) | TrackBack(0) | I2CKEYBOARD

2018年04月14日

圧着ペンチ

ピンヘッダ用の ケーブルがいろいろ売っているが、コネクタは、"Dupont terminal" というものらしい。メス(female) 以外に オス (male) もある。

    dopont-terminal.jpg
    秋月だと ケーブル用コネクタTJC8コネクター として売っている。ちょっとお高いのだが、金フラッシュだかの処理がされている。aliexpress だと かなり安いものがある("dupont terminal female" で検索)。

このコネクタどうやってカシメるのか、恥ずかしながら詳しくは知らなかった。ラジオペンチで潰しておいてハンダ付けするとかしていたのだが、ケーブルを固定するのが面倒だったり、熱で皮膜が溶けてしまったり。これは、当然ながら 専用の工具がある。 英語では、"climping plier"。

climping-plier-die.jpg
aliexpress で検索したところ、"SN-28B" と "SN-48B" が 該当するらしい。"SN-28B" は、ダイの形状のことらしく、0.25 0.5 1.0 の 3つの大きさで AWG 28-18 に対応し、 "SN-48B" は、0.5 1.0 1.5 の 3つで AWG 26-16 に対応。横から見ると段差があり、皮膜の方も一気にカシメるもののようだ。

    0.25 AWG 24-26-28
    0.5 AWG 22-24-26
    1.0 AWG 18-20-22
    1.5 AWG 16-18-20

こういうことだろうか?

climping-plier-ali.jpg
"climping plier SN-48B" で検索すると、それに応じたプライヤーが見つかる。どれもこれも同じ形であり、ダイも交換可能のように思われる。

climping-plier-daiso.jpg
ちなみに、普通の電工ペンチは、1.5 2.5 5.5 の3つが多いようだ。

線材だが、ファーストン端子(小)やキボシには、AWG 18 〜 20 を使うらしい。"Dupont terminal" には、AWG 24 が普通。せいぜい 22 まで。ということは、0.5 があれば良い。

    直径 断面積 最大電流
    AWG 16 1.291 mm 1.309 mm2 22A
    AWG 18 1.024 mm 0.8226 mm2 16A
    AWG 20 0.8118 mm 0.5174 mm2 11A
    AWG 22 0.6438 mm 0.3256 mm2 7A
    AWG 24 0.5106 mm 0.2047 mm2 3.5A

こういうことなので、SN-48B あたりが良さそうである。

さて、"Dupont terminal" だが、 両端あるいは、片側にコネクタだけ圧着したケーブルも売っている("dupont wire" で検索)。ただ、両端 1P のケーブルの方が安いかも知れない。あるいは、10cm などにカットしハンダ処理をしたブレッドボード用ワイヤ("jumper wire 130pcs" で検索)。これらは、いろいろな色がセットになっていて、少量買うのに都合が良い。

    1P のケーブルは、外してハウジングに付けなおすことが出来そうだ。めんどくさいなら、テープで巻いて使う手もある。自分で気軽に作れるのであれば、ブレッドボード用ワイヤが一番良いかも。
    wire-stripper-daiso.jpg
    ワイヤーストリッパーは、ダイソーの 200円のものが使いやすいらしい ーというのを見て買ってみた。確かに便利そうである。

ハウジングは、最近秋月で扱いだした。安いものであるが、ハウジングのみのセットも aliexpress で安価で買える。
posted by すz at 19:16| Comment(0) | TrackBack(0) | 日記

2018年04月03日

キーパッドめも

操作用のキーパッドを付けたい場合どうしたら良いかという話。1〜3 個ぐらいなら直結すれば良いわけだが、それ以上の場合。ただし、キーボードはまた別の話とする。

1) パラレル入力シフトレジスタ

74lv165a.png

74HC165 (など) を 1つまたは 2つ使って 〜8個 または 〜16個のキーを入力する。このやり方は FPGA で扱うには実に簡単そうである。また、このやり方は、ファミコンやスーファミのコントローラで採用されている。

    ファミコンは、CD4021B などが使われているが、74系165でも機能は同じである。また、入力はプルアップ。ボタン押下で L になるようにする。新規で作るのであれば、今は 74LV165A がある。ただ、tiny2313 で同じ機能を作ったほうが安上がりな上、機能拡張も可能。ただし、クロックは、6us でトグルされるので、適当なコードではまずい。

操作用といっても似たようなものになるわけだから、いっそのこと、そのものを使ってしまっても良いかも知れない。

    < 7 6 5 | 4 3 2 1 ]
    1 VCC , 2 CLK, 3 P/S,4 DATA,7 GND
    こういう接続らしい。(ケーブルの信号が 5本なので、他は NC ?)

    P/S を H にして、ボタンの状態を取り込む。(ボタンを押せばL)
    P/S を L にすると 取り込んだデータを シフトするモードになる。CLK の立ち上がり でシフト。
    出力されるデータは、負論理で B,Y,SELECT,START,UP,DOWN,LEFT,RIGHT,A,X,L,R の順。

      165 では SH/~LD の論理がP/S と逆で L にしたときの値を取り込むので注意。

      なお、実機では 60Hz でスキャンしているとのこと。

    ハードオフでジャンクを買える可能性もあるが、未だに、サードパーティーの コントローラも 本体側コネクタや延長ケーブルも aliexpress で売っている。
続きを読む
posted by すz at 20:20| Comment(0) | TrackBack(0) | MachXO2

2018年03月29日

高速通信の検討

FPGA で、高速通信をしてみたいと書いた。それについてのメモ:

世の中のインターフェイスは、みな数Gbps になってしまった。SATA が 6Gbps, USB が 5Gbps , イーサネットは 1Gbps だが、同じ RJ45 のタイプで、2.5/5 Gbps もある。そんなものは、(安物の FPGA) では 扱えない。たとえ扱えたとしても、電子工作では電気特性的に無理だろう。

映像系の一方向通信では、HDMI 2.0 が 18Gbps ! カメラインターフェイスの CSI-2 とかも G2a - 2.5 Gbps/G2b - 2.9 Gbps 。

どれもこれも、電子工作では手も足も出ない感じ。しかも普及しているから安価に使えるのである。電子工作の出番はない。

では、電子工作で扱えるレベルは、どれぐらいなのだろうか?続きを読む
posted by すz at 21:02| Comment(0) | TrackBack(0) | MachXO2

2018年03月25日

ΣΔDAC (2) オーバーサンプリング

ΣΔDAC (1) の続き

ΣΔDAC はできたとして、普通のサウンドDAC として使うには、オーバーサンプリングが必須である。それをするためには、デジタルフィルタ(LPF) が必要だそうだ。もとのサンプリングデータに 0 のデータを挿入したものに LPF をかけると、綺麗に補間されたデータが出来るとのこと。デジタルフィルタには FIR フィルタというものを使う。この FIR フィルタを作ってみよう。

おさらい

    14.314 MHz から作った 45.8 MHz を 16 x 65 で分周して 44.056 kHz を作る。オーバーサンプリングは 65 で 16 までのタップ数の FIR フィルタを使う。

    もし NTSC 画面表示と同時に使うのであれば、44.056 kHZ の 15/16 にサンプリング周波数を下げる。
    (外部 PLL が使えれば、44.056 kHZ も可能になる。クロックが変わるだけで、コードは変えない。 )

    NTSC 画面表示は、14.314 MHz の 3倍クロックで検討する。
続きを読む
posted by すz at 16:55| Comment(0) | TrackBack(0) | MachXO2

ΣΔDAC (1)

次は、サウンド用 ΣΔDAC を設計してみよう。

ハードウェアのおさらい
icedip-dac.png

4bit DAC で スピーカ用 BTL アンプに接続。負帰還でゲイン2倍。(片側1倍)
テスト用なのに音が大きすぎるかも、そこは RI(R61) か RF(R60) で調整する。RI を N 倍にすれば、それだけ小さくなる。

とりあえずスピーカーに直結するつもりだが、LC LPF を入れたほうが良いだろう。でもそれは、音が出るというレベルをクリアした後で考える。

4 bit フルに使うつもりはない。1 bit もしくは 3 bit を予定。
続きを読む
posted by すz at 15:37| Comment(0) | TrackBack(0) | MachXO2

2018年03月22日

NTSC エンコーダー(1)

さて、NTSC エンコーダーを設計してみよう。

ハードウェアのおさらい
icedip-vdacpng.png

4bit DAC で 1Vp-p DC出力。0 = -40IRE , 4 = 0 0IRE, 14 = 100IRE (のつもり)。
輝度信号は、4 - 11 の 8 レベルしか使わない。U,V 信号は、-4 〜 +4 で 合成したときに 15 になる場合が出てくる。続きを読む
posted by すz at 22:44| Comment(0) | TrackBack(0) | MachXO2

2018年03月20日

iCEDIP 基板

iCEDIP-02ct.png
iCEDIP2-elec.jpg
 ・icedip-02-out.zip(発注ファイル)
 ・icedip-02.zip (EAGLE ファイル)
iCEDIP 基板の2つめを発注。iCEDIP24 基板の周囲に実験用回路と電源を配置した。大きさは 63mm x 37mm 。本当は、モジュールだけ作るつもりだったのだが、iCEDIP24基板 も付けて配線してしまった。電源は、MINI-360 を使う。モニタが 12V なので 12V が使えるものを選択。

これは、基本テスト用で モニタに画像が出力できて、ちょっと音を鳴らせたら良いなと考えている。その先は考えていないが、なにか入力する手段が必要だろう。一応ピンは、左上の 6 本と右中央の 2本が空いている。また、SPI 通信ができるホスト -- SBC を使って開発すれば、お手軽にテストできそう。

異種面付けのように見えるが、ばらせるようにしただけで、本来一枚の基板。寄せ集めなので、取り付け穴は付けられなかった。スリットを使って、ずれないようにしたうえで、ねじ穴を空けて固定する -- というのを考慮はした。左下、右のコーナーにある端子は、潰しても良い。また、0.1 インチにアラインしている。

    (メモ)画像は、Fusion PCB の Viewer 。 https://gerber-viewer.easyeda.com/ がオリジナル。

    elecrow で発注したが、63mm x 37mm 10 枚で、$4.9 + 送料$6.06 = $11.96 のところポイントが使えて $9 = 991 円だった。 昔は 50mm 角に収めようとがんばったものだが、気にしなくて良くなったのはありがたい。一方送料が上がった気がする。大元の中国郵便が値上げしたのかも。
続きを読む
posted by すz at 19:28| Comment(0) | TrackBack(0) | MachXO2