いろいろ試す13

DIPのLPC1114の話がここかしこで持ち上がっていますがSRAMの容量半分に
削られてるしねむいさんはふつーにスルーさせていただきま…
と言いたいところでしたがなんと秋月さんからもリリースされましたので方針を
360度変更してこちらでも取り扱います!!!乞うご期待!!!

それと私が提供してるOpenOCDのバイナリとVersaloon使ってデバッグとか書き込
みでしようとして躓く人必ず出てくると思うので思うので一応注意を書いておきます。
下記の2点さえ抑えていれば大丈夫です。
1.SRAMが半分に削られてるのでlpc1114_swd_flash.cfgじゃなくて
 lpc11u14_swd_flash.cfgを使用するべし。
2.Windows使いの人以外でOpenOCDビルドする必要がある人はlpc2000.cにパッチを当
 てないと書き込みができません。詳しくはここ参考にするべし。

ちなみに2.のOpenOCDビルド手順はubuntuやマカーな方にとっては未だに
需要があるので新たに整備が必要だと感じてきました。逆にWindows使いの
方は9割がたEclipse環境に行くので初見で私のぶろぐまでたどり着く人は
実はものすごく少なくそもそも知っててもみなかったことにさr

…さて前ふりはこの辺にしといて小ネタが貯まってきたので消化してきます。





●LPC1788にMCIインターフェース版FatFsを移植する

やっとこ安定化しました…。結局I/Oポートの初期化がおかしかっただけ
だったというなんたるイージーミス…
LPCwareのサンプルも同じ間違いしてるから中の人に伝えておきました。

LPC2388ではメインSRAMに直接DMA出来ないため、ChaN氏はUSBRAMとリンク
リストで順繰りに効率的に転送するかたちを取っていました。私の場合も
LPC1788ではAHBRAMを使用して同じことやってます。AHBRAMとメインSRAMは
独立しているので転送中別の処理やってもフンつまりにならないのです。


MCIのクロックは定格内で20MHzまで設定できます。転送効率が良いのでリード速度は
理想値に近いですね♥ちなみに定格に外れますが30MHzも設定は可能です。

↓外人さんもよく来るので英文でメッセージ
Finally,FatFs for LPC1788 MCI interface turns stable by Nemuisan's works!
You can get sourcecode Here!



●SANDISKのすごく早いUSBメモリ
ごく一部で話題沸騰だったSANDISKのUSBメモリを欧州のebay経由で購入しました!
2012年8月現在は日本国内の通販でも安価に購入可能です。

SDCZ80-032G-X46っていうUSB3.0対応のメモリなのですが、一般に安く売られている
USB3.0な奴と違って小さいサイズのファイルのランダムアクセス(特に書き込み)
にも非常に強く、私のようにレス用画像をUSBメモリに入れてる方にはもってこいの
アイテムです♥


deflaggerで見るとSSDが検知されています。SSDをUSB3.0に変換してるタイプの奴な
のでチマチマ書き込みにも強いのですね。こちらの方はさらに詳しく調べられています。

-----------------------------------------------------------------------
CrystalDiskMark 3.0.1 x64 (C) 2007-2010 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

Sequential Read : 195.029 MB/s
Sequential Write : 117.804 MB/s
Random Read 512KB : 144.212 MB/s
Random Write 512KB : 25.899 MB/s
Random Read 4KB (QD=1) : 13.372 MB/s [ 3264.8 IOPS]
Random Write 4KB (QD=1) : 9.992 MB/s [ 2439.5 IOPS]
Random Read 4KB (QD=32) : 11.232 MB/s [ 2742.2 IOPS]
Random Write 4KB (QD=32) : 3.699 MB/s [ 903.1 IOPS]

Test : 1000 MB [E: 0.2% (0.0/29.8 GB)] (x5)
Date : 2012/07/30 9:05:28
OS : Windows 7 SP1 [6.1 Build 7601] (x64)
SDCZ80-032G-X46 FAT32 Vostro3350_Win7x64_USB3.0Renesas_64kbclaster

↑買ったばかりの時のベンチ結果です(検証に使ったPCはDellのVostro3350です)。
 スクショ取り忘れたのでこぴぺで…
 中身がSSDなので64GB版はさらに早くなるようです。

-----------------------------------------------------------------------
CrystalDiskMark 3.0.1 x64 (C) 2007-2010 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

Sequential Read : 131.462 MB/s
Sequential Write : 23.899 MB/s
Random Read 512KB : 121.063 MB/s
Random Write 512KB : 5.004 MB/s
Random Read 4KB (QD=1) : 10.935 MB/s [ 2669.8 IOPS]
Random Write 4KB (QD=1) : 0.240 MB/s [ 58.5 IOPS]
Random Read 4KB (QD=32) : 11.655 MB/s [ 2845.4 IOPS]
Random Write 4KB (QD=32) : 0.281 MB/s [ 68.5 IOPS]

Test : 100 MB [E: 0.0% (0.0/14.7 GB)] (x5)
Date : 2012/07/12 9:26:14
OS : Windows 7 SP1 [6.1 Build 7601] (x64)
USM16GQ/SC FAT32 Vostro_usb3.0_64kb

↑SONYのUSM16GQ/SCと比較。やはりSanDiskのほうが性能がダンチです。


↑約一か月使い込んだ後
 512kと4kのWriteかなり劣化してしまいましたorz


↑今日日のSSDならSecureEraseとかTrimとか使えるはずですがSanDiskから
 そういうツールも提供されていないので黎明期のSSDでよく使われていた
 空き領域のデフラグやってみました…ちょっとだけ性能回復したような
 気がする…



