2010年10月03日

ロジアナでLCDの解析(1)



突然だが、ロジアナを買った。ストロベリーリナックスや秋月で売っている例のあれ -- ZEROPLUS社の LAP-C(16032)。

    追記: 秋月で、LAP-C(16064) が 12,500円になっている。プローブ接続リード、ICクリップ(プローブ)x20本も付いた。16032 は販売終了だそうだ。あと、ケースは 3000円もするから他で買ったほうがよいだろう。私が買ったのは pandawill の これ

買おうと思ったのは、解析したいものがいくつか出てきたのが理由。

  • 中華PMP のボタン制御をしている(?) 謎ICのプロトコル
  • 中華PMP のLCD(たぶんコントローラが分れば良い)
  • Wii用の Bluetoothモジュール

まぁ解析したいのは、こういったものだが、本番の前に 練習としてフォトフレームのLCD の解析をしようと思う。

最初は、2.4inch 中華フォトフレーム(型番不明なのでこう呼ぶことにした。) を解析しようと思ったのだが... プローブを引っ掛ける足がない。



それで、こういうことを考えたのだが... 端子がずれているのは、置いておいて.. 端子の強度が足りなかった。ちょっと力を入れたら切れてしまった。

たぶん長期戦になるだろうし、ケーブルを直接ハンダ付けすることにした。ここで、1.0mm ピッチの ランドがある KDPDK24 にターゲットを切り替え。
最初は、aidendo の ピンヘッダ用接続ケーブル[CB-PH10P-250]を使おうとしたのだが、1.0 mm ピッチでも太すぎ。



結局、こうした。ケーブルはより線で、リボンケーブルより少し細く少し熱に強い。DB0-DB7 , WR, RS, CS, RESET の順。



LAP-C 側はこう。16ホールユニバーサル基板1x14ピンソケットを取り付け。

ここまで来たらあとは簡単だろうとタカを括っていたのだが、これが難しい。

録りたいのは、初期化シーケンスなのだが、なにが出来るか(まだ)知らないのもあって無理だった。


データ: lcd-w001.alc

ようやく録れたのがこれ。1フレームを書くときの シーケンス。WR のタイミングでデータが確定するわけだが、パルス幅は、300ns。内部クロック 10MHz でないと録れない。

波形はとれたが、どうやったら 解析してくれるのだろう? そんなことも知らず、とりあえずデータをスクロールして追ってみた。


    C 2A
    00 e8
    00 e9
    C 2b
    01 38
    01 39
    C 2C
    e7 1c
    e7 1c
    e7 1c
    e7 1c
    C 2A
    00 ea
    00 eb
    C 2b
    01 38
    01 39
    C 2C
    e7 1c
    e7 1c
    e7 1c
    e7 1c
    C 2A
    00 e8
    00 e9
    C 2b
    01 3a
    01 3b


こんな流れ。C は、RS=0 。

    ST7785 らしいと 前記事で書いたが、データシートを見ると

    2A CASET -- Colum Address Set (Start 2byte / End 2byte)
    2B RASET -- Row Address Set (Start 2byte / End 2byte)
    2C RAMWR -- Memory write (DATA)

    ST7785 そのものかどうか分からないものの、その系統というのは確からしい。

疲れてしまったので、ここまでで一時中断。

(つづき)


データ: lcd-w002.alc

なんか録れた。CS ↓ 5 回目から採取と指定。


    C 10
    :
    C 11
    :
    C 13
    C B1 29 02 02
    C B2 29 02 02
    C B3 3E 02 02 3E 02 02
    C B6 02 02
    C C0 00
    C C1 CB
    :
    00
    C C2 03 F7 06 30 05 00 06
    C C5 3B 1A
    C C6 12 00
    :
    C 3A 05
    C 36 00
    C 2A 00 00 00 EF
    C 2B 00 00 01 3F
    C 29
    C 2C
    C 2A 00 00 00 EF
    C 2B 00 00 01 3F
    C 2C FF FF FF FF FF FF .....


最後の 2C は、画面クリアのはず。

もうこれで KDPDK24 は満足。次は、ILI9325 のはずの中華PMP 。
posted by すz at 23:06| Comment(0) | TrackBack(0) | KDPDK15

中華フォトフレーム

随分前に KEIAN の KDPDK24を分解したが、海外通販を利用するようになって、いくつか 2.4 インチのものが安く売られていることが分かった。

    KDPDK24 と同じタイプ
  • FocalPrice $13.88(送料無料) (86円換算で 1194円)

    バッテリ内蔵タイプ



  • DealExtreme $16.90(送料無料) (86円換算で 1453円)
  • FocalPrice $17.84(送料無料)
  • FocalPrice $13.62
  • EverBuying $11.55(送料無料) (86円換算で 993円) 注意! バッテリー劣化(かも)


バッテリ内蔵タイプは、同じ機種を選んだつもり。中身は、KDPDK24 と似ている。CPU は同じものだし。32pin のパターン(2.0inch 用)も付いている。LCD は 36pin タイプで 8bit アクセス。

SPI-FLASH は、16Mbit MX25L1605AM2 。

違いは、バッテリー駆動なのと、圧電スピーカが付いていないこと。アラーム機能もない。

バッテリーは 381430 とマーキングされていた。150mAH ぐらいだと思える。安いところで買ったものは、バッテリーが劣化していた。パーツ取り目的ならこれでも良いのだが、実用目的だととても勧められない。

    追記: 追加購入したのだが、バッテリーが残っていた。(最初から入っている)サンプル画像も違う。
    日付は、2008/2/27 6:00 前後。充電するか、バッテリーを取り付けての出荷だと思う。たぶん初期状態の時刻を調べれば、何日もつものなのか分かると思う。少なくとも 1日2日ではないし、前のと基板も違うのかもしれない。

ちなみに、基板には、MDP-A18 VA 2008-03-08 と書いてあった。

微妙なのだが、パーツ取りには良いと思う。分解しやすいし、ケースを流用できるかも知れない。



充電は、ダイオード(D2)+4.7Ω(R1) という簡易回路(KDPDK15などとおなじ)ではあるが、MCP73831 とか LTC4054 互換の 充電用 IC が載るパターンがある(U5)。さらに充電中は、バッテリーから電源供給しないようにするための MOSFET も付けられるようだ(Q2)。

  • R1 を取り除いて MCP73831 を付ける。R27 は充電電流の設定なので、1/2 C -- 200mAH クラスなら 10KΩを付ける。
    これでも一応使えるはず。
  • その上で、Q2 を取り付ける場合は、R16 を取り除く。Q2 には、Pch MOS FET を取り付ける。FET の Gate は、USB Vbus が接続されている。R17 は、そのプルダウン抵抗で 10K とかを付ける。
    FET は、USB に接続していなければ ON で低抵抗状態。接続した場合ボディダイオードを経由して 給電されることになる。R16 を取り除くと 給電経路が FET だけになってしまう。R1 に ダイオードを入れて USB からの給電経路にする。
  • MCP73831 の STAT は、おそらく CPU に接続されている。ファームウェアが対応しているなら、フル充電を認識できるかも知れない。

LCD の ピン配置

    これだけは分かっている。(KDPDK24 と同じ)。

    ただしコントローラは分からない。


    1-3 NC
    4 IM3(0: 16bit 1:18bit)
    5 NC
    6 RESET
    7 VSYNC
    8 HSYNC
    9 DOTCLK
    10 DEN (0: enable RGB interface )
    11-28 Data bus (DB17-DB0)
    29 RD
    30 WR
    31 RS
    32 CS
    33 GND
    34 VCC
    35 LED_K
    36 LED_A

  • 1-5 pin は、全部 NC のものも多い。これも NC 。
    (ILI9325 の場合)
  • 8bit アクセス は、DB17(MSB)-DB10 を使う。
  • 16bit アクセスは、DB17(MSB)-DB10, DB8-DB1 となる。
  • RGB インターフェイスでは、DB17(MSB)-DB12 が RED 以下 GREEN,BLUE と 続く。
    (ST7785 の場合)
  • 8bit アクセスは、普通に DB7(MSB)-DB0 のはず。どうやっても ILI9325 互換にならない。

  • この フォトフレームは、8bit だが、両脇を除いた DB8-DB1 のランドが共通になっている。ILI9325 の可能性が高い。

LCD のジャンパ:



    LCD のフレキ上には、モードを設定するための抵抗が付いている。
     - フレキ上に抵抗があれば大体はモード設定用
     - すくなくともこの設定は、8bit 。

    写真ではよくわからないが、R1 と R3 に抵抗が付いている。
     - 抵抗値は書いてない。.. テスターで測ったが 0Ωのようだ。
     - 下記と同じなら R1/R2 8/9 or 16/18 bit 切り替え , R3/R4 8/16 or 9/18 bit 切り替え。



    これは Aneca A-41 という中華PMP の LCD(2.4 inch,36pin) の例。
    R1 or R2 / R3 or R4 or R5 という感じで、
    16/18bit で 16bit or 18bit は、IM3 で切り替えるということなのだろう。



    そうそう KDPDK24 にも付いていた。


さて、MCP73831 とか LTC4054 互換の 充電用 IC が載るパターンがあることが分かったので改造してみることにした。

  • 改造の目的は、充電回路の実用性のチェック。SRT162 に充電回路のパターンだけ載せたが、いまいち不安でMCP73831 は組み込んでいない。上記のような回路にしたほうが良さそうなので、使ってみようと思った次第。
  • もう一つの目的は、小容量のバッテリーの充電。バラして出てきたバッテリーはそろそろ 1 年になる。チェックして必要なら充電しておきたい。
  •  ... 実をいうと 例のロジアナを買ったので、練習を兼ねて LCD の分析をしようとしたのだが、信号の取り出しレベルでうまくいっていない。分析は KDPDK24 を使うことにしたのだが、こちらは 信号は取り出せたのだが分析がうまくいっていない。... 嫌になってきたので息抜きだったりする。







上記に書いた説明のとおりに作って、LED を付けた。

    付けた LED は 2 つ。L(充電中) で赤点灯、Hi(充電完了) で 黄点灯。USB から給電された状態で Hi-Z(その他) なら両方点灯。

    VIN --- R1K -- Red --+-- Yellow -- R470 -- GND
    |
    STAT

  • 動かしてみると、充電完了の瞬間リセットがかかる。

  • 具合が悪いので、STAT - CPU の線をカットすることにした。

  • これで、充電中 赤点灯、完了 黄点灯となった。でもまだちょっと変。バッテリー駆動で 赤、黄がうっすらと点く。... VBUS に直接接続すべきだった。(修正したら直った。)

  • これで、満充電で充電ストップするようになった。安心して USB に接続しっぱなしにできる。



    抵抗とかの番号は付け直しているが、回路図はこんな感じ。

