2021年6月20日日曜日

基板を作ってみた

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 件のコメント:

コメントを投稿