XMEGA使ってみる

シリアルの動かしかたを数か月間分からなかったのを気に病むことはない!!ねむいさん
だっていないさんのブラのホックを外すことができるまでに9か月かかったのだから(キリッ
むしろ初期化コードやツールチェインのバージョン間にわんさか埋まってるじらi…
…まぁいいやねむいさんの学習目的だし…

とは言いつつも私が公開してるプログラムが"コアダンプ吐いてビルド止まった!"り
"パスが通ってるのにエラーになったりしてビルドができない!"ていうコメントされて
るのを他の方のtwitterやブログ等で目の当たりにするとさすがに気が咎めてき(ても
私自身打つ手がなにもなかっ)たのですが、数多に存在するうまくいかない原因のうちの
一つをめっけました。makefile中のワイルドカードの指定がマズかったようです…。

いままで公開してきたものほぼすべてに波及してたので何とか時間見つけて修正して
きました…。LatticeのAVRコアだけはツールのライセンス期限切れで動作確認が出来
てませんがこちらも追々と…WinAVR更新してなかったら気づきもしなかったのか私…



長い前振りになってしまいましたがWinAVRを20100110に更新したついでに今まで死蔵
してたXMEGAを使ってみました。なんと今回がねむいさんのぶろぐ初のAVRカテゴリ!
使用にあたってすz氏O-Famiry氏、そしてSTM32のdfu作成プログラムでお世話になって
いるシバ某氏との使用記を参考にさせてもらっています。
最初に言っておくとすでにARM使いな人はわざわざXMEGA使う意味無いのとAVRから
ステップアップして規模のおっきいマイコン使うこと考えてる人はプログラムの組みや
すさ考えると"やっぱARMっしょ"になってしまいますがそれは端に置いておきます!

日本で比較的容易に手に入るのはATXMEGA128A1ですね、今回私もこれを使いました。
取り合えずいつものSPIのTFT液晶でMCUの情報を読み出し表示させるところまで…。
un
今回購入したXMEGAのチップリビジョンは"H"でした。リビジョンHでもerrataがまだわん
さかあります。このXMEGAが世代交代するころにはきっとerrataも無くなるでしょう(ヲイ

ホントはでかいフラッシュ領域を頼りに絵とか日本語フォントとかもフラッシュに焼き
こんで表示したかったのですが、フラッシュ領域がRAM&I/O空間と分離されているのと
WinAVR固有の配列確保の時のサイズの制約のおかげでトリッキーにする必要があり、
うまく表示できるまでかなり時間喰われそうなので今回はパス。
せっかく買ったのがもったいないのですけど他の方が優れた作例を出されるまで再び
塩漬にしておきます…。



あと忘れるとこだったけど、冒頭のビルドエラー修正の"ついで"でSTM32F107VCT6用の液晶
表示プログラム
前回使用した2.4"と3.2"用ドライバ(16bitアクセス)を追加しているので
現物を所持していて興味がある人は試してみてくださいね。

aitendoさんのTFT液晶モジュールを使う2

aitendoさんから抵抗膜式タッチスクリーン付きの2.4inchTFTモジュール、YHY024006A
が販売されました。そろそろコントローラIC付きのおっきい液晶をと考えていてので
ねむいさんはすぐに飛びつきました!(変換基板込みのやつを買いました)
この液晶モジュール単体は某中華製エミュレータ端末(コントローラICが同じだけかも)
やDSO nanoにも使用されているそうです。

データバスは8,16bitが選択できると書かれています。以前のSPI接続TFTモジュール
中華クオリティはよく知っていたはずですが最初安易に8bitバスで挑戦して敢え無く撃沈
ちゃんと16bit接続でやり直しました。使用したMCUはもちろんSTM32F107VCT6です。
他のマイコン使うときは8bit分しか接続できなくてもラッチかましてあげれば16bitに
仕立て上げられるんで速度の低下に目をつぶれば何の問題もないでしょう。
変換基板にはIMOとかIM3とかバス幅切り替えられるようなシルク表記がありますが
どこにもつながっていないです!。
20100121追:vvtune氏が8bitバス接続でアクセスする方法を見つけられています。
これは…ありがたい…!


TFTの動かし方はSTM32に繋いでサンプルプログラムをSTM32用に移植(コピペ)して
そのまま"いっせーの ポン"で終了です(はしょるはしょる)。この辺は一度TFT/OLED
モジュールを制御する枠組み作ってしまえば容易なものです。

んでお約束のいつもの
un
↑私は新しい液晶モジュール手に入れたら必ずこれやらないと体の調子が…
 例の如くびぃぶろ君に怒られるので鮮明な画像は乗せることはできません(棒


…失礼しました…お口直しに小動物を…
un
↑ううむ、やっぱ画面が大きいってのは良いもんだ!?
 このモジュールもとても安いので複数個購入するつもりです…

このモジュール使ってDSO nanoでっち上げられるので、107系使うためにCQ-STARM基板
から外したSTM32F103VBT6を使用して試してみる価値はありそうですね。





てわけで今回はこれにて!…と言いたいところですが実はかなり前に別経路で
中華製TFTモジュールを購入していたりする…しかも5980円も払って!!!
un

…悔しいので涙目になりつつもこっちも表示テストしてみます…
コントローラICは先のモジュールのものと同じメーカーのILI9320。ILI9325と酷似したレジ
スタ構成でしたがデバイスの叩き方は微妙に違っていました。コントローラICが同じでも
モジュール内の結線の違いで制御方法がだいぶ変わってきたりもするので吟味は必要です。
しかし提供されているサンプル片手に"ゲタ合わせ"しておけば後にやることは同じです。

un
あらよっと。

STM32 Primer2にFreeRTOSを乗せる2 -液晶表示のタスクを追加する-

あけましておめでとうございます(した)。
自分の誕生日(1/6)の準備してたりなんやかんやであっという間に10日になっちゃい
ましたね。忙しくてなかなか手が割けなくなってしまいましたが、今年もお気楽に、
たとえば"砕けた表現やアニメ調のイラストが目に障るので授業で資料として使いやす
いようにブログの記事を修正してほしい"って教育関係者とみられる方からまたクレーム
もらうくらいの感じでやっていこうと思います。これがゆと(ry



それはさておきSTM32 Primer2にFreeRTOSを載せる試みを進めていっていますが、
今回はLCDのタスクも追加しました。さらに、ProjectC3氏のフォントドライバも使いや
すく汎用性を上げて実装しています。フォントは8~16ptまで対応で今回のデモには
フリーのM+フォント(10pt)と美咲フォント(8pt)をCヘッダファイル化した状態で使用
させていただきました(デフォルトはM+フォント)。


簡単に文字が扱えるようになると、出来ることの範囲もぐっと広がりますね〜。引き
続きFreeRTOSの動作を勉強しつつSTM32 Primer2で未使用の機能に手を出して見よう
と思います。また、STM32 Primer2とは別にもう少し大きい液晶を使用したデジタル
フォトフレームの構想なんかも練っている最中です。

un
↑だんだんサマになってきた!?

仕事納め

何とか時間取れました…なんか忙しくってホントに年末って感じがしませんね…

それはさておきaitendoさんのSPI液晶、時間を見て少しづついじってきましたが、ようやく
使えるようになってきました。使用の上での分かったことをいくつか…

●この液晶モジュールはSPI接続でしか使えない。
●SPI接続だと書き込み専用でしか使えない。よってシリアルINは要らない。
●バックライトLEDは3つ。一つ当たりの電流値typが15mAなので
 全部で45mA流す必要がある。
●3.3V系でも使用可能だがやっぱ単一だとやっぱ暗い。バラつきを考えて定電流
 制御ができるDCDCコンバータICを使用するのが良いでしょう。
●45mA流してもまだ暗いんで55mA流すとそこそこかしら。
ZY-FGD1442701V1と比べると青みがなく自然に近い色です。
●少ピンでのマイコンシステムには最適でしょう。しかし変換基板が…

といったところでしょうか。変な癖も無く、使いやすい液晶だと思います。


んでもってこのSPI液晶を使用した応用編…

un
↑以前紹介したEtherPodにFreeRTOSを乗っけたときは外部表示機能がなかったのですが
今回SPI液晶を表示機として使用してみました。文字の表示法もセクスィ部長氏ProjectC3氏
のページから勉強させてもらいました。
フォントはフリーの美咲フォントを使用しています。他のサイズのフォントもいろいろ試
してみようと思います。

un
↑実は日本語フォントは上手くいかなくでず〜っと詰まってたのですがやっと一つの壁を
超えた感じです。さぁつぎは避けまくってるUSBデバイスだ!…はまだ無理なので追々と。



と、今年はこんなところで…。仕事の中でマイコンや回路設計を覚えていってその折にこの
ブログも始めて、さらに他の方とも共同で作業をするようになって来ると一人で制作
している時は見えてなかった部分がいろいろ見えてきたりもしました。
この業界に身を置く限り、常に新しいことの勉強勉強の連続の日々なわけですが、これからも
気力の続く限りずっと続けていきたいものです。

女主人超多忙に付き

現在死ぬほど忙しいです。
駆け込みの案件が何個かあって、まぁ年末は去年もこんな感じでしたけど…。

年末までの短い期間にSTマイクロ以外のCortex-M3のマイコン攻勢が勢いを増してきました
ね〜。STマイクロがこのまま逃げ切るのか、はたまた他のメーカーがシェアを奪うのか気
になるところです。どこも新しいのだすのはいいんですけど必ず付きもののerrata何とかし
てほしいなと思ふ。


話は変わりますがaitendoさんでSPI接続のTFT液晶モジュール、H161T01が販売されていま
す。詳細は不明な点が多いのですが購入して試してみました。変換コネクタも必ずいるので
実質1400円しますね…。この前のが安価で高性能すぎるのかしら。

データシート見る限りではパラレルとシリアルでつなげられるように見えます。しかしパラ
レル制御に必要なRD,WR,(68k系ならEもかな)がどこにも見当たりません。したがってシリアル
でしか制御できないようです。"ウソつくんじゃねーパラレルでもできるぞ"っていう方は
やり方教えてください…。

今回"も"電源電圧+3.3V単一でも可能ですが、バックライトLEDのVfが+3.7Vです。まともに
使うためには5V供給するなり昇圧するなりの工夫が必要でしょう。今回は制御だけが目的
なので3.3Vのままで…。

un
というわけで動かしてみました。
データシートの額面通りだと50nSec(=20MHz)のクロックサイクルがtyp値となっています。
STM32のIOは18MHz以上のトグルスピード出せるのでいつもの如く組むのが簡単なソフトSPI
で。表示速度は以前のと比べると少し劣りますがストレスは全く感じません。さかさまに
なってるけど表示方向としてはデータシート通りになっていて正しいのでしょうか???
まぁいいや…。

un
ハイお約束。めくるめくいなちゃんの肌色世界。ここは未成年の学生さんでも楽しめる
超健全なぶろぐなのでちゃんとピンぼk…やめて石投げないで

un
…大変失礼しました。こちらはカナメ・ワタツミ氏からのいただき物の私(ねむいさん)の
イラストです。使わせてもらいます!



ということでリセット線すら省けば最低CS,D/C,SCLK,SDATAのたった4本で動くので小ピン
のマイコンとかでもきれいな画像が扱えるようになるでしょう。aitendoさんが専用のキャ
リーボード出してくれたらもう一寸売れると思います(オイ




さらに話は変わりますが多分今日ので今年最後の日記になると思います。来年も安泰に
続けたいものです…もう少し時間に余裕が欲しいですな…。
んでもってCodeSourcery G++の新しい奴(4.4.1系)で少し前のソースコードをビルドすると
ビルドできなかったりビルド通ってもまともに動かなかったりすることが分かったので
(特にFreeRTOS絡み)そちらの保守の対応と説明にも時間がとられそうです…じかんg(ry

STM32 Primer2にFreeRTOSを乗せる1

年末に差し掛かって糞ほど忙しくなっています。そんな中でも合間を縫って更新ッ…!


前回はSTM32 Primer2上にRIDEやCiecleOSなぞガン無視のBARE-METALな自分環境で
USBマスストレージクラス対応のミニフォトフレームなんか作ってたわけですが、今度は
すっかりおなじみのFreeRTOSを乗せてちゃんとしたシステムを作ることにします。
こちらもフォトフレームの制作時と学習を兼ねて段階的に進めていくつもりです。

えーと先にもいいましたがSTM32Primer2のコミュニティサイトに既に移植されたのが
ありますが
それはあえて一切視界に入れない方向でやっていきます!!!!

un
↑後発だから一味違う!!1!
まずは第一歩、以前CQ-STARM向けに一番簡単なのをこさえていたのでこれを2Primer2
(STM32F103VET6)向けに移植を…。プログラムの内容はLEDのタスクだけを動かすとい
ったごくごく単純なものです。しかーし!!コミュニティにあるのと違う点はFreeRTOS
が最新なのと真中のボタン長押しで電源が切れるという革新的n
…や やめて石投げないで

このプログラムがこれから先のFreeRTOS+STM32Primer2のたたき台になります。今度
こそ横着しないでRTOSをまともに使いこなしていこうとおもいます。ついでにUSBもち
ゃんと学習していきたいとおもいます。今度は本気出す!



また、↑のと並行してNuttXという別なフリーのRTOSの勉強も初めています。これはGenie
氏が手掛けているEtherPodというSTM32F107が乗ったマイコンモジュール(まだ試作段階
ですが)に標準で搭載され、またそれに合わせた様々な機能がサポートされる予定に
なっているのでEtherPodと併せて非常に注目すべきOSとなるでしょう。

un
↑…実はすでにFreeRTOS+webserverのデモまで私が動かしててさらにこれのロー
 レベルドライバもこしらえてる最中だったりしたり

STM32 Primer2をBARE-METALで使ってみる(終) -フォトフレームを作る-

大きなバグ出しも終わってやっとこ使用に耐えるものが完成です。上位層の作り込みは
Chan氏のFatFsやターミナルプログラムの凡例のおかげで開発期間の大幅な短縮が
できました。そしてCircleOSに頼らないBARE-METALな試みも今回でいったん終了です。

昨今の電子工作は回路検証はもちろんケーシングも非常に重要なファクターになって
いますが、もとからケースに入っているSTM32Primer2はとてもありがたいですなぁ。
…ってことで、


以下今回製作したフォトフレームの使用例を…
※20091226:電源監視機能を強化しました。

※20091126:USB-MSC(マスストレージクラス)機能を追加しました

un
↑4+1入力キーの"真ん中"を押して電源投入。これはハード的に処理されています。

un
↑電源投入->タイトル表示後はSTM32Primer2に挿入されているSDカードを読み込み、ファ
 イラを起動します。ファイルシステムはFatFsを使用しFAT12,FAT16,FAT32のフォーマット・
 およびロングファイルネームが使用可能です(画面上の表示は8.3形式ですが)。

un
↑ファイラ画面の基本操作は↑↓がファイルポインタの移動、→がEnter,←がCancel
 に相当します。

un
↑画像はbmp形式が表示可能で128x160pixelまでの物が使用できます。それより小さいサ
 イズは、真ん中合わせで表示されます。画像はひねもすのたり氏画の私(ねむいさん)。
 …びいぶろ君が欲情すると困るからピンボケ!

un
↑…すみません…お口直しに癒し系小動物を。otter-beerは結構有名らしいです。

un
↑動画はimg形式。img形式のファイルは同梱のChan氏謹製の付属ツールでaviから生成
 できます。再生中→キーで一時停止、その後↑↓キーでコマ送り、戻しができます。
 上の画像のは虹裏で活動している名無しの絵師さんの動画をお借りしました。

20091126追加
un
↑USBマスストレージモードに入るためにはUSBケーブルをSTM32Primer2の
 "STM32"側のコネクタに挿し、ファイラのルートディレクトリでLeftキーを押します。
 LCDの画面が暗転し、PCにディスクドライブがマウントされたら成功です。

20091126追加
un
↑MSCモードからファイラに戻るためにはLeftキーをもう一度押します。ディスクドライブが
  アンマウントされ、ファイラの画面に戻ります。、


un
un
↑UART2からの通信にも対応。上記結線(TTLレベルな)でホストPCと接続。

un
↑ホストPCのターミナル(230400bps,8,N,1)上からESCキーを押すことで、ファイラは
終了し、FatFsのUART上のモニタプログラムが走ります。

un
↑現状では時刻設定はUART上のモニタプログラムからのみ可能です。

un
↑電源OFFは"真ん中"のキ―長押しで行います。この画面が出てからキーを放すと
 FETスイッチが切れ電源OFFでとなります。

と、こんな感じです。ミニフォトフレームに機能を絞っているので以下に挙げる機
能は基板上には存在しますが使用していません。後は各人がソース変えてお好みで
付け足してくださいね(ひでぇ)。
*Not Used Devices
-Touch Sensor
-3D MEMS Sensor
-I2S Peripheral
-IrDA

また将来搭載予定の機能は以下に。
*Future Features
-USB-MSC 実装済
-LCD-Backlight Adjustment
-Adjustment Configuration which does not rely on host PC.
-Improve Backup Register Function.
-Improve Power Management 実装済
最優先はUSB-MSC。SDカードの抜き差しは面倒ですもんね。
USB-MSC実装しました。

んでもって修正すべき項目は以下に。
*Known Issues
-Cannot execute program if there's no Li-Ion Battery jumper. Fixed.
-Cannot execute backup function.
現状Li-Ion電池のジャンパしてないとNo Batteryと判断されてしまいすぐに強制shutdown
されてしまいます。電源電圧の上手い監視方法見つけたらこちらはすぐに修正します。
修正済


ということでまだまだ手を加えるべき点はありますが、興味を持たれた人は試して
みてくださいね。ご利用は自己責任で〜

un

Go to top of page