追記: バッテリー生きているかも。

    2 つ買ったのだが、1 つは膨らんでいた(明らかにガスが溜まっている)ので死んだと判断。前に LCD 取り に分解した1.5 inch のフォトフレームのバッテリーがあるので、それと交換した。

      どうもこのフォトフレーム出来が悪くて消費電流が多い。1.5 inch だと 半年は持つのだが、1日ぐらいで かなり消費されている。



    もうひとつのバッテリーは、膨らんでいないのだが、0V で死んだものとばかり思い、保護回路の写真でも撮ろうと思い、黄色のフィルムを剥がしてみた。

    念のために、出てきたバッテリー側の電極の電圧を測定してみたら.. 2.79V もあった。

    これは、生きているんじゃないかと思い、上記の充電回路改造 ver に載せてちゃんと充電してみることにした。

    ところで、保護回路に 2 つも IC が載っている。けっこうしっかりしている感じ。2年間(予想)も装置につないだ状態でバッテリーを守ってきたのなら大したものだ。

    IC は左が DW01 右が 8205 とマーキング。DW01 は 保護用IC(データシート) で、 8205 は STN8205D(データシート) Dual Nch MOS FET 。



    こっちは、dealextreme で買った格安の交換用バッテリー BR50(710mAH, $2.38) の保護回路 いろいろ載せられるパターンはあるが、IC は 1個しか載っていない。IC には、2936H の刻印。

      なんか古そうだし過放電しているんじゃないかと思い引っ張り出してきたが、3.8V ぐらいあった。
      ちなみに、写真は、周りのガワを取ったり、端子をとったりした挙句の状態。

      保護回路について気になったので、いくつか写真を撮った。

    • DSiLL交換バッテリー



    • DSL交換バッテリー



      -- どうも IC が 2 個載っているのが普通のようだ。DSL の方も、DW01 + 8205。DSiLL はよく見えないがたぶん同じだろう。
      ... となると BR50 だけ違う。外付け FET もないし。

    • 絶縁体にダンボール?危険な中国製電池

      この記事で出てくる死亡事故は、モトローラ用互換バッテリー。そして、BR50 とかも、モトローラ用格安バッテリー。

      その上、2936H で画像検索したら 上の空きパターンに、DW01 + 8205が載った写真を見つけた。

      -- これ保護回路がないのじゃないか? 



    どんどん話はずれるのだが、新たな記事を起こすほどでもないので...
    UX60A-MB-5STSMD用ユニバーサル基板(0.3mm 厚) につけてみた。

    UX60A-MB-5ST は、0.65mm ピッチ、基板は 0.95mm ピッチで合わないのだが 電源ピンの#4 を #5 に寄せることで付く。#2 が中央になるようにすれば うまく付くようだ。

    こんなのを作って、なにが嬉しいかというと、まず ハサミで切って他の基板に貼り付け mini-B 化できるのだ。-- 例えば TQFP32変換基板に AT90USB162(or Mega32u2) を載せて コネクタをこれにすると良い感じになるかも知れない。

    今回の話題に関係する話だと、これで MCP73831 を使った充電基板を作るのだ。 MCP73831 で充電電流を増やそうと思うと ちゃんと放熱してやる必要が出てくる。作った基板をヒートシンクに貼りつけてやろうと思っている。mini-B は本来 100mA までのはずだが、USB バッテリーやら中華PMPやらは 気にしないで 500mA ぐらい流しているようだ。なんか大丈夫そうなので mini-B で行けそうだ。

      作ってみた。ケースは、単四 x2 SW付き電池ボックス。スイッチの穴が mini-B と同じぐらいで、基板がうまく入る。
      コネクタ基板と充電基板に分けたが、ヒートシンクはヤメ。(裏面がベタアースで) 放熱性が良さそうだし、なにより合うヒートシンクがない。


追記:パーツ取りリスト

    電子工作的には、CPU を取り除いて (USBコネクタ,電源付き)液晶キャリーボードとして使うのが良さそうな気がする。ケースも付いているしバッテリー駆動を諦めれば、基板も仕込める。

    • 液晶と基板の間には隙間がある。32極の ランドを使って配線を引き出す余裕はある。あとは裏面の SMD のランドを使って信号などを引き出す。
    • まともなバッテリー充電回路を組み込むこともできる。(ただし、消費電流が多い理由の追求が必要)

    それはサテオキ -- パーツについてのメモ。

    • 2.4 inch TFT 液晶
    • SPI-FLASH: 16Mbit MX25L1605
    • バックライトドライバ XZ5121系 一式 (SOT23-5 5121M)
    • 3.3V(?) レギュレータ一式 (SOT23 662K)
    • ダイオード S4 x 2 , A2
    • トランジスタ PNP (SOT23 2A x 2),NPN (SOT23 1AM)
    • Xtal 24MHz, 32768Hz
    • バッテリー保護回路 (DW01 + STN8205D)

    これが 1000円〜1500円なら、ジャンクとして入手しておいても良さそうだが、結局 手配線で液晶を使うなにかを組むなら、まるごと使ったほうが良さそう。

posted by すz at 13:12| Comment(112) | TrackBack(0) | KDPDK15

2009年12月10日

KDPDK24 を分解した

2.4 インチ TFT 320x240 の デジタルフォトフレーム KDPDK24 (購入先は グッドメディア)をついに分解した。

    分解は難しい。下の円筒形の端がキャップになっていて、先に 外さないといけない。それを外す前に 太い金属製のアームを 無理やり 広げて 外した。ここで 失敗。... もとには戻せなくなった。


分解の目的は、電子工作で使えるようなものなのかどうかの調査。使えることが分かったとしても、実際になにかを作るところまではまだ考えていない。320x240 のフルカラー TFT なので、普通の AVR だと 遅すぎる。本来は 32 bit CPU が望ましいが、 このブログ的には XMEGA で やりたい。 ( ... といってもいつになるか分からないが。)



例によってあのCPU -- 緑と青の水晶が特徴的。これは予想どおり。CPU の左には シリアル FLASH が見える。... 写真では刻印が見えないが、どうも 25X32VSIG (ググる) と書いてあるようだ。32 Mbit タイプを奢っているのか。

さて、コイルが 2 つみえる。220 と書いてあるのは明らかに メイン電源用。単四 x 2 を 3.3 V (あたり)に昇圧しているのだろう。

100 と書いてあるほうは、おそらく バックライト LED の昇圧用。モジュール内部に LED は 3 つあるが、端子は 2 つしかないから直列なのだろう。脇に 6pin タイプの IC がある。これは XZ5121 かその系統(G5121 ?)なのだろう。

    IC 上のマーク。6pin タイプ: R518 、220 の上 (U9) 33CC 。220 の下 (U7) 662K -- 3.3V レギュレータ。




問題の液晶側。0.8mm ピッチ 36 pin 。これは自分でも外せそうで嬉しい。

    AF240E1-36B V2.0(R1) DOU
    AF240E1-36C V1.0(R2) DOU

の 2 つの型番らしきものが見える。これでググると いくつかヒットするものの、データシートは見つけられていない。すくなくとも コントローラは ST7785 らしい。

モジュール自体のデータシートが見つからなくとも ヒントはある。