●中華MP3プレーヤー LYUMO M21
ヨドバシで安さにつられて買ってしまったこれは値段通りの性能でした…
めでたしめでたし。

…で終わるわけがないので捨てる前に分解してみました。


生意気にケースは金属製です。


…チャイナクオリティ…ショートしたらやばいですよぅこれ


操作した時に液晶の切り替えがやたら遅いので気になってましたがどうやら私のぶろ
ぐでは定番のMCUバスタイプの中華液晶モジュールが使用されているようです。


ねむいさんは中華液晶を何年も何種類もいじってきましたのでこの文字列見ただけでも
何を意味するか分かります。お尻の"OTM2201"がコントローラICの型番を示します。
そこからi8080接続タイプで176x220の解像度を持ったTFT液晶モジュールであることも
わかります。


液晶モジュールだけ取り外してSTM32F4でうごかしてみました。ピン配置の判定も
過去のデータベースから推定して一発で判明しました♥
ちなみにOTM2201のはずなのにDeviceIDを読んで判明した正式なコントローラICは
S6D0164でした…まぁ中華クオリティ(ry



●いつもの中華液晶たち
aitendoさんから出ると脊髄反射的に手に入れようとしてしまう性格を直さなければ
と思いつつまた動かしていた…

S95311

 まだデモコードが提供されていませんがコントローラIC(HX8340A)とピン配置が判明
 しています。QCIFサイズで8bitバスのモジュールではよくある配置なので楽勝です。
 初期化手順も中華サイトを巡ってさらにこの液晶用にガンマと表示方向を指定して
 あげれば余裕です。i8080な8bitバス専用です。

 8/27の雪子ちゃん誕生日記念の際に作ったコラ絵を映してみました。
 ※今年はえろす抜きです

S93610

 コントローラICはILI9163Bです。まだデモコードが(ry
 i8080な8bitバス専用です。

 コントローラICとしては何度も動かした実績があるので今回も楽勝です

S95417

 ピン配置はYHY024006Aと同じタイプの2.4inchのモジュールです。まだ(ry
 i8080な16bitバス専用です。8bitに切り替えができません。

 こちらのコントローラICはST7787でILI9340やR61526系統のコマンド体系と
 なっています。しかしながらSTM32F2/F4のような高速でぶん回せるバスの速さに
 追従し切れないようなのでGPIOによるエミュレーションかXMEGA等の少し遅めの
 バスで動かすのが良いかと思われます。

S95461C

 WQVGAタイプのTFT液晶モジュールです。ま(ry
 i8080な16bitバス専用です。8bitに切り替えができません。(意味深)なチップ抵抗
 があることにはありますが載せ替えても16bitのままです。


 2年前にHX8352Aのものを動かしたことがあります。今回はHX8352Bです。似通った
 コマンド体系ですが細かい部分の動かし方が微妙に違います。特にレクタングル指定
 では内部メモリアドレス指定のコマンドも追加する必要がありました。よって初期化時
 に双方のコントローラICを判定してそれぞれの初期化ルーチンの最後にレクタングル
 指定用の関数のポインタを割り振るようして条件分岐による速度低下の発生を抑える
 ように工夫しました。



 そしてChaN氏のFatFsも久々に更新されたので、いつものにも更新ついでに上記モジ
 ュール他に対応しておきました。いつものに収録されているTFT液晶ドライバ群は
 隠れた人気があるようです。特にHX8347Aについては検索で飛んでくる方も未だに
 多いので役に立ってると私は思(いこんで)います!!!



●おまけ

本来はNuvotonのNUC120やM051をOpenOCD使ってデバッグするのも紹介する
つもりでしたが、意外とボリュームあるので次回LPC1114DIP板の記事の時に
ご紹介します。代わりに…

taobaoでSTM32の生基板大量に買ったついでにまた買ってしまったTFT液晶たちを。
気が付いたら殆ど使いもしない液晶モジュールを150種類以上持っていた私…


R61509V互換のILI9326をコントローラに持つWQVGAのモジュールです。


H016IN61というH016IT01(H161T01は間違い)のパラレルバス版みたいなの
LEDは2個直列なので6.2Vくらい必要です。


QCIFサイズでSPI接続専用でしかもタッチパネル付きの液晶です。LEDは並列3つで
3.3V単一電源でもOK。以前は3-wire,9bitシリアルの奴に苦しめられましたが、
こいつは4-wire,8bitシリアルで非常に扱いやすいです♥
aitendoさん!!これ国内で販売したら大ヒットまちがいなしですよぅ!

 
とにかく動かすの優先だったので配線が全てやっけつなのは許してほしい。

Comments

S95461Cを動かすのに手こずっています。
初期化ルーチンのソースコードを教えていただければ
大変ありがたく存じます。
よろしくお願い申し上げます。

河崎様はじめまして、ねむいです。


お問い合わせの件につきまして、HX8352B等のTFT液晶ドライバの初期化
手順は私の"おきぱ"にあるSTM32F4等のFatFs移植例とともにライブラリ化
して同梱しております。上記の場所のリンク先からダウンロードした圧縮
ファイルを解凍して出てくるディレクトリ下
./lib/display/drivers/src/hx8352x.cにあります。

各ドライバは上位層と下位層を分け完全に抽象化しており、ARM以外のマイ
コンへの移植も非常に容易にしておりますのでご参考に。

また、当たり前のことですが結線が間違えていると全く動かないので
デバイスIDを読みだして確認していくのがよいでしょう。

Post a Comment








Go to top of page