いろいろ試す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ビルド手順はUbuntsuやマカーな方にとっては未だに需要がある
ので新たに整備が必要だと感じてきました。逆に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