Pasopia700用USB Keyboard Adaptorの基板を作ってみる。
今回も以前と同じEAGLE 5を使うが、Raspberry Pi Pico用のライブラリがない。
Picoのマニュアルを見ながらスクリプトファイルを作成し、ライブラリファイルを作る。
ファイル(F) → 開く(O) → ライブラリ(L)... でライブラリウインドウを開く
ファイル(F) → スクリプトファイルを実行(T)... で作成したスクリプトファイルを開く
問題なければ、回路図用と基板用のパッケージが生成される。
ファイル(F) → 名前を付けて保存(A)... でライブラリファイルを保存できる
EAGLE5用に作成したRaspberry Pi Picoのスクリプトとライブラリは、ここに置いておく。
このライブラリを使って書いた回路図はこちら。
基板はこちら
PCB基板の作成は、XPAC2と同じくunicraftさんにお願いした。
基板発注にに必要なガーバーデータをEAGLE5で作成する。
まずはファイル(F) → CAMプロセッサ でCAMウィンドウを表示する
ファイル(F) → 開く(O) → job... で出力データに合ったジョブファイルを選択する
今回は2層基板のガーバーデータ出力に「gerb274x[2L].cam」ジョブ、ドリルデータ出力に「excellon.cam」ジョブを使用。
各ジョブを読み込んだ後に「Process Job」ボタンを押すとファイル出力される。
出力された各ファイルを、unicraftさん指定のファイル名に変更して発注しました。
発注してから1週間ほどで基板が到着。
今回も綺麗に仕上げてもらいました。
装着する部品を並べてみると、XPAC2より少ないです。
Pasopia700で動作チェック
すると、新しい基板だと時々キー入力されない時がある。
調べてみると、PicoのGP18入力値が不安定になっている。
GP18は、Pasopia700からのCLOCK信号(DINケーブルの11pin)とGP20からの出力信号のAND結果を入力している。
Picoのロジック側で、USBキーボードの変化があった際にGP20を一瞬LowにしてHighに戻しているが、GP18がLowを拾えないタイミングがある様子。
gpio_put(20, 0);gpio_put(20, 1);
この間にウェイトを入れてLowの間隔を長くすると問題は起きなくなった。
更にロジックを見直してみると、GP18はPicoの内蔵プルアップを有効にしていた。
gpio_pull_up(18); // Pin11: CLK
このプルアップを外しても問題は起きなくなった。
今回の回路では全てのパソピア信号線に対してハード的にプルアップ・プルダウンの回路を組んであるので、Pico内蔵のプルアップ・プルダウンは設定しないようにPico側のプログラムを変更することにします。(GP18のLowウェイトは元に戻します)
原因はちゃんと調べていないけど、試作品と異なりリード線がシンプルになった分、信号がリニアに伝わるようになったからでは?と勝手に思っている。。
0 件のコメント:
コメントを投稿