まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

2023年01月

KiCad5 プロジェクトの公開時に独自ライブラリを含める方法

 KiCad 5 でプロジェクトのフォルダをまとめて別のパソコンで開くとローカルで作った独自のライブラリが未参照になってしまう。これらを含んだ設計データ一式を公開する方法について。(KiCad7では変わってるかも)

参考:

※独自のシンボルとフットプリントはまとめて作業中のパソコンで管理しているものとします。

・プロジェクトのフォルダ(${KIPRJMOD})以下にSymbolsフォルダとFootprintsフォルダを作成し、それぞれに独自に作成したシンボルとフットプリントをそのローカルフォルダにコピーする。
・ローカルフォルダを参照するよう設定する。設定が済めばプロジェクトのフォルダ内にsym-lib-tableとfp-lib-tableという設定ファイルがそれぞれ新規に作成される。
・Eschemaから独自シンボルをローカルから参照するよう修正。フットプリントの割付から独自フットプリントをローカルから参照するよう修正。
・プロジェクトをまとめて公開。

設定方法は参考に挙げた記事でできる。SymbolsフォルダにEschemaからシンボルをエクスポート、FootprintsフォルダにPcbnewからフットプリントをエクスポートする。

シンボルを公開した例:
https://github.com/houmei/2532-27512
ここでは2532のシンボルを新規作成し、ローカルフォルダSymbolsにコピーしている。
sym-lib-tableの中身はこのようになる。
(sym_lib_table
  (lib (name 2532)(type Legacy)(uri ${KIPRJMOD}/Symbols/2532.lib)(options "")(descr ""))
)

フットプリントを公開した例:
ここではDIN8pinコネクタのフットプリントを新規作成し、ローカルフォルダFootprintsにコピーしている。
fp-lib-tableの中身はこのようになる。
(fp_lib_table
  (lib (name 0000)(type KiCad)(uri ${KIPRJMOD}/Footprints)(options "")(descr ""))
)
どちらもS式ですね。

公開するときのマイルールは以下のとおり。プロジェクト名をAAAとすると:

AAA/
 AAA.pro - KiCadプロジェクト
 AAA.sch - 回路図
 AAA.kicad_pcb - PCB
 AAAVnnLnnGB/ - ガーバーファイル
 img/ - 回路図などの画像イメージ
 README.md - 説明
 Symbols/
 sym-lib-table
 Footprints/
 fp-lib-table















 最初からローカルのSymbols,Footprintsフォルダ以下に作成する方法もあるけど、自作のライブラリは他で使い回すこともあるしどこかで一元管理したい。このへんうまくやる方法はないものか。

SORDm5F V01L04 ROM&RAM&シリアルカートリッジ基板

 SORDm5Cカートリッジ基板の後継となるSORDm5F V01L04カートリッジ基板が完成しました。
8KB/16KBのROMイメージに加えてBASIC-Fで使用する20KBのROMイメージに対応し、SI-5相当のシリアルインターフェースを追加します。

2023-01-17 21.55.30

仕様:
・64KB ROM(27C512)にROMイメージを格納。32KBを単位として2バンク使用。
 バンクごとに以下の内容でROMイメージを設定する。
 ・16Kモード(EXMSEL=OFF) 16KBイメージx2 さらに16KBのイメージを8KB単位で入れ替え
 ・20Kモード(EXMSEL=ON) 20KBイメージx1 BASIC-F用
・$8000~$FFFFに拡張RAM 32KB
・シリアルインターフェース 6ピンTTLレベル入出力 USB-シリアル変換使用可能
・リセットスイッチ

設定:
・DIPスイッチ A15SEL / A14SEL / EXMSEL / A13R
A15SEL 32KB単位のバンクを切り替える。ROMのアドレスA15に対応。ON=0,OFF=1
A14SEL 16KモードでのROMのアドレスA14を切り替える。ON=0,OFF=1
A13SEL 16KモードでのROMのアドレスA13を入れ替える。ON=そのまま,OFF=入れ替える
EXMSEL ONで20Kモードを設定する。
 20Kモード時、EXMSEL=ON,A14SEL=OFF,A13R=ON

SORDm5F V01L04回路図
SORDm5FV01L04-sch

SORDm5FV01L04-pcb


部品表

C1 - 3.3~10uF 10V以上 電解コンデンサ
C2,C4,C4,C5 - 0.1uF 50V積層セラミックコンデンサ
J4 - 6P L字ピンヘッダ
RN1 - 集合抵抗 10kΩx4
SW1 - 4P DIPスイッチ
SW2 - タクトスイッチ
U1 - 27C512 (28P ICソケット)
U2 - 62256 (28P ICソケット)
U3 - 74HC86
U4 - 74HC02
U5 - 74HC04
U6 - 8251A