下の 1.0mm ピッチ 20 pin の空きパターンだ。これが 上の パターンとつながっている。どうも PH9867C-001 (ググる) と同じ パターンではないかと思う。まぁ違うとしても 必要な信号は 20 pin の方にも来ているみたいだから、テスターで チェックするだけで、だいたいのピン配置は分かるはず。



    追記: ピン配置が分かった


    1-3 NC
    4 IM3(0: 16bit 1:18bit)
    5 NC
    6 RESET
    7 VSYNC
    8 HSYNC
    9 DOTCLK
    10 DEN (0: enable RGB interface )
    11-28 Data bus (DB17-DB0)
    29 RD
    30 WR
    31 RS
    32 CS
    33 GND
    34 VCC
    35 LED_K
    36 LED_A

  • 36pin タイプの 2.4inch 液晶のデータシートをいくつか見つけ 共通であることが分かった。
    タッチパネル付きの 37pin タイプと全然違う。VSYNC/HSYNC などがあり ビデオのように 扱うことができるのが特徴的。

  • 2-5 pin は設定に関するもので、普通は上記の通り。だが 違うものもあるかも知れない。

  • LED は直列。4 直列だと 14V 前後。

  • 20pin のピン配置
    aitendo から発売された TFT液晶モジュール(1.8")[CS1802] と同じことが判った。

    1 LED_K
    2 LED_A
    3 GND
    4 VDD
    5 NC
    6 NC
    7 CS
    8 RESET
    9 RS
    10 WR
    11 RD
    12-19 DB7 - DB0
    20 GND


    ちょっと検証してみよう。

    写真を見ると、12-19 の 8 本が 左から来ていて、5/6 が接続されていない。
    8 は下方向に配線されているが、その周りは 7,9/10/11 が上に延びている。
    20pin はこのピン配置で間違いなさそうだ。

    そうすると 36 pin の方も検証できる。
    29 RD / 20 WR / 31 RS / 32 CS -- というわけだ。

気をつけなければならないのは 液晶の電源。TFT で解像度が高いと 2.8V とか 電圧が低くなっていく傾向があるから 3.3V だと壊してしまうかも知れない。

さて、ピッチ変換基板はなにが良いかわからない。うまくすれば、AE-SOP56 (緑:秋月,赤: AITENDO) が使えるかもしれない。



基板サイズは、64x51mm だそうだ。一方液晶モジュールは測ってみると、59x43 mm 。コネクタにかぶせたとしても、縦にはみ出すと思う。

28 pin 分はハンダ付けできるが、合計 8pin 分はみ出る。この分は手配線が必要。36pin 側に LED と VCC/GND がある。GND,LED は、他からも取れるから、問題なのは VCC だけ。1pin 側は NC が多い。IM3 も 多分 NC であまり問題なさそうだ。


    記事を書いたときにはなかった aitendo の ピッチ変換基板[IFB-ZY-FGD1442701V1]のほうが良いかも知れない。30pin で少し多い。70x40mm なので今度は幅が足りない。あと 余分なコネクタがないから、パターンカットするなど工夫がいる。

いっそのこと、オリジナルのボードの CPU を 破壊して取り外し、20 pin のところを使って キャリーボードに改造する方が楽かもしれない。(ちなみに、出てきた生のチップは触らない方が良いらしい。いろんな物質を使ってるし)
posted by すz at 18:56| Comment(18) | TrackBack(0) | KDPDK15

2009年09月01日

AT90USB162 ボードの検討

液晶モジュール COG-C144MVGS-04 をドライブするのに AT90USB162を使うことを検討してみた。



目標とするもの



前記事のとおり、KDPDK15 からパーツを取り、AT90USB162 で再構築する。で、プログラムを書き換えることで、いろんな機能を持てるようにする。

最低限度できて欲しいのは、USB 接続 ディスプレイ 。玄箱に接続して モニターにするのだ。

それ以外では、アラーム時計とか ラーメンタイマー。人にイベント知らせるための デバイスは必須で 希望は振動モータ。圧電スピーカーでも良いが、インバクトがないような気がする。

あとは、microSD を使うなにか。USB 接続だと、(古い)OS インストール用に 擬似 CD/フロッピー機能とか。メディア入れ替えの機能のために、ディスプレイとボタンを使う。

それ以外では、外部にデバイスを接続して... いろんなものを作れるようにしておく。

SPI を出せば、ライターとしても使える。操作系があるので、ひょっとしてスタンドアローンで動くライタになるか ... とも思ったのだが、残念ながら データを取り出すデバイスも同じSPIを使うので 同時には使えず無理っぽい。(後で検討してみよう)

基本的には、STM32 Primer2でできることばかりなのだが ... Primer2 は 6200円とかなり高価で、複数購入して専用装置として使うことは難しい。(材料費)2000円以下で作れれば、複数作成して、それぞれ専用の装置として使うのに抵抗ないはず。
    なにを言いたいかというと、Primer2 を買えば済むなら、作る意味はないので、コスト的なメリットが必要ということ。


ポートの割り当て

 

AT90USB162 は以下の 21 個のポートが自由に使える。そのうち PD0-7 , PB0-7 と 8bit のポートが 2 つある。

  • PD0 - PD7 ( USART , HWB )
  • PB0 - PB7 ( ISP/SPI , OC0A TI)
  • PC2,PC4-PC7 (ICP1 , OC1x )


8bit アクセス必須だとすれば、USART または ISP/SPI のどちらかは使えない。--- 正確には かならずしもそうではないのだが -- たとえば、A25L080 からの読み込みと (液晶モジュールへの)書き込みを交互にするような場合は独立にアクセスできないと困る。

ここで、ISP + SPI を選ぶ。8bit I/O 用に PD0-7 を使うことに決定。

さて、SPI だが、外部モジュール向けに PB0-PB3 (SS/SCLK/MOSI/MISO) を使うことにする(計 4 本)。SCLK/MOSI/MISO は、内部でも共用することにする。内部デバイスは、A25L080 と microSD を予定。それぞれに /CS 用の信号を割り当てる。(計 2本)

あと必須なのは、液晶モジュール用に RSET/CS/WR/RD/A0 の 5 本と、LCD バックライト用に 1つ (OC0x) 。

ここまでの使用ピン数は、20 -- あと 1 本。振動モータ or ブザー用に 1 本使うとして...

そうそう、ボタン用にも1つ必要だ。まだまだピンが必要な気がする。

バッテリーの低電圧検出は、内部基準電圧(1.1V) と AIN1 で可能なのだが、AIN1 が PD2 に割り当てられている。BOD (低電圧リセット) を高めに設定して、BORF をチェックすることで なんとかするしかないか。

A25L080 は、Deep Power-down モードがあるので電源供給制御用のピンは必要ない。液晶モジュールも sleep モードというのがあり、なんとかなりそう。あとは、microSD とか はどうなのか? 外部モジュールもなにか必要そうだが ... やはりデバイス用電源スイッチは必要そうだ。

あと、バッテリーコントローラ MCP73831 だと、充電を強制的にやめることが出来たり、充電しているかどうかのステータスがあるのだが ... 無視? 充電LED をつけるだけでお茶を濁すのか?

液晶モジュールの RD を使わない(= READ をしない)ことで、ピンを 1 つ節約できそう。あと、microSD をあきらめれば、ピン1つ。

microSD は外部デバイスで接続することにして ... READ も使わないことにして 2 本捻出し、ボタン用に1つ、(CPU 以外の)デバイス電源スイッチに 1 つ。計 21本これで行くしかないか。

名前は?



もっとも大事なことを忘れていた。このボードに名前をつけなくては。

最初は、オリジナルの DPF106 を AT90USB162 で再構成したということで DPF162 なんて考えたのだが、あまり芸がないような気がしてきた。もうすこしひねって Super Ramen Timer - 162 ということで SRT162 としよう。

電源部の検討





こんな感じにしようと思う。USB の 5V を バッテリー制御IC の MCP73821-2AC を通して バッテリーに接続。そのバッテリーを入力として、3.3V レギュレータ MCP1703 を通したものを 電源とする。

(AT90USB162)データシート 7.電力配給の図を見ると UVCC, UCAP, VCC, AVCC に 3.3V を入力し、REGCR の REGDIS = 1 で 内部レギュレータを Off にすればよいらしい。あと、3.3V 動作なので クロックは 8MHz (CPU の周波数、≠ 水晶)。

あと PORT を1つつかって、デバイス用電源スイッチとする。
PWM 可能な PORT にしておくと、段々電圧を上げることで、突入電流対策になるかも。

まぁ、トランジスタの前に 10uF ぐらい入れておけば問題ないだろう。(KDPDK15 の基板を見ていると、PNP トランジスタのそばに大き目のコンデンサがある。-- たぶん 突入電流対策 )

メイン部の検討





以前使ったのをちょっと変更して、配線図を作ってみた。

まず、電源は 上記の通り外部レギュレータに変更。次に HWB 周り、スイッチの上下に 33K と 3.3K抵抗を入れて、PD0-7 の bus と共有できるようにした。あと、暫定的に 外部出力を決めた。

最後に スイッチの形態。2回路スライドスイッチ IS-2235に変更。


プログラムモードにすると、HWB が ON になり、SS を RESET に入れ替えて ISP を使えるようにするようにした。

DFU Bootloader でファームウェアを書き換えるときは、HWB を ON にしてから USB に挿す。タクトスイッチでは、操作が難しかったので このようにした。

ところで水晶は何を使う?

普通に HC-49/S を使うのが第一案。ちなみに、このタイプも 普通の HC-49/S として使える。


ただ大きいので、このタイプが使えないか?


問題は 16MHz しかないことだが、CLKPR で 8MHz にできるし、なんとかなるような気もする。

あと、CS 用の PORT は、PB4/T1 に決めた。T1 を使うことで 周波数カウンタぐらいは作れるかも知れない。

スイッチ部の検討





こんな感じにしようと思う。PD0-7 の bus と共有するために抵抗を入れるのは HWB と同じ。
    この回路適当すぎた。 PC2 と GND を入れ替える必要がある。
    その上で回路を見ると、普段は 33K で pull-down 。これで HI-Z 状態がなくなる。で、PC2 を H にしたとき、ボタンを押せば H が読める。
    さて、他のデバイスがアクセスしているとき、ボタンを押すとどうなる?
    .. というと 押すボタンが1つだけなら、なにも起こらない。そいて、複数の場合、3.3K x 2 を通して他の PIN に接続されてしまう。... ただし、6.6K だからプルアップが突如追加になったような見え方になり、普通問題はおきない(はず)。
    ところで、高速通信をするバスに、スイッチを直接付けてわざわざノイズを入れるというのは、イカガなものか。... といってもピンも IC を追加する場所的余裕もない。 .... せめて ダイオードを入れて、PIN どおしの干渉を防いだ上で、A25L080 に使う TXD/RXD/XCK を外すべきか。

ボタンの数は、できれば 4 つ。4 つが配置的に無理なら OK(DOWN)を外して 3 つにしようと思う。microSD の センス用に PD6 を考えていたのだが、外部に出力するのも面倒だし やめる予定。

使うパーツは、TSKB-2JLLS6J2M-T。5.2〜5.3m角。どちらも使えるようなパターンにしておきたい。


あと、Common につかう Port は何故か決めていて PC2 。

使うケースを RFADテクノロジーMK6040 (内寸:55×36×12) に決めた。


それは良いのだが、上面はガラスで加工できないので ボタンをどうするかについて、再検討が必要になった。

やはり別ボードにして、メイン基板からは、端子を出すのが良さそう。上下には余裕があるので、短辺側にボタンを出す。ボタンも普通のタクトスイッチが良いだろう。

... そうであれば、メインボード側は、4つ(3つ)にこだわることもない、PD0-PD7 の 8 本 (+ DEV_3V3/GND) を 出しても良いかも知れない。

ちなみに もう一方の短辺は外部出力の予定。 ... ということは USB は 横?

シリアル ROM の検討





フォントや背景、その他グラフィックを記憶するのに、KDPDK15 から外した 8Mbit の A25L080 を使う。ピン配置は左に示した。外すのに失敗したときのために AT26DF081A を代用できるようにする。

HOLD と W (Write Protect) は、両方 Vcc に接続。あと、S (Chip Select) は、ISP 使用時に動作しないよう 外部の抵抗で pull-up しておく。これに限らず すべての CS は 外部抵抗で pull-up する。抵抗値は 33K の予定。

あと、電源(Vcc)は、DEV_3V3 の予定。

初期データ書き込みは、ライタ ファームウェアを書き込んで、USB からダウンロードするつもり。

注意点としては、この IC やたらでかい、PIN の端から端まで MAX 8.1 mm もある(AT26DF081A は 6.2 mm)。 ランドを広くとらないと いけない。

ところで、オリジナルは、Write Protect 周りに工夫があるようだ。コンデンサと接続されていて、電源投入直後は書き込めないようになっている。ただ... それにどういう意味があるのかは良くわからないし面倒なので無視。

ところで、SPI に接続しているのは、データを読みながら 液晶モジュールに書き込むような使い方を想定しているため。
バッファリングしても良いなら XCK/TXD/RXD を SPI として使うこともできる。こうするメリットは、外部モジュールをアクセスしながら FLASH の データにアクセスできること。

表示が遅くなるだけだから、XCK/TXD/RXD にしたほうが良いように思えてきた。(ちなみに、これに切り替えても必要ピン数は変わらない。)

液晶モジュール部の検討




こんなところ? IF1 = L , IF2 = H にして 8080 モードに固定。LED- は GND にして、LED+ を OC0x で直接駆動しようかと思っている。20mA だし、大丈夫ではないかと。PORT は、PB7/OC0A。

    注意! LED+ と LED- が逆。

    やはり、トランジスタでスイッチした方が良さそうな気がしてきた。BOD 使うし、リセットがかかっても困るので ... 。
    高い電圧(5V とか バッテリー電圧とか)を扱う場合を考えて、トランジスタは、NPN にした方が良さそう。

    あと、1u を トランジスタの近くに つけるつもり。


ちなみに、使える PWM は、PC5/OC1B と PC6/OC1A のみ。PWM を使うかどうかわからないが、振動モータ/圧電スピーカ と デバイス電源スイッチに割り当てる。

ところで、ふと思ったのだが ... /RST に PORT 割り当ては必要なのだろうか? POWER ON RESET の機能があれば、DEV_3V3 で POWER ON するので、必要ないとも思えるのだが ... ST7637 のデータシートを見ても良くわからない(というか必要そうな感じ)
コマンドでリセットする SOFT RESET というのもあるし、なんとかなるのではないか?

もし、/RST が必要ないのであれば、/RST 用の PORT を RD に振替えられるようにしておきたい。

そうそう、RD は pull-up 必要そう。/RST を使わない場合も /RST に pull-up が必要なはず。抵抗値は、RD 1KΩ , /RST 10KΩ。

あと、/EXT , VPP は 無接続で OK らしい。
    ST7637 のデータシート 8. RESET CIRCUIT で、"After Power ON" と "After Hardware Reset" でなにがセットされるかの表がある。比べてみたら ... まったく同じだった。 ... ということは、/RST は、VCC 直結で OK そうだ。ちなみに、表には "After Software Reset" もあり、これは若干違う。
    とにかく、/RST への PORT 割り当ては、必要ないことがわかった。RD に切り替えることにする。 ( ピン 1 つは貴重なのだが、ステータスとか読めるとデバッグに役に立つし RD は欲しい )

液晶モジュール部の検討2



BG999076A も入手できる目処がついた。これから こちらの方が入手が簡単になりそうなので、こっちも検討しておく。



データシートの配線図では、RSTE は、VCC に直結している。やはり使わなくてもなんとかなるのではないか ... 。

ちなみに、LED の電圧は、3.1V の模様。普通に扱える見込み。

あと、シリアル モードも併記しておく。



なんと簡単なことか。15 本だけ配線すればよい。しかもほとんどは、VCC or GND 。あと LED の 2本は、フレキから直接配線することができ、すこし楽になる。

さて、オリジナル基板の検討(2)なんて記事を書いたが、事情が変わってきた。SRT162 を 液晶モジュール 2 タイプで作りたい。2 枚づつで 4 枚。あまったエリアで ボタンモジュール。これで 5 面付けが埋まる。ちなみに、ボタンモジュールは 4枚に 1 枚の割り当てになってしまうが、全部をケースに入れるとは限らないので問題ない(ことにする)。

問題は、自力でこの基板の 設計ができるか .. 9末までに間に合うかということ。まぁがんばってみるか。

抵抗・コンデンサについて


まず、特別な理由がない限り、チップ部品を使うことに決めた。コンデンサについては、秋月で入手可能なもの、抵抗については、千石で入手可能なものかつ共立のチップ抵抗セット(945円)から選択。サイズは基本 2012 。コンデンサに限りやむを得ない場合は、1608 も可ということにする。(抵抗は値が読めないから不可)。

ちなみに、千石では 2012抵抗は 10 個 53 円で買える。ちょっと高いが手間賃なので仕方がない。マルツでも同じような値段
    使う抵抗値 候補
      0 (ジャンパ)
    33 (USB 電流制限)
    220 (LED 電流制限)
    330 (LED 電流制限)
    470 (LED 電流制限)
    1K (Tr 駆動用)
    2.2K (Tr 駆動用)
    3.3K (スイッチ入力用)
    4.7K (Tr 駆動用?, 充電電流 PROG 用, プルアップ,プルダウン ?))
    33K (スイッチ入力用)
    100K (プルアップ,プルダウン?)

    使うコンデンサ候補
    1u (1608) 各種パスコン
    10u
    10p ( 3216 ! 水晶用 -- 発振しなければ 親子で 20p化)


基板レイアウトの検討



使うケースを RFADテクノロジーMK6040 (内寸:55×36×12) に決めた。

このケースにどのように入れるのか検討してみる。

まず、厚さが心配。

  • 液晶モジュール 3mm + 両面テープ (1mm厚)
  • 基板 1.5 mm
  • リポ電池 (3.7V/210mAH 30mm x 15mm x 5mm)
  • クリアランス 1.5 mm

液晶、基板、電池の三層なら、クリアランス 1.5mm でなんとか入る。ただし、電池がある部分(15 mmのエリア) に部品は置けない。
(電池は両面テープ (1mm厚) で基板に貼り付ける。1mm 以下の部品で熱を持たないものなら 一応 OK 。 )
とりあえず OK そうなので、次に基板サイズの決定。

問題なければ 1/2 C 基板サイズ。縦 47mm 横 35mm 。上下方向に 8mm ほどの余裕ができる。ここに ボタンモジュールを配置するつもり。
ボタンモジュールは 1列の L 型ピンヘッダーで直結したい。


