個人的回路設計・デバッグテク

参考にしてくれ

 

以下記事と同じシリーズかも

manjuu.hateblo.jp

 

 

部品選定完全攻略

秋月電子縛りならともかく、DigiKey,Mouser,LCSC等も含めて部品を選ぶ場合、候補が増えすぎてしまうことがある。そんなときに使えるテクニック。

 

Digikey等で目当ての部品ジャンルを見つけて、セレクタでざっくり絞ったあと、残ったメーカーをチェック。

高耐圧FETの選定時のメーカー一覧

メーカーサイトに行って再度絞り込む。各メーカーごとに0~数個程度に絞り、他メーカーの候補製品と比較して頂上決戦を行い、採用する製品を決定する。

 

・・・基本的に各メーカーで製品ラインや用途ごとに特徴が表などにまとめられており、これを参考に選定すると桁違いに効率が良い。

 

以下はTIのローサイドゲートドライバの一覧。用途や性能がひと目でわかる。

https://www.ti.com/ja-jp/power-management/gate-drivers/low-side-drivers/overview.html

こういった情報を使わずに、データシートとにらめっこしながら、スペックだけで新旧・用途違い製品に埋もれながら絞り込んでいくのはとても手間がかかる。

特に、採用基準が曖昧な場合(複数の性能のバランスで決めたい場合、パッケージがなんでもいい場合)は候補製品数が発散しがちなのでほぼ必須のテクニックとなっている。

 

ステータスLEDの色

どこにどの色を使うかについては、基本的におかしな配色にしなければ良いと思うが、電源LEDは白色にするのがおすすめ。

緑や青はマイコンなどで駆動するステータスLEDにも使いがちなので、色に紐付けられた意味が無い白色を使うといいと思う。(RoboCup SSLの基板設計で、設計者に関わらず、LEDの配色を統一しようという話で議論した結果出したのがこれ。)

R,G,Bあたりしか持っていないと、色の使い分けに苦慮することになるので、紫とかターコイズのLEDも揃えておくと吉。

 

デバッグコネクタ

デバッグ端子の機能

UARTは必須と言って良い。SWD(SWDIO,SWCLK)しか備えないデバッグ端子は現代において"デバッグ"端子とは呼ぶべきではない。UARTは必須。

ちなみに、リセットピンはSWD経由でリセットを掛けられるので、基本的に無くても良いはず。但しスリープ状態だと使えないので、省電力性も考慮しなければならない場合は必要になってくる。ARMじゃない場合は知らん。

 

また、世のデバック端子の多くはターゲット電圧を見るようになっているが、メーカー公式デバッガ等であらゆるターゲット電圧に対応するためにそうなっているだけであり、特定条件(電圧)でしか使わない個人もしくは特定団体でのデバッグ端子に必要なものではない。

 

参考 : オレオレデバッグコネクタ

ZHの6ピンコネクタを使用し、ピンアサインは以下の通り。

5Vはオプション、UART_TXはマイコン→デバッガの方向

ZHコネクタはのは、学ロボ時代からの流れというのもあるが、(6ピンであれば)ラジコンカーのブラシレスモーターのセンサーケーブルを流用できるというメリットがあるので採用している。

これからデバッグコネクタを決めようという人は、JST SHやMolex pico bladeあたりが良いかもしれない。

 

デバッグ端子からの給電については、外部電源無しでボードを動かせるメリットもあるが、意図しない経路での給電でターゲットボードやデバッガの破壊につながることがあり、良し悪しある。デバッガ側は3.3Vか5Vを出しておきつつ、基板側で繋いだり繋がなかったりすると便利と思う。

最近はあまりデバッガ側からの給電は使っていないがちなので、もうリセットピンを割り当ててしまおうかという気持ちもある。(もうpixhawk互換でいいのでは・・・?)

 

参考 : pixhawk

pixhawkと呼ばれるドローンハードウェアの標準規格がある。

この中で、コネクタ・ピンアサインの標準も定義されており、サイズ感やモダンさにおいてロボット用によく適合する(と思う)。

github.com

 

例えばデバッグ端子(mini)のピンアサインはこう。

https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-009%20Pixhawk%20Connector%20Standard.pdf

ターゲット電圧端子はあるものの、JST SHコネクタを採用した6ピンで、SWDとUARTの組み合わせという構成になっている。これが標準として普及してくれないかな・・・・

 

関係ないが、STMicroがST-Link mini EというtypeCコネクタになったST-Linkを出している。とてもおすすめ。

www.st.com

 

 

デバッグプリントを見やすくする

桁固定

printf("X = %d Y = %d",x,y);

このような書き方だと、1つめの値の桁変動に伴って2つめの値の位置がズレてしまう。

 

以下のように桁を固定すれば桁変動の影響を受けなくなる。

printf("X = %5d Y = %5d",x,y);

 

この例では桁数しか固定していないので、負の値を取った場合にマイナスがついてずれてしまう。実用上は符号を常時出力したりする必要がある。

printf("value = %+6.2f",hoge);

 

文字・背景色(等)

(シリアルコンソールが対応していれば)エスケープシーケンスを使用して文字や背景色等を変更できる。

文字を読まなくてもひと目で状態がわかるので眼球にも優しい。

 

参考(どちらもほぼ同じ内容だが、リンク切れ対策で貼っている)

www.mm2d.net

qiita.com

 

 

以上

 

書きたい内容が  また出てきたその時は  追記したい