・U1はWinbond W27C512、U2はNEC D43256AC-10L で確認
・U6は3.5MHz以上で動作するもの。MITSUBISHI M5M82C51AP で確認
・U3,U4はHCでもLSでも可ですがどちらかに揃えてください
・U5はHCでもLSでも可
・Cはすべて電源用、RはDIPスイッチのプルアップ用です。


ROMイメージ書き込み例

ROMアドレス
- - - - - バンク0 - - - - -
0000 - 1FFF 8K BASIC-I
2000 - 3FFF 8K m5terminal
4000 - 7FFF 16K BASIC-G
- - - - - バンク1 - - - - -
8000 - 9FFF 8K あき
A000 - EFFF 20K BASIC-F
F000 - FFFF 4K あき


作例1:シリアルI/Fを使わない場合はU5,U6,C5が省略できます。BASIC-GやBASIC-Fを実行したい場合はRAMが必要です。
2023-01-17 21.08.07

作例2:フル実装
2023-01-17 21.55.30

SORD m5での使用例。USB-シリアルインターフェースは設定が5V、上側がGNDになります。
2023-01-17 22.42.30

SORD m5 Jr. での使用例。シリアルインターフェースはケースに干渉しません。
2023-01-17 22.44.10

 USBシリアルインターフェースは、USBケーブルの取り回しによっては引っ張られて外れやすくなります。
 シリアルインターフェースをサポートしているのはBASIC-Fとm5terminalです。使用法については別記事で追加予定。設計データも公開しますのでしばらくお待ち下さい。


boothにて配布予定です。


SORDm5F カートリッジの試作その3


 V01L03基板で20KBのBASIC-Fイメージとその他8K/16Kイメージの動作確認ができた。この部分の動作に必要な汎用ロジックはLS86とLS02の2個で前作SORDm5Cと規模は変わらず上位互換。シリアル周りにミス連発。

 SORDm5FV01L03回路図
SORDm5FV01L03-sch

SORDm5FV01L03-pcb


 メモリ部分の切り替えはOK。64KBの27C512を32KBの2バンクに分け、バンクはA15SELで選択。

・BASIC-Fのイメージを置く場合
先頭から8KBを空けてBASIC-Fの20KBを書き込む。
DIPスイッチの設定:
EXMSEL=ON("L")
A14SEL=OFF("H")
A13R=ON("L")

・BASIC-I(8KB)やBASIC-G(16KB)のイメージを置く場合
DIPスイッチの設定:
EXMSEL=OFF("H")
A14SELで32KB内の前半と後半を切り替えて選択
A13RでA14SELで指定した16KB内の前半と後半8KBを入れ替える

 これにより27C512にBASIC-F,BASIC-G,BASIC-I,m5terminalを書き込んで選択することができる。

2023-01-07 23.06.07


 さてシリアル周りだがミス連発。ここの部分は@morecat_labさんがV01L02を先行して動作確認してくださったので動くことはわかっているのだがV01L03でのミスが多く難航した。


V01L03での修正点は以下のとおり:
・8251のリセット反転を追加したインバータLS04に変更
・8251のRxRDY→*EXINT接続にインバータ挿入
・8251の*DSR-*DTRのショートプラグをオープンに

動作確認時に発覚した問題点:
・USBシリアル変換へのピンアサインミス
 何を参考に作ったのかピンアサインが全然違ってた。しかもTxD/RxDが入れ替わっているという。TxDとRxDをショートさせてループバックテストは確認できるのだが入れ替わりはこれではわからない。

・8251のTxDに挿入したダイオードとプルアップ抵抗の削除
 これはSORD m5から相手側への送信だけできなかったことから発覚。そもそもは電流の回り込み防止のためにRxDに入れるべきもの。削除。

・SORD m5 Jr.でのシリアル端子の干渉
 実際に使ってみて干渉したので2.54mm上にずらした。

・8251の*DSR-*DTRのショートプラグをショートに戻す
 シリアルインターフェースSI-5の回路図を参照するとオープンだったが、@morecat_labさんに確認してもらったV01L02のボードではショートだったことから元に戻した。

・シルクに説明など追加


2023-01-09 00.50.48


m5terminalについて
 m5terminalはシリアルカートリッジSI-5に内蔵されていたと思われる通信ソフト。設定についていくつか注意点がある。接続の相手先はWindowsのTeratermで確認。