さて、15mm 分には部品を実装できないので、全部で 縦 32mm 。ただし、コネクタエリアがある。コネクタの場所は、C 基板に合わせる制限を付ける。縦17穴なので、47 - (15 * 2.54) = 8.90 mm (片側 4.45 mm)。これを引くと 23 mm になってしまう。
    コネクタは、上側にボタン用 1列 x 9?。下側に外部インターフェイス用 1列 x 6 の予定。
    9 までが限界なのは、四隅に穴をあけることを前提としているため。片側のみなら 11 までいける。

さらに、USB miniB を載せる。そうすると 13mmx10mm ほど取られる。
ちなみに、AT90USB (TQFP-32) のサイズ は、ランドなしで 9mm 角。これ以外に載るデバイスは、A25L080M (5.2 x 7.9mm) 、SOT-23-5 , SOT-23 x 4 。 厳しそうでもあるが .. まぁなんとかなるに違いない。オリジナルだって、ボタン付きで 30mm x 35mm 。ボタンエリアを除いた 20mm x 35mm に主要部品が載っているのだ。

そういえば、スライドスイッチ IS-2235 を忘れていた。

これは下向きに付けて、ケース下面に角穴をあけるのだろう。
電池エリア は 横 30mm だから その横に置けるか。
    リセットボタンも必須。バッテリーを付けたら常に Power が入っているから Power On Reset に頼れない。

    それと、長期保存するとき、バッテリーを 切り離すジャンパは必要。忘れないようにしないと ...

    あと液晶モジュールのサイズについて、基板が 47mm でコネクタエリアが 8.9 mm と書いた。コネクタに干渉しない 領域は 約 38mm ということになる。COG-C144MVGS-04 なら、液晶モジュールのサイズは 38 mm で問題なかったのだが ... BG999076A は 42mm と 4mm ほど長い。下はフレキがあるので、コネクタと干渉させられないので、この 4mm は上にずれることになる。4mm ずらすと、ほぼ基板の端まで行く。BG999076A の場合は、(ピンヘッダを出さないように切る等)ボタン用コネクタの扱いには注意が必要。

そういえば、振動モータなぞ置くスペースはないなぁ。圧電スピーカにしてもかなり薄いものでないと無理そうだ。

ちなみに、圧電スピーカを駆動する場合、次のような回路にする。



これは何年か前にメモした回路。murata のページにあったような気がするが、正確には覚えていない。

それはともかく問題は、小型で 30mH 〜 50mH なんてインダクタは入手が難しいこと。

100 円ショップでアラーム付きのなにか(時計?) をバラして、圧電スピーカと インダクタをペアで入手するのが楽かも。電池 2 個を使う装置が良い。
注意)防犯ブザーは 、音が大きすぎるので適さないので注意。

ついでに、振動モータ(DC モータ)の駆動は次の回路で PWM 制御。



デバイスも決まっていないし、無理に メインボードに インダクタやらダイオードを付けなくても良いような気がしてきた。

メインボード としては、DEV_3V3(+ GND) とオープンコレクタ出力で良いのではないか? ... ということで、この 3pin を外部出力のとなりに並べることにしよう。




ここからソフト系の話題

消費電力について



バッテリーは、210mAH 。常に 1mA 消費するなら、わずか 9日弱で空になってしまう。半年持たすならば、50μA 程度でないといけない。そして、オリジナルの KDPDK15 は、それが出来ている。

さてこいつ(SRT162) はどうだろう。

まず、デバイス用のスイッチが付いているので、デバイスのことは考えなくてよい。生きているのは、バッテリ制御用の MCP73821 と 3.3V レギュレータの MCP1703 。

バッテリー制御: MCP73821 のデータシートを見ても実は良くわからない。Output Leakage Current という項目ならグラフにあって、だいたい 0.2 μA 。ちなみに MAX1555 は、BAT Leakage Current という項目があって 5μA 。

まぁ、新しい IC だし、大丈夫に違いない。

レギュレータ: MCP1703 のデータシートでは、2 μA という記載がある。ちなみに XC6202 は 1μA 。これは大丈夫。

残りは、本体の AT90USB162 こいつはどうか?

27.代表特性をみていくと、27.4 パワーダウン動作消費電流というのがあって、あらゆるデバイスを Off にすれば、5μA 程度にはなるようだ。BOD 許可だと これが 30μA まで増える。内部レギュレータは、(使わないが) 電圧が低下すると やたら増える。注意しないと まずそう。

ざっとみたところ、基準電圧とか アナログデバイスの消費が多いようだ。タイマー1だけは、RTC 的動作をさせるのに生かしておいて、あとはできるだけ Off にする。あと、CLKPR で 1/256 ( 8MHz なら 31.25 KHz , 16MHz なら 62.5 KHz ) にすれば、数十 μA に収まるのではないだろうか?

時計機能について



オリジナルは、32.768 KHz の水晶がついていて、RTC 機能を持っているらしく、時計機能は簡単に作れたに違いない。AT90USB162 は、RTC はないので工夫しないといけない。さて、どうやって時計機能を作ろうか。

とりあえず、水晶を 16MHz 。動作時は 1/2 にして 8MHz で動かすことを前提にする。

Off のとき、外部デバイス・内部デバイスのほとんどを Off にして、タイマー1 だけ動かす。CLKPR は 1/256 で、62.5 KHz 。

タイマー1は 16bit だから、1 秒毎に割り込みを起こして、秒をカウントすることにする。

Off のときの動作はこんな感じになるはず。

で、ON のときの動作は、ストップウォッチとかも作りたいので、1/100 秒で割り込みを起こす。プリスケーラを 1/8 にして、10000 カウントぐらいで良いはず。

    ただ、こんな風に すると PWM は使えないので注意が必要。

    PWM を使いたければ、単位が 秒ではなく 微妙なものになって、値を 秒に変換するような使い方になる。時刻だけでなく日付も対応しないといけないので、やはり面倒。パス。

こうやって考えれば、動作モードが変わらなければ誤差は発生しない。

動作モードの切り替えで誤差が出るわけだが ... どうしよう。

まず、どれぐらいの誤差が出るか考えてみる。日に 10 回 On/Off するとして、それぞれで 62.5 KHz 10 clock ぐらいの誤差になるとする。そうすると 日に 0.0016 秒の誤差。

一方 水晶の誤差が、月差 15秒だとすると ... 日に 0.5 秒。
なんか無視して良さそう。

時計機能について2



タイマー1の PWM をどうしても使いたい場合はどうすれば良いか考えておくことにした。

まず、タイマー1をフリーランニングにする。こうすることで高速PWM が使えるようになる。そして、32bit カウンタ変数を1つ用意する。(以下 cnt)

動作中では、プリスケーラを 1/1 にする。オーバーフロー割り込みで、cnt を +65536 した後、80000 以上の間 -80000 して 1/100秒単位のカウンタを +1 する。

Off のときも cnt を使う。1/128 になっているので、オーバーフロー割り込みでは、cnt を +65536*128 し、8000000 以上の間 -8000000 して 1/100秒単位のカウンタを +100 する。

cnt で タイマーをシミュレーションすると考えればわかり易いかも。

posted by すz at 18:46| Comment(0) | TrackBack(0) | KDPDK15

2009年08月31日

KDPDK15 まとめ

最近 KEIAN の 1.5inch フォトフレーム KDPDK15 にはまっている。リポ電池、グラフィックLCD など 電子工作ではなかなか扱えない部品を使っていて、1000 円前後と 格安なので なんとか扱えないかと調べていったら、どんどん深みにはまった感じ。

KDPDK15 について



KDPDK15 が使用している液晶モジュールには、2 つのタイプがある。ひとつは、COG-C144MVGS-04 (メーカ Varitronix ) もうひとつは、BG999076A (仮名: メーカ不明だが DMC128128A互換の模様)

BG999076A より COG-C144MVGS-04 の方が色が鮮やかだが、BG999076A を使った方が新しい。接続したとき見えるファイルの違いでいうと、LANGUAGEUNICODE.INI の日付が

COG-C144MVGS-04 2008/07/28
BG999076A 2009/03/18

と違う。基板のバージョンも違い COG-C144MVGS-04 は v1.0 だが、BG999076A は v3.0 。

私が見つけた範囲では、最安価格は、秋葉原モバイルで 980円。いまの時期安いのは当然ながら旧タイプだと思われる。鮮やかだし旧タイプがよさそうなものだが、2 点ほど新タイプの方が良い点がある。詳細は後述。

KDPDK15 は想像どおり OEM 。OEM元の型番は、DPF106らしい。メーカ Shenzhen Soany Technology Co., Ltd.

KDPDK15 以外にも、DPF106 を使った製品やクローン製品がある。LT-DA15E101 という 製品は、グッドメディアで 799円だった。

    LT-DA15E101 を買ってみた。まず実用としてつかうなら、KDPDK15 の方が機能も使い勝手も上、ただ発色は良い。

    次に部品取りとしての観点。
    液晶モジュールは、BG999076A -- ただしリビジョンが違う。KDPDK15 のは、DFM-076B だったが、これは DFM-074C。
    シリアルROMは、A25L080M。
    バッテリーは、LISHEN SP0568AB で、3.7V/130mAH。 サイズは、5.2×12.5×30 と小さくなっている。入手したものの製造年月日は、06/12/12 と 07/10/27 だった。
    バッテリーに期待しないなら、これも良いかも。

    ちなみに、形状は 3 タイプ。ライトブルーなどは、背が低く幅が広い。ボタンは横で USB は下と結構違う。-- でも部品はほぼ同じ。メーカ Shenzhen Prestige Rich Dig. & Tech. Manufactory Ltd.

    追記:売れ残りぎみの変な形のを買ってみたら、これだけファームが違い 時計表示やバッテリ残量表示が付いていた。分解したところ部品は他の2つとほぼ同じだが、両面テープはほとんど使っていなくて液晶モジュールがきれいに分離できた。いいかも。

    追記 09/10/06 海連のPHOTTY が TFT 1.5inch。フラッシュもどうやら 16Mbit(2MB) 品らしい。値段も安く 最安 1443円。

    これ以上いろいろ買うつもりはないが、一応、記す。


KDPDK15 から取れる部品



  • 液晶モジュール BG999076A または COG-C144MVGS-04

  • 8Mbit SPI Flash メモリ AMIC A25L080

    グラフィックを扱うとなるとデータを格納するものも必要で、結局 これも利用するのがよさそう。データシート

    基板から剥がすには、両側のピンにハンダを盛る→熱いうちにずらして、剥がす。とすれば簡単。あとは、ハンダ吸い取り線で掃除すれば OK 。

    同じものを新品で売っている所は見つけられていないが、容量、ピン配置、コマンド体系などが同じ AT26DF081A なら Digikey で 134円で入手可能。

  • リポ電池 (リチウムポリマー電池) 3.7V 210mA

    いろいろ危険だから、パーツの利用を勧めるわけにもいかないのだが、一応。

    自作で扱う場合には、充電 IC を使用すべき。MAX1555 が有名。(スイッチサイエンスで、480円

    それ以外では、Digikey で 62 円で買える MCP73831-2ACI が良さそう。

  • LDO 3.3V レギュレータ (SOT-23 , 662K と印字)

    おそらく、ME6206A33M3G という型番。XC6206 の互換品かなにかなのだろうか?

    互換品としては、MCP1700/MCP1702 とかが Digikey で入手可能(62円)。(MCP1702 は、最大電圧が高い。MCP1700 は、最大電圧が低いかわりに 最低電圧差が小さい。)

  • ショットキーバリアダイオード(SBD) (S4 と印字)

    なぜか、5V の入力側に ショットキーバリアダイオード を奢っている。1A ぐらいの品。テスターで計ったところ Vf 0.217V ( 電流を流さない状態なので スペックの 1/2 ぐらいの値 )

    ほかにも小さめの S4 と印字された 小さめの SBDがいくつか。

    Digikey で RB161M とか良さそうなのが売っているが、51 円と結構高い。いっそのこと剥がして使うのもアリか?

  • 水晶 24MHz と 32768 Hz (未確認)

    水色と緑の 2 つの水晶らしきパーツがある。



大きめのパーツはこんなところ。液晶モジュール BG999076A または COG-C144MVGS-04 のどちらが入手できるかが問題。

BG999076A と COG-C144MVGS-04



BG999076A は、正式名称ではなく、側面の印字から取った。この BG999076A は、あまり鮮やかではないようだが、シリアル I/O をサポートしているので、ほかの LCDモジュールと同様に使えるのが利点。( ただし未確認 )。また、 COG-C144MVGS-04は、外付けのコンデンサ 1uF x3 がバイアス用に必要だが、こいつは フレキの上に実装していて、バイアス用コンデンサを付ける必要がなく扱いやすいのもメリット。

COG-C144MVGS-04は、鮮やかなのと、バックライトLED の電圧が、標準 3.2 V (電流は 20mA) と 扱いやすいのがメリットだが ... 8bit I/O 専用なのが残念なところ。

どちらも 0.8 mm ピッチフレキで手配線も比較的楽。(BG999076A は 27 pin / COG-C144MVGS-04 は 29 pin)。

基板から剥がすのも簡単で、ハンダを盛りながら、めくっていけば OK。

データシートは、COG-C144MVGS-04 +ST7637 または BG999076A (DMC128128A用)

注意)DMC128128A のバックライトは、標準 6.2V となっているが、どうも BG999076A は、3.2V のようだ。ひょっとしたらほかにも違うところがあるのかも知れない。

