もどる

USB-PDトリガIC(CH224K)で遊んだよ


USB-PDトリガアダプタに使える石という事で、CH221K,CH224Kがあり、秋月でも入手が出来ます。
まずはCH221Kで、制御用のピンの抵抗値を変える事で目的とする電圧を変更する事が出来ます。
秋月で買うなら一緒に[109461]チップ抵抗 2W1kΩ ±1%も買っておくと良いでしょう。
なにも考える事無く、ジャンパピンなどで抵抗値を変更してあげるとPDからの電圧が変わります。
CH221

で、同じデータシートにあるCH224Kを見ると、CFG1,2,3でマイコン制御可能とあります。
……ならなんとなくやってみたいよね?の精神で。

ただ切り替えるだけにマイコン使ってもならCH221Kでジャンパピンでも十分な訳ですから 液晶表示つけて状態が見えるようにしましょう。
という事はINA219でもいれて流れている電流見れると面白そうですよね?
あと出力のOn/Offできるとうれしいよね。と言う事で、[130306]ローサイドスイッチ BV1LB085FJ-Cも盛ります。

さて、この手は省エネというか起動が速いのが基本と、PICを持ってきましたが、液晶表示を考えていると 面倒になり、とりあえずその辺にあったXIAOでも使ってこの構成を動かしてみるか。と。
ごりごりといじりながらXIAO高いなーとか「基板起こしてもそこに、モジュール、モジュール、モジュールて構成はダサいよな」とか 考えていたところで、AIに面倒だよね?と投げ込むとフォントを吐き出してくれました。 電源が入ってもマイコンが起きていないから制御が出来ないというわけにはいきません。またAIに投げて遊んでいたらサクッとRPでOLEDに文字出せますよ?と叩き台を出してくれましたので…

そう、ここで話が一気に転換しまして、秋月で扱っているRP2354(ROMあり)使ってワンチップとして 使ってやれば良くないか?と。

で、RaspberryPI PICOでは、20V->3.3Vの降圧が200mA近くを想定する必要がある?とかで 元々検討していたレギュレータ([113391]XC6216D332PR-G)はパス。TorexのDCDC,[130282]XC9704B75CPR-Gを試してみる事に。(後述)
この辺りで大体構成が固定され、必要なCや、あるいはRP用のLなどを Digikeyに注文する羽目になります。じゃあ、INA219も中華なボードじゃ無くて自前で乗せよう。と、 で、どうせ乗せるのならINA219Bにしてシャント抵抗も合わせて買おうと。
秋月縛りの様でいましたが、タガが外れたDigikey祭りが始まりました。
(XC9704の18pFあたりでDigikey見ましたよ)

これだけやっても自前で実装するつもりですから、コンデンサは1608以上に縛ります。
1005は半田付け出来なくはないけれど飛んでくし、気を遣います。
あとRPは4層だそうですが、2層基板で片面乗せにtryです。

で、できあがったモノがこちらです。

ch224

あまり細かい事考えないまま「なんとなく引けた」感はありますが……
RP2354のパッド幅0.2mmに対し配線幅も0.2mmでコンデンサの隙間を抜けられる本数が少なくなるのが厳しいです。
もうこの配置で終わったのなら、ずらしたくない。これ以上なにかを付け足したく無い感じです。

一応ソフトもほぼ完成の状態からで見てみましたが、後ろに何もつけないでこのボード単体で18Vで20mA程度です。
DP100の出力段で、0.41wですから、これがDCDCで変換効率80%で3.3Vに落とせたとした場合、
0.41*0.8/3.3=0.09939…ですので、3.3Vラインはおよそ100mA流れていることになります。

周辺を殆ど使わずI2Cだけで、動作クロックも初手で48MHzに落としただけあって、このくらいに収まるのならOKでしょう。
48MHzの動作をコメントアウトして150MHz駆動にもしてみましたがこの構成では(?)殆ど誤差に収まってしまいました。
20mAに収まっている図

で、映り込んでいるからおわかりと思いますが、DP100あるのですよね。
このボードなにに使うんでしょう?

おおよその接続・構成

CH224KUSB-PDからVbusの電圧制御を行う。CFG1,2,3をRP2354で制御
RP2354AタクトスイッチでPDの電圧を切り替え、かつBV1LB085FJ-CでOn/Offも行う。 OLED,INA219とは同一のI2Cで接続し、出力電流が2Aを超えたらOffにし、HALTとする
OLED1306RP2354とI2Cで接続、電圧、電流、電力を表示
INA219BRP2354とI2Cで接続、Vbus->出力の電流監視を行う
BV1LB085FJ-Cローサイドスイッチではあるが、出力のOn/Offを行う
XC9704B75CPR-GVbusから3.3Vを作成しこれらの回路の電源とする


