XMEGAを使ってみる

シリアルの動かしかたを数か月間分からなかったのを気に病むことはない!!ねむいさん
だっていないさんのブラのホックを外すことができるまでに9か月かかったのだから(キリッ

といいたいところですが何かしらの問題にぶつかった時にネットで検索してすぐ見つかる
レベルの他人のソースにあたる癖は止めてデータシートとエラッタシート等の基本的
情報は事前にしっかり読んで把握しておきましょうね。あと第三者が作った機械翻訳
バリバリ手抜きの日本語訳なんて当らずに原文を素で読める英文読解力付けましょうよ。
そういう指導ばっかしてたら一般には絶対降りてこない未知のエラッタがたくさん潜む
renesasとかのマイナーな品種のマイコンとかを実務で宛がわれた時に何も対処
できなくなっちゃって電子工作感覚でネット上のフォーラムで聞いて他人に笑われる
子を世に出しちゃいますよ!(ブーメランをかわしつつ)

電子工作の"遊び方"を教えるんじゃなくて電子回路設計する際の"考え方"を指導しましょう。



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

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



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

日本で比較的容易に手に入るのはATXMEGA128A1ですね、今回私もこれを使いました。
取り合えずいつものSPIのTFT液晶でMCUの情報を読み出し表示させるところまで…。

今回購入したXMEGAのチップリビジョンは"H"でした。リビジョンHでも
errataがまだわんさかあります。
このXMEGAが世代交代するころにはきっとerrataも無くなるでしょう(ヲイ

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



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

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

20101228追:
MCUバス接続タイプのTFTLCDモジュールを動かしたい奴は必ず読め!!11!



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
モジュールを制御する枠組み作ってしまえば容易なものです。

んでお約束のいつもの

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


…失礼しました…お口直しに小動物を…

↑ううむ、やっぱ画面が大きいってのは良いもんだ!?
 このモジュールもとても安いので複数個購入するつもりです…

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





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


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

あらよっと。

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

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



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


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


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

Go to top of page