BG999076A のコントローラは、ST7637(pdf)らしい。DMC128128A と同じなのは、ピン配置とディメンジョン関係。... とうことは、シリアルの設定とかも違いそう。

ST7637 のデータシートをチェックしたところ、VDD が 2.8V Typ. 3.0V Max 。絶対定格も 3.0V 。入力レンジは、VDD+0.5V 。3.3V 系で使う場合要注意。

部品を取るときの注意点等



まず、やたら両面テープで固定されている。
ネジをあけてフタを外した後、底に両面テープで固定されているバッテリーを外す。彫刻刀の平刀でコジると楽に外れる。

完全に外す前に、基板についているネジを外すこと。

液晶モジュールが両面テープで 基板に固定されているので、裏の反射板(というかシート) をはがしてしまわないよう慎重に 両面テープをはがす。いままでの経験で言うと反射板が多少浮く?のはやむを得ない。

さて、はがした両面テープの後が非常にイヤなわけだが、ライターオイル(= ベンジン = ホワイトガソリン ) で 拭けばきれいになる。注意しなければならないのは、液晶裏。モジュールに液を流し込んでしまうと 液晶がムラになる。とても残念なことになるので注意!

これらのパーツで何を作りたいのか?



これが実に悩ましい。もともと、FT232R で SPI 制御して USB で制御できるものを作ろうと思っていたのだが、掴んだ液晶モジュールが 8bit I/O 専用の COG-C144MVGS-04 ばかりと判ったので、それが難しくなった。

いっそのこと、AT90USB162 を使って、KDPDK15 とほぼ同じものを再構築するのが良いかなと思っている。リポ電池の 充電IC も入手することにしたし、USB 充電機能も再現するつもり。

で、ソフト次第で 超高級ラーメンタイマーにしたり。

できたら、A25L080 以外に microSD を付けたり、振動モータを付けたりもしたい。

あと、pin があまるかどうか怪しいが、シリアル か I2C マスターを 外に出すようにして、アナログ系の AVR とつないで 計測器 に仕立ててみたい。

以上は、マスターとして考えてみたが、単に液晶モジュールを操作するだけなら、ATtiny2313 で 制御して、I2C/SPI/シリアル で制御するようにするのもアリかも知れない。

追記(09/10/03):aitendo の TFT液晶

aitendo から 1.44 inch TFT液晶 ZY-FGD1442701V1が、900円で発売されている。

コネクタは、フレキケーブルの 0.8mm ピッチ 27 pin。

ピン配置は、BG999076A と非常に似ている。



これは、BG999076A の 8080 8bit パラレルモードの配線だが、ZY-FGD1442701V1 と違うのは、D13 と D15 のところだけ。しかも実は、D13,D15 は、無接続で良かったりする。

ZY-FGD1442701V1では、NC 。... 本当に NC かどうかは不明でつなぐなという事かも知れない。

電源関係については、バックライトは 3.0V 〜 3.3V となっていてほぼ同じ。VDD は、2.6V 〜 3.0V と低くなっている。コントローラ(ST7735)自体は、2.6V 〜 3.3V なのでひょっとしたら 3.3V でも行けるかも知れない。

ちなみに、コマンドは、微妙に違うはず。対比した表を作ってみないとはっきりしない。

というわけで、SRT162B ボードでソフトの対応だけで使えるかも知れない。

ちなみに、一緒に出ている関連商品 ピッチ変換基板 AE-SOP-56。0.8mm ピッチがあり片側 28 ピンだからキャリーボードがわりに使える。(29 pin の COG-C144MVGS-04 も 両脇は NC なので OK )。サイズは、62.66×50.55mm でちょっと大きい。ちなみに秋月に 緑 ver がある。

追記(09/10/03):KDPDK24 の液晶

KEIAN のフォトフレームに、KDPDK24 というのもある。サイズは、2.2 inch で解像度は 320x240 。Varitronixの TFT 液晶 COG-T220T6080-01 ではないかと思う。データシートはここ。SPI モードがあったり、DCLK/HSYNC/VSYNC でもデータを送れたり機能が豊富で良さそうな感じ。電源は、Typ. 3.0V 。バックライト LED は 3 つ付いていて 3.2V Typ. ただし、コネクタは 0.5mm ピッチ 50 pin。

    製品では 2.4 inch といっているのだが、1.44 inch を 1.5 inch としていたりするから良く分からない。COG-T240T6080 というのもあるが、こちらは 4 灯で バックライトのムラから判断できる 3 灯とは違う。


実はとりあえず買ってみた。画面は綺麗。STNの KDPDK15 より鮮やか。視野角も広くて ナナメ45°からみてもちゃんと見える。

ソフト的には、KDPDK15 と同じように DFPMATE を使う。機能もアナログクロックがない以外おなじ。

ただし ... 表示が恐ろしく遅い。KDPDK15 と同じ CPU 同じ CLOCK ではないかと思える。

実をいうと買ったけど分解していない。手に余りそうで ... まぁいずれ。




ST7637/ST7735 コマンド一覧




COG-C144MVGS-04 は、ST7637 を使用している。BG999076A も ST7637 のはず。ZY-FGD1442701V1 は、ST7735 。

とりあえず、使えるコマンドと コマンドシーケンスを比較した。データの意味はチェックしていないので注意。

oo は、共通。ox は、ST7637 のみ。xo は、ST7735 のみ。


    INST CMD SEQ
    ------------------------------
    oo NOP 0x00 C
    oo SWRESET 0x01 C
    oo RDDID 0x04 CrRRR
    oo RDDST 0x09 CrRRRR
    oo RDDPM 0x0A CrR
    oo RDDMADCTR 0x0B CrR
    oo RDDCOLMOD 0x0C CrR
    oo RDDIM 0x0D CrR
    oo RDDSM 0x0E CrR
    ox RDDSDR 0x0F CrR
    oo SLPIN 0x10 C
    oo SLPOUT 0x11 C
    oo PTLON 0x12 C
    oo NORON 0x13 C
    oo INVOFF 0x20 C
    oo INVON 0x21 C
    ox APOFF 0x22 C
    ox APON 0x23 C
    ox WRCNTR 0x25 CW
    xo GASET 0x26 CW
    oo DISPOFF 0x28 C
    oo DISPON 0x29 C
    ox CASET 0x2A CWW
    xo CASET 0x2A CWWWW
    ox RASET 0x2B CWW
    xo RASET 0x2B CWWWW
    oo RAMWR 0x2C CW
    ox RGBSET 0x2D CWWWWWWWWW
    oo RAMRD 0x2E CrR
    ox PTLAR 0x30 CWW
    xo PTLAR 0x30 CWWWW
    ox SCRLAR 0x33 CWWW
    oo TEOFF 0x34 C
    oo TEON 0x35 CW
    oo MADCTR 0x36 CW
    ox VSCSAD 0x37 CW
    oo IDMOFF 0x38 C
    oo IDMON 0x39 C
    oo COLMOD 0x3A CW

    oo RDID1 0xDA CrR
    oo RDID2 0xDB CrR
    oo RDID3 0xDC CrR
    ---------------------------
    oo Commom command
    ox ST7637 only
    xo ST7735 only

    C Command
    r Dummy Read
    R Read
    W Write


READ系は使わなくても制御はできる。
同じコマンドでもデータ長が違うものがある。

これ以外に拡張コマンドが存在する。拡張コマンドは設定系統のコマンドで、ST7637 では、AutoLoadSet(0xD7) コマンドを発行し enable にした後でないと使えない。初期値は EEPROM に書かれており、普通は変更すべきではない(はず)。ST7735 のデータシートでは拡張コマンドの記述がないかわり、パネル機能のコマンド群がある。

とりあえず上のコマンドだけ抜き出して1.44 inch TFT液晶 ZY-FGD1442701V1に置いてあるサンプルコードを書き直すと...


    (HWRESET)
    delayms(120);

    WriteCOM(SWRESET);
    delayms(50);

    WriteCOM(SLPOUT);
    delayms(200);

    WriteCOM(MADCTR);
    WriteDAT(0xC8); //MV,MX,MY,RGB

    WriteCOM(COLMOD);
    WriteDAT(0x05); // 16bpp -- r5g6b5

    WriteCOM(CASET);
    #ifdef ST7735
    WriteDAT(0x00);
    #endif
    WriteDAT(0x02); // XS = 0x02
    #ifdef ST7735
    WriteDAT(0x00);
    #endif
    WriteDAT(0x81); // XE = 0x81

    WriteCOM(RASET);
    #ifdef ST7735
    WriteDAT(0x00);
    #endif
    WriteDAT(0x03); // YS = 0x03
    #ifdef ST7735
    WriteDAT(0x00);
    #endif
    WriteDAT(0x82); // YE = 0x82

    WriteCOM(DISPON);
    delayms(100);

    WriteCOM(RAMWR);

    for (i=0;i<128;i++)
    {
    for (j=0;j<128;j++)
    {
    WriteDAT(0xf8);
    WriteDAT(0x00); //display red
    }
    }


こうなる。

次は、ST7735 のパネル系コマンド一覧

    INST CMD SEQ
    ------------------------------
    FRMCTR1 0xB1 CWWW
    FRMCTR2 0xB2 CWWW
    FRMCTR3 0xB3 CWWWWWW
    INVCTR 0xB4 CW
    DISSET5 0xB6 CWW
    PWCTR1 0xC0 CWW
    PWCTR2 0xC1 CW
    PWCTR3 0xC2 CWW
    PWCTR4 0xC3 CWW
    PWCTR5 0xC4 CWW
    VMCTR1 0xC5 CWW
    VMOFCTR 0xC7 CW
    WRID2 0xD1 CW
    WRID3 0xD2 CW
    PWCTR6 0xFC CWW
    NVCTR1 0xD9 CW
    NVCTR2 0xDE CW
    NVCTR3 0xDF CWWW
    GAMCTRP1 0xE0 CWWWWWWWWWWWWWWWW
    GAMCTRN1 0xE1 CWWWWWWWWWWWWWWWW
    EXTCTRL 0xF0 CW
    VCOM4L 0xFF CWWW


これらのコマンドは危険。慎重に使わないとマズそう。EEPROM に初期値が入っていていじらなくても良さそうな気がするが、とりあえずサンプルコードを変換。SLPOUT の後、次のコードで初期化している。


    WriteCOM(VCOM4L);
    WriteDAT(0x40);
    WriteDAT(0x03);
    WriteDAT(0x1A);

    WriteCOM(NVCTR1);
    WriteDAT(0x60);
    WriteCOM(VMOFCTR);
    WriteDAT(0x90);
    delayms(200);

    WriteCOM(FRMCTR1);
    WriteDAT(0x04);
    WriteDAT(0x25);
    WriteDAT(0x18);

    WriteCOM(FRMCTR2);
    WriteDAT(0x04);
    WriteDAT(0x25);
    WriteDAT(0x18);

    WriteCOM(FRMCTR3);
    WriteDAT(0x04);
    WriteDAT(0x25);
    WriteDAT(0x18);
    WriteDAT(0x04);
    WriteDAT(0x25);
    WriteDAT(0x18);

    WriteCOM(INVCTR);
    WriteDAT(0x03);

    WriteCOM(DISSET5);
    WriteDAT(0x15);
    WriteDAT(0x02);

    WriteCOM(PWRCTR1);
    WriteDAT(0x02);
    WriteDAT(0x70);

    WriteCOM(PWRCTR2);
    WriteDAT(0x07);

    WriteCOM(PWRCTR3);
    WriteDAT(0x01);
    WriteDAT(0x01);

    WriteCOM(PWRCTR4);
    WriteDAT(0x02);
    WriteDAT(0x07);

    WriteCOM(PWRCTR5);
    WriteDAT(0x02);
    WriteDAT(0x04);

    WriteCOM(PWRCTR6);
    WriteDAT(0x11);
    WriteDAT(0x17);

    WriteCOM(VMCTR1);
    WriteDAT(0x3c);
    WriteDAT(0x4f);


