74HC238D(74LS238)を使った7bit Decorder 128pin Output の設計とKiCad7のトラブル

これは何か?

単音キーボードのキーを横取りし、鳴らす為の一部。
単音のMIDI信号をデコードし、キーのON/OFFを8bit情報にしてこのボードに渡し、127個のトリガーを出力する。
出力レベルは5V。
もっと平たく言うと7bitの入力を128個のLEDでドットで確認出来るもの。
128個ルーレットの素。
アナログ128ステップシーケンサーのクロック部。
勿論0F(Hex)でループすれば16ステップなのでEF(Hex)まで出来るというもの。
ようは使い方次第ではあるがとてつもなく大きな物になるので誰も設計しません。
Doepfer MAQ16/3が8台あると思えばいいでしょう。
なにはともあれKiCadへのリンクを貼っておきます。
 
100mmx100mmのエコノミー設計。

 

どうして7bitなの?

それは使っているICが3bitBinaryを0~7にデコードするからです。
工夫して2段構成にすると7bitまで拡張出来ます。

8bitにしないの?

基板を見れば倍のコネクタが収まらないという事が理解できます。
なので2枚重ねて上位8bit目でスイッチを作るかMPU側の他ポート使えば256になります。
ですがもっと非現実的な世界となります。

XilinxやLatticeのFPGA使えば出来るのでは?

不可能ではありませんが5V出力の128出力や256出力のチップのお値段が高いのです。
いいよ、許す、金も出すというなら作りますがそれじゃぁDoepferと変わらんです。
「はい、これ1個のFPGAで出来てるんですよ」では他の技術者は何も学べません。
今回は凄く安いんです。それ以上に今作ってもそれ以外も作らないとまだ何も出来ません。

 どんな仕様?

入力

  • 5V
  • GND
  • 8bitパラレル入力

出力

  • 0~127ポート出力
  • ラッチ無し(入力が無い状態ではポート出力を保持しない。入力がある状態のみ動作する)

この出力の先はこの前書いたn-MOSFETリレーですか?

その予定でしたがフォトMOSリレーのほうが安くて小型であるとわかっております。
VCO電圧とトリッガーとVCA電圧やEGや計算されたシャッフルディレイ、ポルタメントを128個作れば特別なハードシーケンサーとなります。となるとArduinoが繋がる事でしょう。きっと。多分。 

もっとアナログ的な使い方は?

それはあなた次第でもあり、私次第でもある。ルーレットは37区の数があるのでMPUでスピード可変しながらループすればいい。何かシーケンシャルに進む物を探して使いましょう。

74LS238のE1E2E3が理解できません。

では回路図で説明します。

 

回路図読める方はこれだけで全体が設計できます。

基本E1E2がロー、E3がハイになるとイネーブルです。 この条件以外はディセーブルです。
E3がチップイネーブルのような動作をして動いてくれます。
通常U3,U7の使い方が一般的です。
U1,U2のトリックがわかれば上級者です。

何で4方向にコネクター?

実はジグザグに配置すると配線不能に陥ります。100mmx100mmではどうやっても無理。
横に長い50mmx300mmなら綺麗に配置出来るでしょう。
なので配置を工夫します。脳内で最適化するのです。
その結果中央に入力。2個のデコーダーが放射状にイネーブル線を出し出力していく形。
チップの間隔が狭いとViaを多用してしまうので線数を考えると位置を横にシフトしないと収まりません。
コネクターとチップの間隔もこれ以上狭いと無理です。
ここらへんのノウハウは経験しかありません。
これでViaも最小限に抑えた美しい基板が出来上がります。
何やら「R」という文字に見えます。
 

これだけ出力ピンがあってもどれか一つがHIGHになる。

A0,A1,A2の線が曲線なのがおわかりでしょうか。
古の掟に従い左下でループしていません。
だったら反射しないように終端しろって?うん、そうだがクロックは20kHzもないぞと。

よーくみたらフラットケーブルが32pinではなく34pinなのは何故ですか?

実はこの世には32pinのIDCケーブルが存在しないためです。
  • IDCケーブルというのはPC内部で多用される灰色のフラットケーブルに2行の黒いメスコネクターで、差し間違いが無いように真ん中に1つノッチ(突起)が付いているのが特徴。FloppyやRS232Cやプリンターやハードディスクの配線に使われます。
6PIN 2X3
8PIN 2X4
10PIN 2X5
12PIN 2X6
14PIN 2X7
16PIN 2X8
20PIN 2X10
26PIN 2X13
30PIN 2X15
34PIN 2X17
40PIN 2X20
50PIN 2X25

となっています。

ただのピンヘッダーではノッチが無いのでどちらが0でどちらが31かわからないので
こうなっています。
まぁ4本もケーブルがあると混乱しますけどねhi

KiCad7のトラブル

今回はKiCad7のなんちゃってRouterではなくFreerouter V1.4.4を使いました。
KiCad7でSpecctraDSNフォーマットにExportして
Freerouterで線を引いてSpecctraSESフォーマットにExportして
KiCad7でSpecctraSESフォーマットをInportしたらクラッシュしました。
2度目は正常でした。
 
線を曲線で書いた後、直線に戻すと45度に曲がらなくて90度になってしまいます。あと障害物をよけずに重なり警告表示になってしまいます。
設定を初期化しても治りません。
つまりはユーザーの設定ではなくプロジェクトの設定に書き込まれるのです。
えーとV7のバグというよりは曲線と直線の切り替え処理にバグがあるのではないでしょうか。
曲線の書き方は長辺から短辺に一気に線を引く事。
細かくクリックはしないほうが美しいです。 

KiCad7からPlug-in版のFreerouterが使えるのでインストールしてみましたが、インストール方法がお世辞にも簡単ではありません。
あとで投稿しましょうか?
FreerouterもV1.7になりJavaのJREも最新の物をインストールしないと動きません。
 
  • JavaというのはあらゆるOSで同じ動作が出来る莫大な実行ライブラリの塊です、なのでFreerouterは複数のコンピューターOS配下で実行出来るのです。
  • JREはOS配下で実行する為のプログラムでOS毎に用意されています。 
 Freerouter V1.4は電源線に関係なくまさにFreeにroutingするのでFreerouterを超える頭脳を持った人間が使わないと役に立ちません。時短の効果は大きいです。

コメント