いろいろ試す5

こんなんきました…これはありがたい…
un
un
以前購入したものの全く触れていなかったPSoC5を少し触りました。PSoC5は中のCPUコア
がMAX80MHzで動作するCortex-M3が採用されています。6月位にPSoC5の評価キット
PSoC 5 FirstTOUCHが安価で販売されたので、CypressからSRAMと一緒に購入しました。

un
統合開発環境のCPUコア(Cortex-M3)プログラムのビルドはGCCです。
CodeSourceryG++を呼び出すようになっています。

un
P.O.V.による文字表示がデモプログラムが出荷時に書き込まれています。電源を入れて
ぶんぶんふるとメッセージが順次表示されます。

今現在C言語ソースしかいじり方が分からないのでCypressのサイトのチュートリアルでも
みてツールの使用方法を覚えていきますか…。以上前フリ終わり!



さて、ゆっこちゃんの誕生日(だいぶ前ですが)も無事終わり、少し落ち着いたので
かねてから考案中だった複数のフォントに対応したFontX2ドライバ作りを行いました。
ProjectC3氏のページの内容を元に以下のような動かし方にしました。

1.半角・全角ごとにFontX2ファイルのヘッダー部の構造体をSRAM上に構成する。
2.各フォントを登録するごとにSRAM構造体の分だけをゴリゴリ消費。
 (というわけで比較的大規模のマイコン上での使用を想定してます)。
3.半角・全角ともにグローバルなFontX2の構造体ポインタを置き、文字描画する関数
 群は全てこれを参照するようにする。
 使いたいフォントで文字を描画する前に構造体ポインタに「1.」で登録した構造
 体のアドレスを渡すようにする。こうすることで使用したいフォントを簡単に切り
 換えることができる。
4.FontX2側のドライバは使用するFontX2ファイルの登録と、要求されたascii/sjis文字
 コードに対してフォントデータの実体があるアドレスのオフセットを返す。

決め打ちでやるのならばSRAMなぞ消費する必要はないのですが、汎用性を上げたかっ
たのでこんな感じにまとまりました。今はまだマイコンのフラッシュメモリ上にFontX2
のデータをそのままのっけています。こちらも追々と大容量のSPI-ROMに追い出すつ
もりです。

というわけでSTM32やLPC2388のTFT液晶表示プログラムにそれを組み込んでおきました。
タッチパネルの設定の際に使用しています。

un
当たり前ですがフォントそのものは同じなので以前のと見た目は変わりませんけどね。
表示に使用しているデバイスはSTM025QVT-001を使用しています。何気に使用可能な
MCUバス接続タイプのディスプレイモジュールの種類もどんどん増やしていってます。



あと、IJG JPEGライブラリを使用したjpegファイルのデコードの実験なんかも試みて
います。同ライブラリを使用したsirius506氏作成のmp3プレーヤーのフォトフレーム部を
そら氏がSH-2A向けに利用されたものをさらに参考にさせてもらいました。

いろいろ試行錯誤してようやくビルドが通ったのですがバイナリサイズが220kbyteも膨
れ上がってしまったのでフラッシュメモリ容量がMAX256kByteしかないSTM32F107系には
到底載りません。というわけでjpegデコード機能を乗っけるのはフラッシュ容量が豊富
なLPC2388やSTM32 Primer2向けのみ(将来的にはLPC1769も)になりそうです。

QVGAサイズの場合LPC2388ではjpegデコードに必要な最低限のRAMは1024*35=35840Byte
以上必要でした。RAMもそれなりに喰うようです。その際標準関数mallocがheap領域を
使用するのでスタートアップをいじりmakefile内で使用量を明示できるようにしました。


un
コツ
un
メカ
un
ワウソ
やっぱデコード->描画には多少時間かかりますね。他にもIJG JPEGライブラリはリサイズ
機能なんかもあってピクセルサイズが大きいものでも縮小してくれます。
今回使用した小動物たちの画像は大阪海遊館で撮影したコツメカワウソたちです。
まだ全く手を付けてませんが120MHzで動くLPC1769で同じことやるとどんだけ早くデコ
ードできるかちょっと楽しみです。



最後になりますが、少し前からTFT-LCDShield開発の折にtaobaoで液晶モジュールなどを
いろいろ購入していました。その中でひときわ目立ってた3.5inch、320x480の大解像度、
それでいて扱いやすいi8080インターフェースで接続できる液晶モジュールを紹介します。

un
un
デカイ!
un
で、デカイ!
un
72MHz駆動のSTM32F107VCT6だとSDカードから320x480,24bitの標準的なWindowsBMPファ
イルの一枚絵を読み取り表示するのに掛かる時間を測定したところ約360mSec掛かりました。
(全画面消去->SDカード読み出し->RGBデータ24bit->16bit変換->GPIO転送)
誰ですか900mSec以上掛かって遅くないかとか言いがかり付けてる人は(ビキビキ


普通これくらいの解像度になるとRGBインターフェースしかないのですがこのモジュールは
i8080のMCUバスで接続できるコントローラIC(ILI9481)が内蔵されていてAVR等のワンチ
ップマイコンでも手軽に扱えます(ただし16bitバス強制)。
まだタッチパネルが搭載されたモデルは一般に出回っていないものの、簡易でフォト
フレームを作成するのなら見栄えがあるものができると思います。



おや?aitendoにも似たようなものが…?(棒読み)
追:私のはFPCの形状・ピン間隔・外観が全く違う別物です!

Go to top of page