RP2350Aの自作開発ボードを作り、手はんだ実装した記録

RP2350Aのマイコン単体が手に入るようになったため、RP2040と同様に『手はんだ実装挑戦キット』を作ろうとしています。キット化の前に私自身が作ってみたので、その過程を記事にします。私の頒布する『手はんだ実装挑戦キット』をやってみるに当たって参照したり、RP2350AやRP2040を手はんだ実装する際の参考にしてもらえればと思います。

RP2350A基板を作ってみた記事は別途書いています。

74th.hateblo.jp

この記事は以下のリンクのツイートをまとめたものです。

https://x.com/74th/status/1878297419764670937

必ず必要な道具

あると便利なもの

RP2040手はんだ実装位置合わせ治具

位置合わせが楽になります。これを作る以前の位置合わせの手法についてはドキュメントにまとめています。

74th.booth.pm

USB-Cソケット実装テスタ

ブリッジしやすいUSB-Cのソケット実装が楽になります。

74th.booth.pm

RP2350Aチップの入手

最近LCSCで購入できるようになり、購入しました。

www.lcsc.com

実装した基板

こちらでKiCadファイルを公開しているものです。

github.com

回路図はこちらです。

部品リストは以下となっています。

Reference Name Package Quantity
C1,C9-17,C19 Capacitor 0.1uF SMD I0603 M1608 11
C2-4,C18 Capacitor 4.7uF SMD I0603 M1608 4
C5-6 Capacitor 7-33pF SMD I0603 M1608 2
C7-8 Capacitor 10uF SMD I0603 M1608 2
D1 LED Blue SMD I0805 M2012 1
J1 USB Type-C Receptacle 1
J2 Box Pin Header 2x5 Pitch 1.27mm TH 1
L1 Inductor 3.3uH SMD I0806 M2016 1
R1 Resistor 200Ω SMD I0603 M1608 1
R2 Resistor 1Ω SMD I0603 M1608 1
R3-4 Resistor 27Ω SMD I0603 M1608 2
R5 Resistor 33Ω SMD I0603 M1608 1
R6,R10 Resistor 1kΩ SMD I0603 M1608 2
R7-8 Resistor 5.1kΩ SMD I0603 M1608 2
R9,R11 Resistor 10kΩ SMD I0603 M1608 2
SW1-2 Button SKRPABE010 2
U1 MCU Raspberry Pi RP2350A QFN56 1
U2 USB Power Protection IC CH213K SOT-23 1
U3 Regulator 3.3V SOT-89 AMS1117-3.3 SOT-90 1
U4 Flash W25Q32JVUU USON-8 1
Y1 Crystal 12MHz SMD 3225 1

USB-Cソケットの実装

低い部品から実装するのがセオリーですが、私はブリッジしやすいUSB-Cソケットから実装し、テスターを使って実装をチェックするようにしています。

まず、足をはんだ多めで実装します。足の実装がしっかりしていないと、USBケーブルを乱雑に扱ったときにソケットが剥がれるようなことが起こってしまいます。

まず、ランドの部分をに適当にはんだを載せます。この時点ではブリッジを気にしないようにします。

フラックスを塗ります。ピンとランドの両方をんだごてで温めて、余分なはんだを取るように実装します。以下の写真はちょっとピンとランドが浮いていますね。

この時点で、USB-Cソケットが基板と正しく実装されているかチェックします。

前述の『USB-Cソケット実装テスタ』を使うと、ピンにプローブを当てるだけでチェックできます。各USB-Cのピンは以下に接続されています。各プローブを当てて、テスタのLEDが光るかどうか確認します。ブリッジしている場合、複数のLEDが光ってしまいます。

  • GND, VBUS: U2
  • D-, D+: R3, 4
  • CC1,2: R7, 8

RP2350Aの実装

『RP2040位置合わせ治具』を使います。この治具については以下の記事を参照ください。

