いろいろ試す4

少し前、「」からメールをいただきました。ついにここまで刺客がきたかと内心
びびりまくってたのですが、そういった内容では全くなかったのでひと安心(おぃ
昔と比べて虹メが個人で動き回るということにだいぶ寛容になったのか、はたまた
いちいち目を光らせるのに飽きたのかはともかく、良い時代になったものですなぁ。
(いないさんのえろすフォルダを眺めつつ)

さて、先に述べた"メールの内容"というのはLPC2388向けのFreeRTOSデモのビルド
エラーの指摘のことだったのですけれども、少し前にCodeSourceryのバージョンが上
がったせいでFreeRTOS側のARM7依存部分にあるアセンブラマクロが通らなくなってしま
っていたのが原因です。現在配布されてるFreeRTOSV6.0.4以降では解消されている
のでそちらのソースと組み合わせてビルドするようにしてください。ビルドで詰まっ
てる人も多いようなのでこの情報は公表しときます。


●ARM関連とか
いつもの如く長い前ふりですがねむいさんがぼーっとしてるうちにも世間はものすご
いスピードで変わっていってます。Cortex関連もどんどん情報/ユーザーが多くなって
きましたがおまけについこの前もSTM32の新しいラインナップが追加されたりしてNXP
やATMELとさらにカチあう情勢になってきてますね〜。まぁ一般に手に入るのはず〜〜
っと先でしょうから(これにはすごく期待している)今あるものを駆け足で消化・学習しつつ
リリースを待ちたいと思います。

STM32関連の話題をもう少し続けます。少し前にペリフェラルライブラリがV3.2.0に
なっています
。今回はSTM32のValueLineの追加/CMSISのV1.3.0化とのことです。
そして案の定ライブラリのディレクトリ構成が変わってやがりましたので、こちらも
修正してメイクファイルに反映しました。ついでに言うとソース内のグローバル変数も
小変更されているので注意です。
現在おきばにて公開しているSTM32F107VCT/STM32 Primer2向けのソースはすべて
V3.2.0化してます。Primer2向けのFreeRTOSも古くなってますので近々更新予定です。

デバッグ環境も少し見直しました。前回の記事でやっけつVersaloonをこしらえたのです
がこれをSWDのデバッガ/ライタに機能を絞って(つまりほぼCortex専用)加工しました。
JTAGよりもとり回す線の数が少ないので、Cortex系の開発関連では重宝しそうです。

un
↑Etherpodとドッキング。ホントは画面奥にあるATXMEGA128A1とランデヴーさせる
 つもりだったのだが…。XMEGAの話はこの後に。

un
un
↑STM8SをRe-Discoveryして見た…(VersaloonはSTM8Sのファームも書けるから問題なし)。
この写真撮った直後STM8S部分とは"Detached"になります。




●AVR関連とか
少し前からちょっとづつATXMEGA128A1に浮気を続けてますが、ようやくSDカード+FatFs
の動作までこぎつけました。

un
↑おっきぃがめんはよいものだ…。今回の小動物写真はこちらからお借りしてます。

http://www.flickr.com/photos/ruth1066/ / CC BY-NC 2.0


un
以前ARMで行った読み込みスピードの比較をXMEGAでも。
 比較用のファイルは当時と同じものです。

んで、FatFs用のSPIをDMA化させようとしてず〜〜〜〜〜っと頑張ってきたのですが、
今現在のねむいさんの技術力ではどうしてもてなづけることができませんでした…orz
くやしい…でも…地道に経験を積んでいっていつかリベンジします!!!!

XEGAをいじってきた中で現時点で重要と思った点は…
1.VBAT端子が存在するXMEGAはATXMEGA256A3B等の末尾A3Bのデバイスに限られている。
 したがってATXMEGA128A1とかは外付けi2cなRTCの方が便利かも。
2.EBIに供給するクロックは64MHzまで設定できる。その時はPLLで64MHzのクロックを
 生成してEBIに、そのクロックをさらに1/2してCPUコアに供給する。
3.SPIはSlaveModeでしかDMAを利用できない。MasterでDMA使いたい場合
 はUSARTのMSPIモードを使う。MSPIモードの時もSPIと同じくSCLKは最大16MHz取れる。

こんな感じでしょうか…後に続く人が同じ部分で引っかからないように記録残しときます
現時点でのソースはこちらに…W.I.P.なコードなのでご利用は自己責任で〜…。

FPGA基板を繋げる試み(3PORT-EBIで接続)は時間を見て引き続き試行していきますが、
浮気はもうやめて開発の主軸を再びARMに戻して行くつもりです。
Embedded ArtistsのARM9ボード注文しちゃったし!

XMEGAを使ってみる3

Versaloon関連で飛んできた人はこちらへ


年度末になると何でか糞忙しくなりますね〜…私はというと企業研修で来ている知り
合いの学生の子(去年11月下旬からSTM32初めてあっという間にマイクロマウスまで
製作ってた!!)に私のブログの内容をして"ねむいさんていどひくい"と罵られたり、
お客さんの現場で生暖かい目で見つめられながらハーネス打ちかえたり、私より一回
り年下の弟が私より一回り年上の彼女連れてきたりするなかで隙を見てマイコンの
勉強をやってきてます…。


LPC2388やSTM32系のMCUで動かしてきた大きめのTFT液晶、EGO028Q02や
YHY024006AをATXMEGA128A1にも導入すべく準備を進めてきました。
前回、現行のATXMEGA128A1にはPORTLが存在しないため4PORT-EBIが実質上
使用不可能と書きましたが、メモリアドレスを2つ(アドレス線は一本)しか使用しない
上記液晶たちは話が別です。FPGAボードを接続する前の肩慣らしに先ず4PORT-EBI
でTFT液晶を制御する試みを行いました。

ATxmegaのEBIに供給されるクロックはシステムクロックの2倍なので最高64MHzのクロック
スピードで動作させることができます。高速のSRAMは恩恵を受けられるでしょうが、LCD
からしてみると早すぎです。read時だけウエイトを0->4に落とす等の細工をしています。
長々と書きましたが4PORT-EBIは無事機能して,YHY024006Aに画像やフォントを表示する
ことができました。

un
↑まだFatFs積んでないので容量の都合上このサイズの画像しか表示できないです。
 ァァ残念だー(棒

あとATXEGAで試してみたい機能はADC,RTC,事象システム,FatFs(SPIをDMAにする)搭載、
それと今回試したEBIを今度は3PORT-EBIモードで大容量SRAMというかそれが乗っかっ
たFPGAボードと接続する。そんな感じでしょうか。また、すz氏やいえなが氏も現在進行系で
XMEGAを触られているのでお二方の作品の完成もたのしみですね。










と、いつもならここで力尽きて日記が終わるわけですが…ていどたかい虹裏メイドを目指す
ねむいさんもうちょっと頑張ってみます!!次いつ更新できるか分からないし!




私も多分にもれずSTM8S-DiscoveryというSTM32ボードを購入しましたが、以前から目を
つけていたVersaloonという汎用JTAGライタ/デバッガに改造を試みました。

このVersaloonに使用されているマイコンはSTM32の48pin,ROM62kb,RAM20kB,ペリフェラル
としてUSBが存在する物のようですね。そしてSTM8S-DiscoveryにSTLinkとして乗っか
ってるSTM32F103C8T6はVersaloonになる条件をすべて満たします。

んでもっておあつらえ向きに書き換え用のJTAGの端子も出ているのでまずはUrJTAGで
様子を見てみました。

un
↑とりあえずJTAGKeyを繋げる…

un
↑ふつーのSTM32ですね〜…ちゃんとJTAGで見えます(ニヤ・・

次にOpenOCDからフラッシュのバックアップを取ろうとしましたが…

un
↑やっぱしダメか…

というわけで一度STM32のフラッシュを書き換えてしまうともう2度とSTM8SをDiscoverする
ことが出来なくなってしまうわけです。しかし!ねむいさんはSTM32のボードを購入した
つもりなので容赦なく消しましたオラー!!


次にVersaloon用の回路(後述のRelease1の回路構成)に作り替えます。必要なものは
12MHzのクリスタルです。STM8SにつながっているSWIMを構成している一部のピンは
VersaloonとDFUの動作を阻害するので必ず足上げしたりジャンパカットしてください。
注:基板の改造は必ず情報の1次ソースで提示されてる回路を参照してご自分で
判断を行ってください!!実験色が非常に強いのでここでは詳しく書きません!!


un
↑ねむいさんは横着なので基板からSTM32を外さずに無理やり上記の改造をしましたが
 真似される奇特な人は基板から外して別に組んだ方がいいですよ?
 ちょろっと出てるUEW線は用が済んで外したTDIとTDO。
un
↑使わなくなったSWIMのピンはDFUモードに入るためのモード設定ピンに再利用しました。
 中途半端に起立しているチップ抵抗がやっつけ感漂う…

VersaloonはDFUによりセルフアップデート出来る構成をとっています。それに倣って最初
はDFUを書き込みます…。STM32F107系に慣れてしまった身ではとてももどかしいです。
JTAGで書くに越したことないですが、持ってない人は必要なピンだけジャンパ引き出して
システムメモリからブートして書き込むって方法
もあります…。

un
↑DFUが立ち上がりDFUDemonstratorが立ちあがったところ。
 ここまで来たら勝ちです!

現在、Versaloonはいくつか種類があり、製作者のSimonquan氏のページからソース、回
路図、ホスト側プログラム、OpenOCDへの対応方法などの情報はすべて提供されています。
今回私はRelease1の回路を構成しRelease1用のファームをビルド、そしてDFU経由で
Versaloon本体を書き込みしました。

un
un
↑出来上がったVersaloonを別のSTM32ボードと接続して、vsprogにてJTAGモードとSWD
モードそれぞれの方法で認識させたところ。

un
↑vsprog(gui)で書き込みもできます。STM32だけではなくAVR/MSP430/PSOC/STM8Sも
 書き込めるようです。

un
↑SWDに対応するパッチを当てたOpenOCDを使用してSWDでデバッグ。

今は動作確認の為のやっけつの仮組ですが目的のSWDで使えそうなのがわかったので、
STM32を別の変換基板に移し替えて汎用のJTAGデバッガ/ライタに仕上げるつもりです。

今回の実験に使ったVersaloon用のDFUとVersaloon本体のプログラムをこちらに。非常に
実験色が強いので完全自己責任のご意見無用とさせてもらいます。

Go to top of page