先のは2代目で、こちらが初代。
インダクタのパッドサイズを間違えてしまい、広く取り過ぎてしまいました。
仕方が無いのではんだしやすいように90度傾けてパッドからもりっと盛って無理矢理接続しています。そしてこれで動いています。
RP2354ご指名のインダクタ

RPのハードウェアデザインガイドでは「インダクタのレイアウトは超重要!向き(極性)も確認してこのパターンを厳格に守れ」と口を酸っぱくして書かれている最重要箇所なのですが……動くもんなんですね。思っていたよりRPラフにいけそうです。


補足資料

2W1kΩの抵抗 CH221/224ではUSB-PDのVBUSからVDDへ接続する際に1kΩを挟むように指示がある。
CH221では5.8VであるがCH224ではVDDが3V-3.6Vなので、最大20V->3.3Vが流れるとし1/2W以上が必要で (20V-3.3V=16.7V 16.7V/1000Ω=0.0167A 16.7V*0.0167A=0.278..W) そこでとりあえず1W品とかを探していたら灯台もと暗しで秋月に2W品が!しかも同じサイズで1%精度
XC6216D332PR-G 入力が5Vから20Vで3.3Vを出せるから選定したものの、150mA品で20V時の電流と合わせるとちょっと怖いかなでDCDCに。PICとかならいけると思う。
ざっくりで20V-3.3V=16.7V 16.7V*0.1A=1.67W SOT89パッケージ品の許容損失は 500mWなので 0.5W/16.7V=0.0299A つまりPDからでは30mA程度で限界と
XC9704B75CPR-G LDO諦めてDCDCを眺めていたら目に入った36V 600mA品
試してみたら25Vから3.3V500mA引っ張れたのでコレに決定。
この実験のために3端子レギュレータと同じ配置になるような基板作ったよ。
78xx互換にしたXC9704ボード

12Vから3.3Vに落として、限界(600mA)付近の550mAの状態。
石の温度は67度を超え緩やかに上昇気味だったので放熱不足は否めないが…
Vin12V Vout3.3V 550mAの図

一端冷却してから、Vin12V 負荷300mA開始である程度の刻みをもって、34Vに到達
Vin34V Vout3.3V 300mAの図
28Vで51度、30Vで52度、32Vで53度、34Vで56度と短時間に刻んで行ったのでなんとも言えない処ではありますが
Vin30以下、300mAであればこのサイズの基板でも冷却は持ちそうです。

その後追試で、入力電圧34V,電流550mAで10分程かけて80度台へ到達、83度くらいが映り込みます。
そのまま5分経過で15分後もほぼ変わらずですので、ここらでしょうか。
このときのEL15での電圧は3.2206V付近を表示
一端冷却して30度くらいに戻ってから負荷を300mAでいれて3.2599V(550mAにするとすぐ温度上昇して安定しないため)
その熱による差は0.0393Vでした。(実際は250mAが余計に乗っているのでもっと少ないはずですが)
つまり3.3Vに対しておよそ1.2%位熱ドリフトする可能性がある。と。
こんなクソケースで語られるってメーカの人も想定していないだろなぁ…非常に申し訳ない Vin34V Vout3.3V 550mAで15分経過の図
温度測定はFlir Oneなのでぶれは仕方が無いですが。

コンデンサや抵抗はdigikey頼みとしましたが、インダクタは秋月にあった[114978]DFE322512F-4R7Mを使いました。
INA219 定番の中華モジュールがあったからコレをと思ったが、基板作るしRPとDCDCを試験したらそんな変な気もせず同じく乗せちゃえと。
で、入手性からDigikeyで探して気づいたらINA219B(0.5%)に、どうせならとシャントもOhmiteのPCS2512DR1000ET(0.5%)に


そうそう、ArduinoIDEでRP2354への書き込みは、ボードをGeneric2350にして
ボード選択 Generic RP2350

FlashSizeを2MBにします。
Flash Size 2MB選択

最後に、石に合わせてAかBを選択します。
Chip Variant A/B選択

あまり情報が無かった気がするのでここに書いておきます。

そして最後にひっそりとアーカイブ ソース


もどる