2010年09月02日

P5-5 (PMP3100後継機)

以前 PMP3100 を勢いで買ったのだが、予想に反して Jz4725(無印)だった。

Jz4725(無印) も Jz4725Bも おなじようなものだと思っていたのだが、調べるうちに 全然違うことが分かってきた。Jz4725(無印) は、Jz4740 ファミリーで、Jz4725B は Jz4750 ファミリー。
Port のマッピングが ファミリーで 全然違うので、Jz4725(無印) と Jz4740 は同じカーネルにできる可能性があるが、 Jz4725(無印) と Jz4725B は同じにできない。




そのうち、後継機の P5-5 が FocalPriceから出たので気になっていた。DealExtreme で PMP3100として売られているのも実は P5-5 だと知ったので、ひとつ入手しておくことにした。

    後継機と言っても ハードウェアは、CPU を載せ替えて、ボタン や スイッチなどの印字を 妥当なものに修正しただけに思える。
    -- 最初の PMP3100 は、HOLD, ON/OFF の表示が逆 。あと、2つめの イヤホンジャックに AV-OUT と印字されていた。
    CPU を載せ替えるのは、たぶん入手できなくなったから。
    ファームウェアも前のが動かないし、刷新することになったのだろう。

なにかものを作る場合、だれも持っていなさそうな aneca をターケットにするより 数が出て 安定供給されそうな P5-5 をターゲットにしたほうが良いのだ。

aneca は自分が気に入ったからターゲットにするのだが、気が済んだら P5-5 もターゲットにしたいと思う。

まだ入手しただけだが、Jz4725B なのは確認できた。あとはメモリサイズを一応確認してみる。ついでにメモリが 32MB になったりしてると嬉しい。


    ちょっと USBBOOT で確認

    usbboot :> nquery 0 0
    CPU data: Boot4750
    ID of No.0 device No.0 flash:
    Vendor ID :0xec
    Product ID :0xd5
    Chip ID :0x14
    Page ID :0xb6
    Plane ID :0x74


    4K Page の K9XXG08UXM (2GB) だった。

    次は RAM サイズ。USBBOOT の cfg ファイルに

    BUSWIDTH = 16
    BANKS = 4
    ROWADDR = 13
    COLADDR = 9

    という設定がしてあって

    SDRAM Total size is 32 MB, work in 4 bank and 16 bit mode

    というメッセージがでる。で、この情報を元に CPU の SDRAM 設定をする。CPU は、32MB だと思ってアクセスするわけだが、実際に 16MB しかない場合、データ が 循環する。bank が 上位 2 bit になるので、8MB が実は 4MB + 同じデータの 4MB ということになる。

    W9812G6PH-6 を使っていて 16MB しかないのが明らかな A-41 でまずは確認。

    0x81c00dd4 : 00 00 1c 3c 2c 60 9c 27 21 e0 99 03 d0 ff bd 27
    0x81800dd4 : 00 00 1c 3c 2c 60 9c 27 21 e0 99 03 d0 ff bd 27

    次に A5-5 。... 結果はまったく同じだった。これで RAM 容量は 16MB だと分かった。

    ところで、... 16MB 用のマシン に 64MB の RAM を入れるとどうなるのだろう? OK そうなのだが、A12(pin 18) に配線されているのが条件。PMP3100 だが写真を見ると SDRAM の方に配線されているから 問題ないはず。


よくよく考えると、16MB では DINGUX 並のことはできない。RAM の換装が必須だが 電子工作が趣味ならともかく、普通の人が RAM の換装などできるはずがない。そうすると ターゲットにする意味がなくなってしまう。 -- ただ、このマシンは 裏蓋をあけるとすぐ RAM にアクセスでき、周りにスペースもあるので 換装自体は 最もやりやすい。最初に RAM 換装してみようと 思っているマシンだったりする。

GPIO の 解析


    簡単そうなのが、microSD のセンスと イヤホンのセンスだったので同じことをやってみる。


    初期状態
    PAPIN: 0000ffff
    PBPIN: 823f5f0c
    PCPIN: ffdfdcff
    PDPIN: fd7fffff

    microSD なし PCPIN: ffdfdcff
    microSD あり PCPIN: ffcfdcff
    ありで PC20 が L に変化

    phone1 あり -- 変化なし
    phone2 あり -- 変化なし


    分かったのは、microSD のみ。デフォルトの pullup を落とすとかしないと分からないのだろうか? それとも コントローラ経由?

    さて PC10 からの PWM は 110111 (MSB が PC15)のビット列。
    これを見るとバックライトは、PC13/PWM3/UART-RxD のように思える。
    実際やってみると当たり。-- まぁこれは 選択枝がないようなもの。... それはともかく、コントーラの制御に UART を使っているものとばかり思っていたのだが違うのかも知れない。