CODETYPE: ASCII8だと相手先が8bit長でも文字がカタカナなどに化ける。JIS8か7bit長ならJIS7を選択。
BAUDLATE: 300だと相手は600ボー、600だと相手は1200ボー。なぜか2倍。
MODE: IGNOREに設定。WAITだと応答しない。
その他は自由に設定可能。Xon/Xoffは設定するのならば相手側に合わせておく。

 1200ボーの速度でTeraterm側から長めのテキストを送信してみたが特に取りこぼしは確認できなかった。


 ここまでの修正を反映しV01L04として発注。今後は以下を確認予定。

ハードウェア
・Z80CTCのEXCLK出力観測(8251のTxC/RxC)
・EXO-3発振器を使い任意のボーレートを設定できるかどうかの実験

ソフトウェア
・BASIC-Fでの通信確認 デバイスディスクリプタ "SIO:"
・BASIC-GやBASIC-Iからの設定と通信ができるかどうかの確認

ということでV01L04着荷まち。

SONY BDレコーダー BDZ-ZW2800 について

 旧nasneを使っているが毎回パンクしかかっているのでBDレコーダーを導入した。PS4との連携を考えるとSONY製がよかろうということでエントリーモデルのBDZ-ZW2800を購入。これは2/3局同時録画、1/2TBのバリエーションがある。


利用環境:
・ViewSonicの液晶ディスプレイ(HDMIx2、DPx2) スピーカーは内蔵していないが音声出力あり、スピーカーに接続
・PS4+トルネ
・旧nasne 1TB
・外付けブルーレイドライブを接続したPC+PC TV Plus
・BDZ-ZW2800

※PC TV PlusはVer6.1時点で特定のドライブで連続した番組に書き出せない問題がある。こちらでは「内部エラー」が発生して2つめ以降の番組書き込みに失敗する。
スクリーンショット 2022-12-31 134117

(1)HDMI出力に信号が常に出ていてディスプレイを掴みっぱなしになる
 BDZ-ZW2800の電源を切ってもディスプレイが黒くなるだけでHDMI端子にはなんらかの信号は常に出ている模様。このせいで機器が切り離しが確認できずディスプレイの自動切り替えができない。この液晶ディスプレイはリモコンがなく本体背面に操作ボタンがあるので不便。
 仕方がないのでHDMI切替器を使用して無理やり切るようにしている。


(2)ホーム画面で音声にポップノイズが定期的に出ることがある
 動画の再生中は発生しないようだ。

(3)『音楽タイトルを聴く』機能
 PCのブラウザ経由で音楽ファイルをアップロードし、BDレコーダー本体で再生できる。100GB/1000曲まで。本体ではリッピングはしない。

(4)ダビング時に記録画質を変更して圧縮できる
 動画の再変換には時間がかかるので録画予約が近い場合はキャンセルされると警告が出る。

(5)PC TV Plusを使ったアップロードではnasneからBDレコーダーへの直接ダビングはできない
 いったんPC側に取り込む必要がある。

(6)PS4のトルネでココトルネを購入するとBDレコーダーの操作ができる
 体験版で録画予約もできる。15分の制限があるがこれは視聴時間なのかもしれない。

(6)ダビング中にPC TV PlusからBDレコーダーへ転送すると失敗する
 円盤への書き込み中はいろいろやらないほうがよいみたい。
FlYqcFhaMAQp1Tq

(7)PC TV Plusから連続した番組を転送すると番組名と説明が変わる
 全12話のアニメの一部タイトルが別のものに変わることがある。録画日時と時間、内容は変わらないので確認してPC TV Plusを使って番組名をリネームする。
スクリーンショット 2023-01-01 184253

(8)Blu-rayの容量がPC TV Plusを使って書き込むよりも多め
 PC TV PlusでPCのブルーレイドライブを使うと約22GB、BDレコーダーでは24GBまで。

(9)PC TV Plusで円盤への書き込みや転送に失敗すると番組が消えてしまう
 これは深刻でムーブ処理を著作権的に安全側に倒しているせいではないだろうか。ユーザーとしては困る。エラー後ダイアログがでてOKを押す前にPC TV Plusを強制終了したほうがいいかもしれない。

(10)BDZ-ZW2800の操作がもっさりしている
 これは十年以上前の東芝製DVDレコーダーと変わらない感じ。操作の取りこぼしはない。

(11)ブルーレイ円盤の操作について
・BD-REから本体HDDに取り込むとBD-RE側は空になる。
・PC TV Plusで1話だけ書き込んで失敗したBD-Rに追記できる。これはおそらく書き込み失敗時にファイナライズをしていないため


 どうもPC TV Plusがらみの不具合が多い。というわけでだいたいクセは掴めたのではないだろうか。


記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