あとガンマ補整


    //***********************GAMMA*************************
    WriteCOM(GAMCTRP1);
    WriteDAT(0x06);
    WriteDAT(0x0E);
    WriteDAT(0x05);
    WriteDAT(0x20);
    WriteDAT(0x27);
    WriteDAT(0x23);
    WriteDAT(0x1C);
    WriteDAT(0x21);
    WriteDAT(0x20);
    WriteDAT(0x1C);
    WriteDAT(0x26);
    WriteDAT(0x2F);
    WriteDAT(0x00);
    WriteDAT(0x03);
    WriteDAT(0x00);
    WriteDAT(0x24);

    WriteCOM(GAMCTRN1);
    WriteDAT(0x06);
    WriteDAT(0x10);
    WriteDAT(0x05);
    WriteDAT(0x21);
    WriteDAT(0x27);
    WriteDAT(0x22);
    WriteDAT(0x1C);
    WriteDAT(0x21);
    WriteDAT(0x1F);
    WriteDAT(0x1D);
    WriteDAT(0x27);
    WriteDAT(0x2F);
    WriteDAT(0x05);
    WriteDAT(0x03);
    WriteDAT(0x00);
    WriteDAT(0x3F);


なんか呪文が長い。本当に毎回やらないといけないのならテーブルにデータを格納したいところ。

ST7637は、grlib-st7637 から初期化を記載しょうと思う。

grlib-st7637 では、既にテーブル化されていた。AVR の場合は、テーブルを FLASH 上に配置する改造をするのが望ましい。

以下は、初期化で使われていたコマンド。


    DutySet 0xB0 CW
    FirstCom 0xB1 CW
    OscDiv 0xB3 CW
    NLInvSet 0xB5 CW
    ComScanDir 0xB7 CW
    VopSet 0xC0 CWW
    BiasSel 0xC3 CW
    BstBmpXSel 0xC4 CW
    BstEffSel 0xC5 CW
    VgSorcSel 0xCB CW
    ANASET 0xD0 CW
    AutoLoadSet 0xD7 CW
    EPCTOUT 0xE1 C
    EPMRD 0xE3 C
    FRMSEL 0xF0 CWWWW
    TMPRNG 0xF2 CWWW
    TMPHYS 0xF3 CW
    TEMPSEL 0xF4 CWWWWWWWW
    FrameSet 0xF9 CWWWWWWWWWWWWWWWW


SLPOUT の後の分。厳密ではない。

    WriteCOM(AutoLoadSet);
    WriteDAT(0xBF);
    delayms(25);

    WriteCOM(EPMRD);
    WriteDAT(0x00);
    delayms(25);
    WriteCOM(EPCTOUT);


    WriteCOM(BiasSel);
    WriteDAT(0x01);

    WriteCOM(BstBmpXSel);
    WriteDAT(0x06);

    WriteCOM(BstEffSel);
    WriteDAT(0x01);

    WriteCOM(VgSorcSel);
    WriteDAT(0x01);

    WriteCOM(ComScanDir);
    WriteDAT(0xC8);

    WriteCOM(ANASET);
    WriteDAT(0x1D);

    //WriteCOM(AutoLoadSet);
    //WriteDAT(0xBF);

    WriteCOM(NLInvSet);
    WriteDAT(0x87);

    //WriteCOM(0xB4);
    //WriteDAT(0x18);

    WriteCOM(DutySet);
    WriteDAT(0x83);

    WriteCOM(VopSet);
    WriteDAT(0x00);
    WriteDAT(0x01);

    //WriteCOM(FrameSet);
    //WriteDAT(0x00);
    //WriteDAT(0x02);
    //WriteDAT(0x04);
    //WriteDAT(0x06);
    //WriteDAT(0x08);
    //WriteDAT(0x0A);
    //WriteDAT(0x0C);
    //WriteDAT(0x0E);
    //WriteDAT(0x10);
    //WriteDAT(0x12);
    //WriteDAT(0x14);
    //WriteDAT(0x16);
    //WriteDAT(0x18);
    //WriteDAT(0x1A);
    //WriteDAT(0x0C);
    //WriteDAT(0x1E);

    //WriteCOM(FRMSEL);

    WriteCOM(FirstCom);
    WriteDAT(0x00);

    WriteCOM(OscDiv);
    WriteDAT(0x00);

    WriteCOM(FRMSEL);
    WriteDAT(0x06);
    WriteDAT(0x0B);
    WriteDAT(0x14);
    WriteDAT(0x1B);

    WriteCOM(TMPHYS);
    WriteDAT(0x04);

    WriteCOM(TMPRNG);
    WriteDAT(0x1E);
    WriteDAT(0x28);
    WriteDAT(0x32);

    WriteCOM(TEMPSEL);
    WriteDAT(0x00);
    WriteDAT(0x55);
    WriteDAT(0x60);
    WriteDAT(0xF0);
    WriteDAT(0xA3);
    WriteDAT(0xF9);
    WriteDAT(0x6F);
    WriteDAT(0xFF);

    WriteCOM(FrameSet);
    WriteDAT(0x00);
    WriteDAT(0x03);
    WriteDAT(0x05);
    WriteDAT(0x07);
    WriteDAT(0x09);
    WriteDAT(0x0B);
    WriteDAT(0x0D);
    WriteDAT(0x0F);
    WriteDAT(0x10);
    WriteDAT(0x13);
    WriteDAT(0x15);
    WriteDAT(0x17);
    WriteDAT(0x19);
    WriteDAT(0x1B);
    WriteDAT(0x1D);
    WriteDAT(0x1F);


コメントアウトしたところは、不明または不要そうな所。
posted by すz at 04:35| Comment(1) | TrackBack(0) | KDPDK15

2009年08月12日

オリジナル基板の検討(2)

P板.com の 定額給付金パッケージが 9月末まで延長されたそうだ。この機会にオリジナル基板を作ってみたい。

実は、以前にも 同じようなことを書いた。→ オリジナル基板の検討
... のだが結局なにも出来ていない。今回は 是非ちゃんと作ってみたいものだ。

さて、前回の検討から興味の対象が変わっている。前回は、オリジナルの USB910A/USB910B を作りたかったのだが、今流は Arduino だから、いまさら USB910A/USB910B .. という気もする。さらにいうと、 USB910A/USB910B の欠陥というのが分かってしまったので、あまり作る気がなくなってしまった。

基板サイズについて



定額給付金パッケージは、100mm x 100mm の大きさの基板 x 5枚だが、無料で面付けができるので、小さな基板に分割することができる。

自分定義の 1/2 C基板というのが気に入っているのでこれをベースに考える。



1/2 C基板とは...
秋月のガラエポ Cタイプ基板を文字道理 1/2 にしたもの。親子にするとき 便利だし、タカチ SW-55 ケースにうまく入る。サイズは縦 47〜48mm 横 35mm 。

さて、3mm の切りシロで 100mm x100mm に配置すると、この基板が 4 つ入りさらに 24mm x 100mm の余白ができる。この余白を使って 小基板を切り出したい。

小基板として作りたいのは、HT77xx を使った 昇圧基板 と MCP73831 を使った リチウムポリマー電池充電基板。

これらの説明は簡単なので、先に記述しておく。

HT77xx 昇圧基板





基板サイズは、ユニバーサル基板をイメージして サイズを決めることにした。いまのところ 4x8 。

コイルは、秋月の 表面実装コイル 47uH。HT77xxは、共立で扱っている SOT23 タイプをメインに考えるけれども、TO92タイプも使えるようにしておきたい。あと、SBD は、秋月の SS2040FLを使えるようにしておく。あとコンデンサは、積セラ 10uF x2 (2012) ぐらいでどうかと思っている。それでダメなら親子にして 10uF x 4 とか ... でごまかすつもり。32xx も載せられるようにできれば 47uF,100uF が使えて良さそうだが、4x8 に詰めるのを優先するつもり。

さらに、VCC は、VOUT と別にする。VOUT → VCC に直結するのが普通の使い方だが、ここにダイオードを入れると、Vf 分だけ出力を上げられる。精度が落ちるので要注意だが、使える場合もあるかも知れない。

ダイオードは、HN2S01FUが Vf が小さくて 良いのではないかと思う。100mA の素子が 3 つ入っているので 並列で使えば良さそう。

    追記:秋月から、モジュールが発売された。(500円)。

    コンパクトで、入出力に 100uF の積セラがちゃんと入っている。使っている IC は SOT23-5 で CE 端子もある。VCC ピンがハンダ付けされているのが少し気にいらないものの、便利そう。ただ値段は少々高めの印象。300円とかは無理なのか?

    あと、SOT23-5 タイプと互換らしい IC を発見。それは、NCP1402 で、1.9V, 2.7V, 3.0V, 3.3V, 4.0V , 5.0V の出力電圧がある。ちなみに、SOT23-5 は、CE 端子が余分に付いているだけなので、SOT23 と共用のパターンにできるみたい。( CE = VOUT とする ) ついでに書くと、NCP1406 という出力可変タイプもあるようだ。こちらも SOT23-5。

MCP73831 リチウムポリマー充電基板





MCP73831 に最低限必要なのは、IN,OUT のコンデンサ 2 個と 充電電流を決める PROG ⇔ GND の抵抗。あると良いのは、充電インジケータで、これは、STAT に LED を接続することで実現できる。

あと、PROG を HI 状態にすると、充電を停止させることができる。.. なので STAT と PROG は、外に引き出すことにした。

ちなみに、抵抗は 表面実装品を揃えたくないので、1/6 W のものを使おうかと思っている。

1/2 C基板 その1 --- 液晶キャリーボード





まずは、KDPDK15 を分解して手にいれた液晶モジュールを使いやすくするためのキャリーボードを作ってみたい。

他になにも載せないなら、サイズ的にはちょうど良い大きさなのだが ... できれば、タクトスイッチを 3 つ載せたい。

普通のタクトスイッチは無理なのだが、5.2mm角の表面実装タイプなら載りそうな気がしている。

で、8bit I/O と設定用の ピンは中央に おまけとして CN-2 に出す。その上で、シリアル (9bit or 8bit + Cmd/Data) 用を CN-1 に出すつもり。

あと、LED の DC/DC コンバータ。ICM7555 を使ったチャージポンプで 負電圧を作り LED(-)に入力する予定。ICM7555 は 100mA 流せるので 、この程度の負荷なら問題ないはず。ICM7555 は、50%-duty で発振させて、周波数とチャージポンプ用の コンデンサの組み合わせで明るさを調整するつもり。... ただこれはあくまでおまけ。

AVR とか CPU で制御するのなら PWM の方が明るさを調整できたりするので都合が良い。PWM 用の回路も組み込めるように考えておく。



    考えたのだが、こんな回路はどうか? PWM は 3.3V 系の予定なのだが、LED の 電源は 別電源で 5V とか リチウムポリマーの 3.7 〜 4.2 V の別電源にしたい。そうすると、ドライブする回路が面倒になってくる。... せっかく ICM7555 を付けるのだから、そのドライバ部分を利用できないか考えてみた。とりあえず C1 は、1000pF を予定。50KHz ぐらいなら R1 は 15K 、500KHz だとしても R1 は 1.5K 。R2 を これよりずっと小さく(100とか)しておけば、PWM で乗っ取れるはず。

    ... と思ったのだが、修正が必要。タイマーIC は、1/3 VCC 以下で ON , 2/3 VCC 以上で OFF となるのが仕様。LED 電源が 5V のとき 3.3V 系では OFF にできない。 Control Voltage を使って、スレッショルド電圧を調整する必要がある -- とりあえず、PORT 出力(3.3V) を 2/3 にするような回路にしてみた。あと、大電流を流すので パスコンは必須。(回路図は修正済)。

ちなみに、液晶モジュールは、すこし浮かせた状態で両面テープを使ってキャリーボードに貼り付ける。回路は主に表面実装で、裏面に組む。

だいたいこんな感じ。

1/2 C基板 その他



その他を何にするか、まだ考えていない。たぶん 5種類までだろうから、あと 2種類。

    ゆきさんが作ったのは、6面5種みたいだし... 種類に制限があって、面付けの数自体は制限ないのかな?

ひとつは、たぶん AT90USB162 で キャリーボードにも接続できるもの。

できたら、スタンドアローンで動作するように、KDPDK15 から手にいれた、8Mbit のシリアル ROM。AMIC A25L080Mを付けたり、リチウムポリマー電池も組み込みたい。(こちらは小基板経由でも OK)

シリアル ROM があまり良くなさそうなら、MicroSD とか ... あと オーディオ帯域オシロ(3)を思い出した... TLV320AIC23B も組み込みたい。

全部入れるのは無理そうなので、アナログ系 と デジタル系の 2 つに分ける。... どうなるか分からないが ... とりあえず 2 種類の CPU ボードということだけ決めておこう。




追記:AT90USB162 ボードの検討をした結果、上で書いたことはボツとなった。

それはそれとして、MCP73831 リチウムポリマー充電基板 、HT77xx 昇圧基板 は、手配線で作ることにしたので紹介。



まずは、MCP73831 リチウムポリマー充電基板 。

サンハヤトのシール基板 ICB-058 の SOP23-6 パターンを ダイセン電子工業 USBmini-Bジャック変換基板に貼り付けた。専用接着剤は高いので、瞬間接着剤で貼り付けてみたが、これで問題ないようだ。ちなみに、シール基板を貼ってから、ハンダ付けする。そうしないと、シール基板が熱でゆがむ。

表面実装 コンデンサ (10 uF) 2 つを IC の近くに配置したかったので、適合する SOP23-5 ではなく、SOP23-6 を選択している。

後必要な部品は、充電ステータス表示用の LED(赤) + 電流制限抵抗(470Ω)、充電電流を決める抵抗 (4.7K) のみ。これらは 脇の 1x4 スルーホールに実装する。

この程度なら基板を起こすまでもない。

HT77xx 昇圧基板#1



シール基板を試すために、SOT23 の HT7733A を 使って作ってみた。 左が裏面。ユニバーサル基板のようなでこぼこした面でも瞬間接着剤でなんとかなる。ただ、シール基板自体はなにも問題ないのだが、配置に無理があったので、配線が増えてしまった。

ちなみに、右の写真の右上は、ダイオード。出力と HT7733A の VOUT の間に入れると、順方向電圧分(Vf) だけ 出力電圧が上がる。

試してみたところ、3.3V → 3.75 V と 0.45V 電圧が上がった。ダイオードの順方向電圧分(Vf)は、普通 0.6V だが、電流をほとんど流さない場合はもっと下がる。消費電流が増えれば、Vf も 上がり出力電圧も上がることになるので注意。(とはいえ実際は、電流を流したくとも流せないので 結局出力が下がる。-- それほど問題はない。)

ちなみに、配線は、スズメッキ線とかじゃなくて、ダイオードの足でやってみている。線が固めなので、ピン立てには有用だった。

HT77xx 昇圧基板#2



#1 は、気に入らなかったので、もうひとつ作ってみることにした。(写真は 未完成の状態 -- 配線すると 部品がよく見えなくなるので)

そもそも SOT23 なら、シール基板を使わなくともユニバーサル基板に載るのだ。ポイントは 3番ピン(単独のやつ)を先にハンダ付けして 位置決めする。うまく決まれば 1,2 番は スルーホールの フチに 接触するので、この状態で固定。

あと、スルーホールを共有して LX → ダイオード コンデンサとつなげていった。あと、出力のコンデンサを親子にして 10uF x 2 にしている。手配線だと こんな風に 無理な配置ができるので、コンパクトにできる可能性がある。

手間をかけたくなければ秋月の完成品を買えばよいし、手配線でも同じサイズのものは作れる。やはり 基板を起こすまでもない。






posted by すz at 17:34| Comment(87) | TrackBack(0) | KDPDK15

2009年07月29日

KDPDK15 の電源回路

せっかく分解したのだから、電源回路がどのようになっているか調べることにした。特に気になっているのは、バックライト LED の電源と バッテリーの充電回路。

LCDモジュール バックライト



grlib-st7637 の ピン配置では バックライト LED の (-) が -3V となっていたので、チャージポンプで負電圧を作っているはずと目星を付けて探してみた ...

基板上で、トランジスタ(or FET) は 3 つだけ。


    MMS8050 (J3Y とマーク NPN) 1 個
    MMS8550 (2TY とマーク PNP) 2 個


MMS8050 は、500mA まで流せる NPN トランジスタ。Hfe は、120-200(ランク L), 200-350(ランク H) 。ランクまでは分からない。MMS8550 は、MMS8050 とコンプリで やはり500mA 流せる。

(間違えてたので再調査中)

... 基板を調べるのが面倒になってきた。よくわからないが、こんなので良いのではないかと思えてきた。



コンデンサは、1 uF の積セラで、200KHz ぐらいでスイッチングしたらどうか?

ところで ... 液晶モジュールが、COG-C144MVGS-04 の場合は、バックライト電圧が 標準 3.2V なので、特に電源は必要ない。BG999076A の場合 DMC128128A とまったく同じなら 標準 6.2 V なので、昇圧するか 負電源を使うかする必要がある。

バッテリー充電回路





調べてみるととんでもない回路だった。

U2 が充電関係の IC かと思ったのだが、単なる 3.3V のレギュレータ。バッテリーには、ダイオードと4.7オームの抵抗が直列に入っているだけだった。

こういう回路は、NiMH では見たことがあるが、まさか リチウムイオンでも使われているとは思わなかった。バッテリーにかかる電圧は、最大で 4.65 V ぐらい。充電したまま放置するのはちょっと怖い感じ。

ところで、4.2V 出力の 単なるレギュレータでも 充電回路になるような気がしたので、調べてみた。
調べてみると、MIC79050 という IC は、4.2V のレギューレータだが、リチウムイオン充電用 IC らしい。

ついでに調べていくと ...

Microchip の MCP73811/MCP73812 , MCP73831/MCP73832 あたりが結構安く入手でき、高機能そうだ。

    パッケージは、SOT-23-5。MCP73811 は、充電電流 85 mA/450 mA 、MCP73812 は 充電電流 50 mA - 500 mA (外付け抵抗の値で設定)。値段は DigiKey で、65/62 円。MCP73831/MCP73832 は、充電電圧・特性のオプションが増えている。-2ACI とかのサフィックスで、特性が違うので注意。単価は 69円。MCP73831/MCP73832 は、定電流モード(=高速充電)と定電圧モード(=トリクル充電)を行き来するだけで、自動的には充電完了しない。MCP73831/MCP73832は、充電完了モードと予備充電モードがあり高機能。MCP73831/MCP73832 間の違いは、STAT 出力で、MCP73831 が Tri-state なのに対し MCP73832 がオープンドレイン。買うなら、MCP73831T-2ACI か?


おまけ



MCP73831を見つけたことで、ちょっと リチウムポリマー電池の充電に興味をもった。

自分で制御するなら、高精度な ADC を付けてモニターしてみたい。Digikey で探したところ、MCP3422(8-SOIC) が325 円、MCP3425(SOT-23-6) が 246円で安かった。

両方 I2C で制御する。内臓基準電圧の精度は、0.05 %。MCP3422は、ディファレンシャル 18bit x2, MCP3425 は、ディファレンシャル 16bit x1 。ただしサンプリングレートは 16sps (16bt時) と低い。

ついでに書いておくと、4 入力の MCP3424 が、440円,451円だった。

ところで、リチウムポリマー電池 ... ラジコン飛行機の分野で人気だそうだが、やはり危険なようだ。充電時以外でもショートが危険らしい。それと PSE の取得が必要な場合があるので、人に売ったり(譲ったり)する場合は要注意。ちなみに電池を交換式にしない組み込み用途は、OK らしい。

追記(10/10/08):バッテリー充電回路について

とんでもない回路 と書いたが、広く使われているようだ。

    どうも、バッテリー側の保護回路をあてにしているようだ。
    保護回路によく使われているのは、DW01 + 8205(Nch MOS FET) 。

    データシートも見つかるが、DW01 は 過充電/過放電/渦電流保護ができる。ただし、過充電保護は あくまで保護で充電回路としてあまりあてにしないほうが良さそうだ。

    広く使われていると書いたが、たとえば 高容量 USB バッテリーでも使われていたりする。

    (a href="http://nmj.sumomo.ne.jp/suz-aa1/dealextreme/solarbat26-board1.jpg">さらに拡大)

    これは、公称 2600mAH の USB バッテリーのボードだが、(+) 側は、0.5 Ω + ダイオード のみ。(-) 側は、保護回路に接続されている。満充電を検出して ランプが消えるが 保護回路の前に FET かトランジスタの スイッチ があるかどうかすら怪しい。し入れていたとしても、どれぐらい電圧が正確なのか。




posted by すz at 22:00| Comment(0) | TrackBack(0) | KDPDK15

2009年07月24日

KDPDK15/V2 分解写真

KDPDK15/V2 を分解したので写真などを

KDPDK15




KDPDK15 表・裏。バッテリーは、外れてしまったので別途




基板のみ 表・裏



バッテリー 実測で 30 x 15 x 5 (mm) ぐらい。

KDPDK15V2





KDPDK15V2 表・裏。



なんとなく、拡大。



型番

これに使われている CPU は何なんでしょう? 48QFP で pin 21,22 に USB の信号が来ているもの ... という情報で 見つけられると思ったのですが、見つけられていないです。情報をお持ちの方はぜひコメントをお願いします。

ファームウェアを書き換えられるとすごく楽しそうですが、まぁ無理そう。
    追記:無理というのが判明しました。
    DigiPodの分解記事を発見。DigiPod の中身は、KDPDK15 そっくり。
    で、CPU は、BUILDWINという中国メーカーのAX102というものらしい。URL は、http://www.buildwin.com.cn or http://www.appotech.com 

    ついでに ... 緑と青の水晶らしきものは、やはり水晶で 24MHz と 32768 Hz らしい。

とりあえず、パーツ取りとして考えることにします。

液晶モジュール



KDPDK15 のモジュールは、使う方法が見つかっています。

ただし、8bit パラレル。シリアルで使えるかどうかは不明。
    このモジュールの型番は判らないのだが、aitendo で扱っている DMC128128Aがかなり近い。0.8 mm ピッチ 27 pin フレキという点も同じ。データシートを見てみたが、8bit パラレルは、grlib-st7637 と同じ接続のように見える。( 精査はしていない )。
    DMC128128A は、8bit SPI/ 9bit SPIモードも使えるので、おそらくこれも同じ接続でいけるに違いない。
    ちなみに、LED の電圧は、6.2V ( 5.8V 〜 6.6V , 15mA ) 。3.3V 電源系なら、チャージポンプで 負電圧を作ることで ちょうど良い電圧にできそう。

KDPDK15V2 と一部の KDPDK15 は、COG-C144MVGS-04 というモジュールを使っています。ググると Users Manual (pdf)がヒットするようです。これを見る限りでは、8bit パラレル専用です。ちなみに、コントローラは、ST7637。LED の電圧は、3.2V (3.0 V 〜 3.4V , 20mA) で、扱いやすい。


フレキが基板にハンダ付けされていますが、はがすのはたぶん簡単。0.8mm ピッチで比較的 工作しやすいはず。

    追記:はがしたみた。
    ハンダを盛りながら、めくるようにはがすのが簡単だった。無理な力を入れると フレキが破れる可能性があり注意。


バッテリー



バッテリーも使えそうです。KDPDK15 は 210mAH , KDPDK15V2 は 250mAH 。ただし、充電は危険なので、MAX1555などを使った専用回路が必要。

MAX1555 単品は スイッチサイエンスで、
480円。充電ボードは、ストロベリー・リナックスで 2480円

こういうのを使っても、危険なのは変わりありません。安易に手を出すべきではありません。