すぐわかるのはここまで。他はどうしよう。

    課題1 PHONE1/PHONE2 のセンス

    Linux が動いてからでも遅くない。とりあえずパス。

    課題2 ボタンの制御

    これはどうやったら分かるのだろう? 配線もわからなければ、制御するための プロトコルも分からない。

    こういうのに近いものがあるとすれば ... A-330 のワイヤレスコントローラか。受信部にマイクロコントローラが付いているところから よく知られているコントローラ互換のように思えるのだが ...

    ロジアナ使うにしても できることは、コントローラ自体の PIN の変化が分かるだけ。分析すれば どのように制御しているかは分かるだろう。で、GPIO がどう配線されているかを見つけるのはどうしよう。... テスターで頑張ればなんとかなるか。

    課題3 スピーカー出力切り替え

    これも 後回しで問題ない。

    課題4 PHONE の ポップノイズ対策 (ないと思うがあるかも知れない)

    課題5 LCD の制御

    LCD のつなぎ方は、割と決まっている。特に 2.8 inch なら A-320 などと 同じはず。-- と思ったが、A-320 の 新しいタイプ ILI9331 は SLCD(SmartLCD: HSYNC/VSYNC を使わない) 接続だそうだ。

    確かめてみることはできるだろう。DINGUX の hwinit を参考にすれば 良さそうだ。... ソースコードの情報は、dingoo-linux の ここ。svn でダウンロードできる。


    課題6 MicroSD の CS

    MSC1 は、CLK/CMD/D0 のみ。CS は GPIO でやることになっているようだ。そうすると PIN を見つけないと MicroSD が使えない。

    これは基本機能なので重要だ。なんとか見つけないと。... と思ったのだが、どうも SPI モードとは違うらしく 上記の線だけで良いのかも。


付録 PMP3100(旧機種) の基板写真


P5-5 JZ4725B ピンアサイン表 (作成中)

凡例 : x 割り当てに選択の余地がないピン
o A-41 固有の割り当てで判明したピン
? 不明なピン

Jz4725B

? 2 PD18 LCD_PCK(LCD)

? 48 PC15 PWM5

? 54 PC20 WAIT(SRAM)
? 55 PC22 CS2/MSC0_D3

o 57 PC13 PWM3/UART0_RxD(UART)
o 58 PC12 PWM2/UART0_TxD(UART) T1
? 59 PC11 PWM1/I2C_SCK(I2C)
? 60 PC10 PWM0/I2C_SDA(I2C)

? 68 ADIN1

x 84 PPRST(RTC)
o 85 PB31 WKUP(RTC)
x 86 PWRON(RTC)

x 100 BOOT_SEL0
x 101 BOOT_SEL1
? 102 PD23 LCD_SPL(LCD)
? 103 PD22 LCD_CLS(LCD)

? 105 PD25 LCD_REV(LCD)

? 107 PD24 LCD_PS(LCD)
x 108 PD20 LCD_VSYNC(LCD)
x 109 PD19 LCD_HSYNC(LCD)
? 110 PD18 LCD_DE(LCD)
? 111 PD17 LCD_D17(LCD)
? 112 PD16 LCD_D16(LCD)



P5-5 JZ4725B 判明ピン
バックライト:
o 57 PC13 PWM3/UART0_RxD(UART) H で ON
microSD センス:
o 54 PC20 WAIT(SRAM) L で microSD あり


JZ4725B 調査対象ピン

制御候補

? 48 PC15 PWM5/A18(SRAM)

専用機能
? 57 PC13 PWM3/UART0_RxD(UART)
? 58 PC12 PWM2/UART0_TxD(UART)
? 59 PC11 PWM1/I2C_SCK(I2C)
? 60 PC10 PWM0/I2C_SDA(I2C)
? 68 ADIN1

電源制御
x 84 PPRST(RTC)
x 85 PB31 WKUP(RTC)
x 86 PWRON(RTC)

GPIO 候補
? 54 PC20 WAIT(SRAM)
? 102 PD23 LCD_SPL(LCD)
? 103 PD22 LCD_CLS(LCD)
? 105 PD25 LCD_REV(LCD)
? 107 PD24 LCD_PS(LCD)
? 111 PD17 LCD_D17(LCD)
? 112 PD16 LCD_D16(LCD)
+ UART ?
posted by すz at 01:30| Comment(0) | TrackBack(0) | Jz47xx(機種解析)
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス: [必須入力]

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/40488439
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック