PCBGOGO で作成した基板
以前に、別件で、PCBGOGO で基板を作る際、同時に注文したもので、部品も揃っていたのだが、ハンダペーストが無かったのもあって、ほったらかしにしていた・・・
※10枚作って、$5だった、安!、送料は$17とかだった・・
それをようやく組み立てた。
ハンダ付けに苦労はしたが、何とか組み立て、接触不良無く、一発で動作した。
※パッドの形状などから、QFN20 のハンダ付けが一番不安だった・・・
Silicon Labs CP2102N について
中華の格安モジュール基板で「CP2102」は大量に出回っているのだけど、「CP2102N」は少ない。
仕様的には同じ部分も多いが、マイナーチェンジ版の「N」は、もう一息だった部分が改良されていて、申し分のないものになっている。
- 一台の PC に複数のデバイスを繋いだ場合の挙動が改善されている。
- FTDI のメジャーチップより高性能で、同じボーレートでも、送信も受信も速い。
- カスタムするツールの導入が簡単で、専用の ID や文字列を埋め込める。
- 安い!(QFN24 で @160 くらい)
QFN パッケージの憂鬱
CP2102N は、パッケージとして、QFN20、QFN24、QFN28 などがあるのだが、KiCADでトラックを引く前に、部品を発注してしまった・・
QFN パッケージでも、手ハンダで取り付け出来るのだが、QFN20 は、角のピンが隠れているし、裏面にGNDパターンがあり、手ハンダでは難しい事が判って、大いに後悔した・・・
QFN24 にしとけば良かった・・・
ハンダペーストを楊枝で、適当に塗って、コテライザーを使って、溶かして付ける。
念の為、フラックスを塗って、サイド側からハンダコテを当ててパッドにハンダを盛る。
これで、何とかなったようだ・・・
接触不良も無く、動いているようだー。
タカチのケースに入れる事を考えた形状
初めから、タカチのケースに入れる事を考えて作ったのだが、急いでいた事もあって、イマイチだった・・・
基板をリューターで削って、何とかなった。
※一応、隅に配線が通らないようにはしている。
3.3V のレギュレータ
RXマイコンでは、3.3Vで動かす事が多いので、3.3Vの三端子を載せてあり、電源電圧として、5V、3.3Vを切り替え出来る。
チップ部品は結構大変
あまり考えずに、1608サイズのチップ部品にしたが、手ハンダはキツイ!
何か、治具を作らないと綺麗に配置するのは難しいかもしれない、視力が衰えている事もあるが、ルーペで拡大しないとならないし、ハンダ付けする時部品を押さえておかないとならない。
rx_prog の不具合?
FTDI より 高速に送信、受信が出来るものの、大きなファイルを書き込むと、エラーで止まる現象が起こる。
※FTDIでも発生していたのだが・・
原因は調査中だが、CP2102Nの問題では無さそうで、MSYS2のPOSIX系シリアルドライバーのハンドリングにありそうだ、こちらは、簡単に原因を見つけられなかったので、解析中。
2020-06-08 01:10:15 Monday
問題は解決したものと思う:
- erase-page、write-page のループで、間隔を空けないで、次のコマンドを送ると、RXマイコン側がストールするようだ。
- erase-page の場合、ページ(256バイト)毎に2ミリ秒の待ちを入れた。
- write-page の場合、ページ(256バイト)毎に5ミリ秒の待ちを入れた。
- 上記待ちを入れた状態で、ストールせず、正常に書き込めた。
- 待ちを入れない場合、RXマイコン側でバッファオーバーランなどが発生するのかも・・
- この修正は、コミットした。(rx_prog)
2020-06-09 04:34:32 Tuesday
- rx_prog を拡張して、erase-page-wait、write-page-wait パラメーターを追加。
- rx_prog.conf にも変数を追加。
- 設定は、マイクロ秒単位、標準で、それぞれ、2000、5000を設定してある。
FTDIとシリコンラボで、ボーレートが同じでも全体のパフォーマンスが異なるのは・・
以下のような理由によるものと思う:
- 基本的にドライバーの違いのようだ。
- FTDIでは、小さいパケットを送ると、「都度送る」
- シリコンラボの場合は、「貯めて送る」と、「バッファにあったら送る」
- USBサービスの関係から、「都度送る」と間隔が空いてしまうようだ。
- ハンドシェークを行わない場合、受け手の仕様によっては、相性問題が発生するかもしれない。
- 受け手の作りが「甘い」と、FTDIの方が相性が良い事になる感じか・・
FTDI と シリコンラボ速度比較
AUDIO_sample/RX64M/audio_sample.mot (628460 バイト)
rx-elf-size audio_sample.elf
text data bss dec hex filename
541476 48 86936 628460 996ec audio_sample.elf
-rw-r--r-- 1 hira hira 1353908 6月 8 03:13 audio_sample.mot
FTDI(FT232XS) @230 秋月電子:
time rx_prog -P COM5 -d RX64M --progress --erase --write --verify audio_sample.mot
Erase: #################################################
Write: #################################################
Verify: #################################################
0.39user 1.90system 5:57.08elapsed 0%CPU (0avgtext+0avgdata 9304maxresident)k
0inputs+0outputs (2442major+0minor)pagefaults 0swaps
※FTDIのメジャーデバイス、FT232RL(@400) でも結果は同じ。
SiliconLabs(CP2102N) @160 DigiKey:
time rx_prog -d RX64M --progress --erase --write --verify audio_sample.mot
Erase: #################################################
Write: #################################################
Verify: #################################################
0.28user 1.09system 1:51.59elapsed 1%CPU (0avgtext+0avgdata 9372maxresident)k
0inputs+0outputs (2460major+0minor)pagefaults 0swaps
上記のように3倍以上違い、値段も安い!
なので、CP2102N を使うべきー