74th.hateblo.jp

こちらを使わずに実装する場合、以下の実装指南ガイドのドキュメントに実装時の方法を書いてあります。こちらを参照してみてください。このドキュメントは、RP2040において位置合わせ治具開発前のドキュメントになります。

docs.google.com

本記事では、位置合わせ治具を使って実装を進めます。 位置合わせ治具をあてて、ピンヘッダを差し込みます。

ピンソケットでMCUを抑えて、ブリッジしても気にせずにランドとMCUにはんだ付けをします。

ピンソケットをMCUを抑えながら、位置合わせ治具を外します。この時MCUを抑えておかないと、ランドを巻き込んでMCUを剥がしてしまうことがあります。

フラックスを付けて、ランドをこて先を滑らせて、各ピンを実装します。フラックスをめっちゃ使いましょう。

横から見て、各ピンとランドがくっついているのを確認します。

RP2350Aの裏面GNDランドには、スルーホールからはんだごてを差し込んで実装します。私がRP2040を使う基板には裏からはんだごてを挿して実装できるようにしてあります。ペンの形のB型はんだごて先を使うとよいです。

FLASHの実装の実装

また、難しい部品から先に実装します。

基板サイズ上SOP8のW25Q32JVSが使えなかったので、USON8のW25Q32JVUを使うようにしました。

まず細く切ったマスキングテープで位置決めして、固定します。ここが一番重要。

ピンセットで押さえながら横に出ているピンを実装し、テープを外してフラックスを塗って残りの横のピンを実装します。

最後に、裏面に続くランドを、少し長めに加熱して裏面パッドに接続されるようにします。ICの裏面のパッドには繋がるようにできています。

水晶発振器の実装

次に実装しにくい水晶発振器を実装します。これがきちんと実装されていなくて動かない事例を何度か見てきました。

まず、ランドの1つに予備はんだ(はんだを載せておく)をします。

そこに部品を載せます。水晶発振器をピンセットで抑えながら、はんだごてを当てます。この時、部品が浮かないようにするピンセットで抑えて基板に密着するようにします。

残り3つのランドを温めて、はんだを流して実装します。4つともはんだづけした後に、フラックスを塗って、はんだごてを当てて、余分なはんだを取ります。

このタイプの水晶発信器は、手実装ではんだが多いと、表面にまではんだが回ってしまって、短絡してるんじゃないかと思っていて、気をつけています。なので一度実装した後に、フラックスで余分なはんだを取ったり、はんだが回りすぎないようにしています。

インダクタの実装

RP2350では内蔵1.1V DCDCコンバータに使用するインダクタに推奨のパーツがあります。Abracon LLC AOTA-B201610S3R3-101-Tです。今回はその部品を使いました。

www.lcsc.com

まず、片方のランドに予備はんだを載せます(画像は別の面の予備はんだ)。

このインダクタには方向性があり、パーツの部品と基板のマークを合わせます。はんだを温めて、部品をスライドさせるように実装します。

この時は他のSMD部品の途中でインダクタを実装しましたが、シールド付きインダクタは高さが高く、他の部品が実装時に邪魔になるため、先に実装する方が良いようです。

残りのSMD部品の実装

他の部品を実装します。背の低い部品から実装するのがセオリーですが、この基盤の密度と配置上、背の高い部品から実装する方が、背の高い部品実装時に背の低い部品が邪魔にならずに良いように思っています。そのため以下の順に実装しています。

  1. AMS1117-3.3(SOT-89-3)
  2. CH213(SOT-23-3)
  3. コンデンサ、抵抗

30近い部品を実装すれば完了です。

ボタンの実装

ボタンには、Raspberry Pi Picoと同型のスイッチを利用しています。最近は、足が伸びてるのより、側面に折りたたまれた物の方が実装しやすく思って使っています。

ピンセットで位置を合わせます。

