ADP2503/ADP2504 降圧、昇圧DC/DCコンバーター

充電池で動く機器を作るのに便利なDC/DCコンバーターの実験をした。

CPUの電源電圧が3.3Vだと、3.7Vのリチウムイオン電池から電源供給する
には、微妙だ。
シリーズレギュレーターだと、3.5V程度までしか使えない(電圧降下が0.2V)
かといって、降圧のDC/DCでは、3.3V以上の電圧がある場合には使えない。

そんな用途に使いやすい、降圧、昇圧を自動で切り替える事ができる、デュアルトポロ
ジーのDC/DCコンバーターがある。
adp2503

DC/DCの大手はリニアテクノロジーと思うけど、数量が少ない場合は、コストが高
く、気軽に使えない場合が多い。
そんな時、アナログデバイセズの製品が目に留まった。
※電圧固定(3.3V、5V)と、抵抗で任意(最大5.5V)の電圧を生成できるタ
イプがある。

単価は300円くらい(10個だと230円くらい)とまぁまぁで、パッケージがQF
Nなのが痛い(割高だがSOPもある)が、先日購入していた。
2503と2504の違いは取り出せる電流が違い、単価は数十円違う。
購入した時は、2504を5個と、2503のSOPバージョンを1個買ったつもりが、
両方共QFNを注文してしまい、長い間実験出来なかった。

昨日、QFNの変換基板を買ってきたので、ADP2503(600mA)を実験して
みた。
QFNのハンダ付けは、毎回、苦労する。

img_0864s
コテライザーの先端にブロワーを付けてQFNのハンダ付けに利用している。

img_0865s
今回は使わなかったが、1000mAを取り出せるADP2504、そのうち専用基板
を作る予定。

img_0860s
実験に使用したADP2503をユニバーサル基板に組んだ状態。
※スイッチング周波数が高い為、チョークコイルは1.5uHと小さい。
※VRefは0.5Vなので、3.3Vを得る為のネットワークは、168Kと30K
とした。(168Kは100Kと68Kを直列とした)
分圧抵抗の計算ツール
※マニュアルでは、合計が400K程度になるようにと書いてあったが、手持ちの都合
で、上記の組み合わせとした。(問題無いと思われる)
取り出す電流が小さい場合、間欠モードを選べるが、このモード中は、多少高い電圧と
なるようだ・・・

※18650のリチウムイオン電池は、プルタブ付の物をオークションで購入した。

img_0866s
リチウムイオン充電モジュール
※リチウム電池の電圧が3V程度になると、パワースイッチで切り離されるようになって
いて、電池の深い放電を防止する。
中華製で110円(激安)

RX24TでLCD表示と、各種LCD

部品の整理をしていたところ、色々なLCDが出てきた。
img_0858s
※安売りでバーゲンしてる時に買ったもの。

RX24Tには、まだ液晶を接続していなかったので、RX24Tで実験してみた。

赤い基板と横長の基板は、ST7565で、小さいのは、UC1701、白い枠は、
カラーTFT液晶。
横長は、モノ128×32、他はモノ128×64、カラーは128×160となって
いる。

どのLCDも、SPIで通信するものだけど、ピンアサインが、どれも微妙に異な
る・・・
また、基本的には、電源は3.3Vだけど、バックライト用電源が異なるモジュー
ルがある。(Aitendo さん何で同じにしないかなぁ・・・)

以前に買ったLCDで、LCDの不良(仕様違い)で、使わなくなっていたやつを
交換してきた、メールで問い合わせたら、返金すると言っていたが、同等品があった
ので、交換にした。
img_0862s
このLCDは大型でバックライトもあり、なかなか良い。

同じコントローラーでもLCDによりコントラストの設定が異なるのが、多少厄介。

img_0863s
※周囲が暗いけど、小さめの赤い基板のLCD、液晶の応答速度が若干速い気がする。

img_0859s
※さらに小型のLCD(バックライト付)で、コントローラーがUC1701

他にもあるが、どれも表示は問題無くできる。

    // SPI 定義(RSPI0)
    typedef device::rspi_io<device::RSPI0> SPI;
    SPI spi_;

    typedef device::PORT<device::PORT6, device::bitpos::B1> LCD_SEL;    ///< LCD 選択信号
    typedef device::PORT<device::PORT6, device::bitpos::B2> LCD_A0;     ///< LCD レジスター選択

#ifdef LCD_ST7565
    // ST7565 drive
    chip::ST7565<SPI, LCD_SEL, LCD_A0> lcd_(spi_);
#endif
#ifdef LCD_UC1701
    // UC1701 drive
    chip::UC1701<SPI, LCD_SEL, LCD_A0> lcd_(spi_);
#endif

「LCD_SEL」はLCDの選択信号
「LCD_A0」は、LCDの制御レジスター切り替え

LCDの切り替えは、インスタンスを代える事で行う。
「spi_」は、SPIを制御するクラスで、コンストラクター時、参照で受け取るよう
にしてある為、SPI の制御をシェア可能になっている。

LCDのコントラストは、LCDのスタート時に(初期化)設定する。

    lcd_.start(0x00);

※大きいタイプは0x10程度、他は、0x00くらいだった。(LCDにより調整
が必要なようだ)

RX24T、LCDサンプル