シリアル ROM



8SOIC は 8Mbit のシリアル ROM。AMIC A25L080 (データシート)。

基板から外すには、両側のピンにハンダを盛って、熱いうちにずらす。簡単!。

このチップはどこで売っているのかわからないが、容量、ピン配置、コマンド体系などが同じ AT26DF081A なら Digikey で 134円。

これだけ入って 最安 1200円。なにかと楽しめそうなアイテムです。

追記:09/07/27

秋葉原モバイルで KDPDK15 が 980円なのを発見。これが最安か!
    09/08/28 -- 売れきれ気味だが、LT-DA15E101 という 同じタイプの ものが、グッドメディアで 799円だった。使用している液晶モジュールに 2 タイプあるようなので、安ければよいとは思えなくなってきたが、一応メモ。

ちなみに、KDPDK15V2 は、最安 1800円

前の記事で、KDPDK15V2 の方が鮮やかと書いたけど、いくつか買ってみた(大人買い!)ところ 個体差ということが判明。
    追記:後で購入した分を分解してみたところ、液晶モジュールが、KDPDK15V2 と同じ だった。基板には、ZXDP-ED31-V1.0 という印刷が ... 先に入手したのは、V3.0 だから古いほうがなぜか鮮やかということに。

実用として使うなら、 KDPDK15V2 の方がデザインも良いし、使いやすいと思うけれども、部品取りなら KDPDK15 の方が良さそう。

ところで、UP DOWN のどちらかを長押しすると、時計表示が ON/OFF できる。マニュアルみても判らなかった。

あと、豆知識。液晶モジュール型番の COG-XXX の COG は、Chip On Glass の略。

メモ: 52 枚の写真が保存できるが、ストレージは 1MB 。この中には フォントも持たないといけない(はず)。128 x 128 x 16bpp x 52 = 1.6 MB で 16bpp は無理。128 x 128 x 8 bpp x 52 = なら 832KB 。フォントは、漢字 16dot x 16dot みたい。4000 字で 16*16/8 * 4000 = 125KB だから、のこり の部分に入りそう。

追記: KDPDK15 の LCD モジュールピン配列について

とりあえず、側面に書いてある DFM-076B をモジュールの名前とする。grlib-st7637 と DMC128128A を参考に表を作成してみた。



デフォルトは、RD と WR があるので 8080 タイプの 8bit パラレル。それとの違いを青か太枠で記載。不思議なのだが、8bit パラレルのときは、D0,D2,D4,,,D14 を使うようだ。DFM-076B も飛び飛びで使っているので、まさに DMC128128A と同じ。そうすると、コントローラも、ST7637 ではなく、UC1697 ではないかと思える。
もし、UC1697 でなければ、シリアルのピンアサインは変わってくるはずだが、とりあえず 同じであることを前提にテストしてみようと思う。

あと、デフォルトでは、D13,D15,BM0,BM1 は無接続で良いようだから、プルダウン/プルアップが 表のようになるように設定されていると思える。

その後、aitendo の DMC128128Aのデータシート (dmc128128a.pdfをチェックしていたのだが、外観はちょっと違うが、表示部分のサイズや フレキのサイズとが、ほとんど同じということが判った。ここまで同じなら、メーカも同じだろうし、制御方法も同じと思って良さそう。




おまけ LT-DA15E101 の分解写真





posted by すz at 20:17| Comment(92) | TrackBack(0) | KDPDK15

2009年07月02日

ノキア液晶メモ

電子工作でなにかを作ろうとしたときのネックのひとつが表示装置。キャラクタディスプレーだと選択枝は多いのだが表現力がいまいち。グラフィック液晶になるとかなり選択枝は減ってしまう。さらにカラーグラフィックとなると....

数少ない選択枝のなかで、SparkFunのColor LCDモジュール は入手性が良くかなり有望。

入手先は、


同じようなものとして、
という選択枝がある。

aitndoだと格安ともいえる NOKIA 3300液晶 600円も扱っている。(注意:安いのは良いのだが、なにかデリケートな所があって壊しやすいみたい。)


これらの液晶の使いかたについては、Sim's blog: Nokia6100液晶を使ってみるが詳しい。

とりあえず、NOKIA 3300液晶を FT232R モジュールでつないで、いろいろやってみようかと思っている。

ちなみに エレ玩 Konyaの開発記録: PIC24FでG&Wもどき では、なにやら面白いものを作っているが、NOKIA 3300液晶は故障。この液晶はテスト用と割り切った方がよさそうだ。

    故障のパターンは横線がはいるというもの。TFT じゃないから... たぶん接触不良。その原因は熱?。中央のパッドは半田付けするものではなさそうだから、そこに熱を加えるのがマズイ?


追記: 09/07/14

1.5 inch 128x128 の デジタルフォトフレームが安く売られているのを知った。
左の KDPDK15が最安 1280円。右の KDPDK15V2が最安 2300円。

ノキア液晶と同等の液晶に バッテリー内蔵の実用品が この値段。ううむ。ちょっと買って分解してみたい。

追記: 09/07/14 バックライト用昇圧回路案
ノキア液晶のバックライトは、7V 40〜50mA ぐらいの電源が必要。その電源を、汎用 DC-DC コンバータ IC の NJM2360ADで作るというのもひとつの手なのだが、もっとお手軽に作りたい。
お手軽な 昇圧型 DC-DC コンバータ IC として HT7750Aがあるが、残念ながら 出力が 5V 固定。
これを使って、なんとか できないか考えていたのだが、ひょっとしたら、出力 と Vout の間に ダイオードを 3段ぐらい入れたら、ダイオードの電圧降下分 出力電圧が上がるのではないか?
ちょっと試してみようと思っている。
あと インダクタが 100uH となっているが、千石で扱っている 太陽誘電 LHLZ06NB 101K が良さそう。それ以外はコンパクトなものが入手しづらい。秋月の SMDインダクタ 47μH 0.36Aが使えると嬉しいのだが ...
    ググってみたところ、ダイオード 1 個入れて 5.65V にする例は見つかった。インダクタも 22uH,47uH,100uH で実験している人発見。SMDインダクタ 47μH を使っている例もあった。
    あとはコンデンサ。 SMDインダクタ使っている人は、秋月の 100uF 積層セラミックを使っているっぽい。
    汎用電源ではなく、LED 点灯するだけだから変動は少ないはずで、出力側は 10uF でも OK だと思う。ただし、耐圧に注意 (6.3V では無理)。入力側も、積層セラミックを使いたいところ .. 100uF を使う手はあるが、USB のように弱い電源から取るような場合、突入電流 対策が必要。USB の場合は ...たしか...せいぜい 10uF だったと思う。 10uF か 10uF x 2 で済ませられないものか。


追記: 09/07/22 KDPDK15KDPDK15V2を買ってみた。

現在の最安値は、1200円, 2000円。とりあえず、両方買ってみた。もちろん目的は電子工作に使えるかどうかの調査。

...とりあえず分解はおいておいて ... レビュー。USB に接続すると、CD-ROM が見えるようになる。その中には Windows のソフト(DPFMATE.exe) が入っている。Mac 用のソフトはMACDPFMATE.zip として、zip ファイルで入っている模様。

この DPFMATE を使って イメージファイルを KDPDK15(V2) に送ることができる。( ついでに時刻あわせもしてくれる )

画像はけっこうきれい。特に KDPDK15V2 は、KDPDK15と比べると発色が鮮やか。

さて KDPDK15 を分解してみる。バッテリーは、210mAH/3.7V の リチウムイオン。ストレージは、8pin のシリアル ROM ( 型番読めず ) 。LCD は、0.8mm ピッチ 27ピンのフレキが直接基板にハンダ付けされていた。-- はがすのは簡単そう。

CPU は、ダイが基板に直付けされているタイプ... なのだが、なぜか 48QFP のパターンが残っている。そして、21/22 pin に USB の信号が入っている。

KDPDK15V2も分解してみたが、ほとんど同じ。ただし、バッテリーは、250 mAH(BEX POWER 502030S) に変更されていて、(アラーム用)圧電スピーカが追加になっている。液晶モジュールも違う。0.8mm ピッチ 29ピンフレキ。VARITRONIX というメーカ名が印刷されている。型番は COG-C144MVGS-04。8pin のシリアル ROM は、AMIC A25L080M (8Mbit)と判明。

KDPDK15 の LCD の側面に BG999076A-V0.1 とある。これをググってみると、1つだけヒットするページがあり、そこに ST7637 コントローラと書いてある。このヒットしたページには、grlib-st7637 というソフトのページで、st7637.h を見ると ... なんと、8mm ピッチ 27 pin のアサインが載っていた。
( このデータは、どうも KDPDK15 同等品を解析したものらしい。
→ 参考 http://tuxotronic.org/wiki/component/lcd/st7637)

    1 VCC 2 GND 3 -- 4 -- 5 CS# 6 Data/Command# 7 RD# 8 WR# 9 RST#
    10 D0 11 -- 12 D1 13 -- 14 D2 15 -- 16 D3 17 -- 18 D4 19 -- 20 D5 21 -- 22 D6 23 -- 24 D7 25 --
    26 LEDK(-) 27 LEDA(+)
    ( -- は NC ではなく 不明 ということ 無接続で OK )

    ピン配置をみると、D0 の横 〜 D7 の横は GND か D8〜 D15 みたいに見える。8bit パラレルが基本らしいが 16bit パラレルができるとすれば、3,4 pin のどちらかが切り替え用の信号に違いない。

    ST7637 のデータシートを見ると、シリアル時は、Data/Command# が CLK になり、D0 が SI になる。Data/Command# は D1 に移動。
    もし、 シリアルが可能なら やはり 3,4 pin のどちらかが切り替え用の信号のはず。

    切り替え用の信号は、IF1/IF2/IF3 と 3 本あり、この組み合わせで 6 通りのインターフェイスを切り替える。IF1 は、8bit/16bit (or 8bit-serial/9bit-serial) の切り替え。これはたぶん 3,4 pin に出ている。IF2 は、68系/80系の切り替え。IF3 は パラレル/シリアルの切り替え。IF3 が 3,4 pin に出ている場合 シリアルでの通信が可能。

    KDPDK15V2 の COG-C144MVGS-04 は、裏面にそう印字されているのだが、ググってヒットするのは、COG-C144MVGD-04。こいつのコントローラは、ST7687S だそうだ。信号関係は ST7637 と ほぼ同じだが、16bit パラレルモードは持っていない。pin 配置は VARITONIX からダウンロードできるようになっているが、実際やってみるとなんかハネられる。まあ、こちらを選んでもなんとかなるような気はする。


ついでなので .. KDPDK15 の製造元の型番は、DPF106。KDPDK15V2は不明だが、プリンストンの PPF-OVOは、DPF109。--- それにしても sample price US $7 って ... ここまで原価は低いのか。

追記:09/08/28

改めて COG-C144MVGS-04 をググってみたら、なんと! Users Manual (pdf) がヒットした。ちょっと見た範囲では、制御 IC は、ST7637 。ピン配置は、

    1 NC 2 LED + 3 LED - 4 Vg 5 XV0 6 V0 7 Vm 8 VDD 9 VSS 10 VDD
    11 /EXT 12 /CS 13 IF2 14 IF1 15 /RST 16 RD 17 VDD 18 D7 19 D6 20 D5
    21 D4 22 D3 23 D2 24 D1 25 D0 26 WR 27 A0 28 VPP 29 NC

  • Vg, XV0 , V0 , Vm は LCD のバイアス。ST7637 のデータシートでは、Vg - GND, Vm - Gnd , XV0 - V0 に 1uF のコンデンサが入っている。実機も同じ。
  • IF3 が出ていない!シリアルは無理かも。
  • /EXT , VPP は気にしなくてよさそう。
  • LED の電圧は、3.2V (20mA) だそうだ。昇圧など考えなくて良いので楽。


8bit パラレル専用っぽいが、フレキ上に J1/J2 というジャンパがあるので、ひょっとしたら シリアルで使えるかも知れない。

とにかく、... 入手した KDPDK15 の液晶モジュールは、1 つを除いて COG-C144MVGS-04 だということが判明したので、これを使いこなせるよう検討していくつもり。
posted by すz at 16:26| Comment(0) | TrackBack(0) | KDPDK15