そこに、はんだごてをはんだをこて先に乗せて、ちょんと横からこてさきを当てる感じでボタンを実装します。

フラックス洗浄

ほぼ実装が終わりました。

フラックスは残ると良くないので、洗浄します。サンハヤトのスプレータイプのフラックスクリーナーを使っています。

フラックスクリーナー(スプレータイプ/285g)(FL-300)shop.sunhayato.co.jp

綺麗になりました。

チェック1: 電源まわりまずくないかチェック

PCをマイコンに接続する前に、GNDとVBUSが短絡しているようなアカン状態がないことを、テスターで確認します。

GND、VBUS、5V、3V3、1V1(インダクタ)がそれぞれ短絡していないことを確認します。

チェック2: USBが認識し、Bootモードで立ち上がるか

ここで初めてPCにUSBを接続します。『Raspberry Pi RP2350 Boot』デバイスが認識するか確認します。

私はこの時認識しませんでした。

まず、電源まわりが正しく電圧が出ているかを確認しました。以下をチェックしました。

  • VBUS: 5V
  • 5V: 5V
  • 3V3: 3.3V
  • インダクタL1: 1.1V

大丈夫でした。

次にRP2350Aの各ピンを再度フラックスを付けて、はんだを流し直しました。これで動くようになりました。

RP2040の時に作った動作しないときのトラブルシュートが、以下のドキュメントがあります。動かないときはこちらを参照してみてください。

docs.google.com

チェック3: 書き込んだファームウェアが動くかどうか

Bootモードでは水晶発振器と、FLASHが未接続でも起動します。こちらに実装の不備がある場合、ファームウェアを書き込むと動かなくなったり、Bootモードのままになったりします。

後のチェック4で使うファームウェアを作っているので、こちらを書き込みます。

github.com

多くの環境の場合、USBドライブがマウントされているので、そのドライブ内にこのuf2ファイルを入れます。

これでデバイスRaspberry Pi Pico』が認識されればOKです。

チェック4: 各ピンの接続をチェック

各ピンが実装漏れている、若しくはブリッジしているのを確認するファームウェアを作っています。

github.com

先のuf2ファイルがビルド済みファームウェアです。

GNDとジャンパをつなぎ、各ピンにジャンパのもう片方でタッチします。すると、USB CDCにてGPIO 8: LGPIO 8: Hと出力されます。

USB CDCの出力を見るには、WindowsであればTeraTermMac/Linuxであればscreenやminicom等を使って確認します。 私は最近はシンプルに使えるtioを使うようになりました。

github.com

以下のように出力されます。一つのピンに当てて、出力がなかったら接続がうまくいっておらず、複数のピンの番号が表示されたらブリッジしていることになります。この時は一発でうまく動きました。

おまけでSWDポートを10ピンを実装して使う

私の作った開発ボードには、DapLink接続用のハーフピッチSWD 10ピンデバッグポートを備えています。こちらを実装します。

マスキングテープで固定します。

裏から実装します。1.27mmピッチのため、ブリッジしないように気をつけて実装します。

実装できました。

このポートを持ったDapLinkを自作しています。Boothでも販売しています。

74th.booth.pm

これと開発ボードを繋ぎました。

Raspberry Pi Pico公式SDKを使った構築すると、VS Codeで使えるデバッグ実行設定が含まれます。 これでLチカコードをデバッグ実行してみると、実際にブレークポイントで止めることができました。

その時に使ったコードはこちら。

github.com

終わり

これでRP2350Aボードの実装と、確認は完了です。

手はんだ実装挑戦キットを販売中

この制作を体験できる、RP2350A手はんだ実装挑戦キットをBoothにて販売しております。

74th.booth.pm

前述の通り、KiCad設計ファイルを公開しているため、基板をご自身で製造を発注し、部品を調達していただくこともできます。

本挑戦キットは、RP2040版もあります!

74th.booth.pm

74th.booth.pm