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ウェイトは元に戻します)

原因はちゃんと調べていないけど、試作品と異なりリード線がシンプルになった分、信号がリニアに伝わるようになったからでは?と勝手に思っている。。

2021年6月13日日曜日

USB Host見直し

Raspberry Pi PicoのSDKが更新されていて、USB Hostが新しくなっていたので試してみる

前のブログ画像にもあったのだが、デバッグ画面に時々parse_configuration_descriptorのAssertが出るのが気になっていた。


pico-sdkのtinyUSBが更新されていたので、最新版を取得。
以前、usb hostのサンプルは、

\pico-example\usb\host\host_hid

にあったが、今回はpico-sdkの下に移った。

\pico-sdk\lib\tinyusb\examples\host\cdc_msc_hid\src

またSDK内部も更新されており、以前のコードのままだとビルドも通らなくなっていた。
ソースコードを修正して、もう一度何種類かキーボードを試した結果、
  • Buffalo BKBU-J109LG : OK
  • Buffalo YDKBU02BK : OK
  • iBuffalo SAVIOR BSKBC02 : NG
  • Fujitsu USB Hub付キーボード : NG
  • Dell Keyboard KB212 : OK
  • Sanwa Supply SKB-SL065V : OK
  • ユーエーシー KU-8933 : OK

キーボードの認識結果は前回と同じだったが、Assertは出なくなった。


一度キーボードを抜き差しすると正しく認識しなくなるのは直っていないが、Assertが出なくなったぶん、新しいSDKの方が安心して使えそう。

あとUSBコネクタが断線したので、ケーブルが無いのものに変更。
横出しなのでちょっと扱いにくいが、断線の心配がないから安心...