ARMの開発環境を作っている
オーバークロックの石は2.6Vでも動く(4/10/09)
SDカードのLPCMプレーヤーのプロジェクトは一段落した。今は今後のために現用のリチウムバッテリーの長期テストをしている。満充電のあと、プレーヤーを動かした時間をこまめに記録し、そのときの電圧を測った。LEDをつけていない実装版は、消費する電流が音楽再生中で50mA程度である。バッテリーの容量は、830mAhとあるので16時間は持つ見込みである。ただこの公称の電池容量というのは連続放電であり、現在のテストのように通電と待機を30分くらいづつ繰り返すような使い方だともう少し伸びるかもしれない。
久しぶりに方眼紙を取り出し、小学生の実験よろしく電圧をプロットしていく。これはこれで結構はまる(やめられなくなる)。いつ過放電前の3.7V近辺の急峻なカーブがでてくるかわくわくしながら測っていくと時間がたつのを忘れる。 放電開始の4.1Vから電圧は少しづつ下がっていき、定格の3.7Vのあたりはむしろ電圧低下が少ない。あれ、測定間違いかといぶかっていると、突然、堰を切ったように電圧が下がり始める。3Vを下回ったあとは分単位で放電下限電圧の2.5Vに近づく。非常にドラマティックな放電カーブだ。
結局、持続時間は少しづつ休んで動かしていたため、予想よりかなり長い間電池が持つことが分かった。想定では、17時間足らずの持続時間だったが、実際には19時間以上動いた。しかも20Mhzのオーバークロックの石は電源電圧が3Vでも正常に動く。ただ3Vを下回るとLCDは一気に薄くなり音が歪み始める。さすがに2.6V以下になるとMCUのクロックが動かなくなった。これなら過放電の心配はなさそうだ。とはいえ、音が出なくなることに気がつかなければ過放電させてしまう危険性はある。
お試し版の開発環境には乗らない(4/11/09)
電池テストの傍ら、次のプロジェクトとして考えている雑誌付録で2つも揃ったARMプロセッサーの開発環境を整える情報収集をウェブでやっている。雑誌に必ずついているお試し版の商用のコンパイラーや開発環境は、もとから使う気はない。お試し版は無料だが、フラッシュサイズが限定されており、苦労してインストールしてもすぐに不満が出るのは見えている。
これらの正規版が1万円内外なら、やっと慣れた環境を維持するため買ってしまいそうだが、幸か不幸か正規版は、安いものでも5万円以上、大抵の製品は十数万円のレベルだ。企業で使うならともかくとてもアマチュアが気楽に買えるレベルではない。雑誌の付録でプロセッサーを手に入れる対象は殆どがアマチュアか学生であろう。お試し版を無料で提供して正規版を買わせる魂胆なら、こんな料金体系は間違っている。余りうまい商法とは思えない。
ソフトを有料にすれば、サポートに責任が生じる。まともなサポートをすれば、10万円でも下手をすれば元がとれないのは理解できる。割り切ってオープンソースのような無サポートの廉価版を出せば良いのだ。そうすればもっと製品は売れると思う。ウェブに情報が溢れている時代である。ましてやGNUという強敵と戦うには余りにも芸がなさ過ぎる。このままでは有料の開発環境の市場は狭まっていく一方だろう。
こちらも当初から当然GNUプロジェクトのお世話になることにしていたが、基板を手に入れた頃は、オープンソースの開発環境はソースからビルドするような情報しかなく、少し手ごわいので様子を見ていた。
ところが、PCMプレーヤーの開発が終わって改めてARM用のオープンソースの開発環境を調べてみて驚いた。いつの間にか沢山の環境の情報がウェブに溢れている。しかも、いわゆる人柱と呼ばれる先駆者がウェブ上でインストールの状況を報告してくれている。ありがたいことである。
しかし、これが余りにも種類が多く目移りがしてなかなか決まらない。中身は皆同じgccらしいが、ちょうどLinuxが商用ベンダーによって多くのディストリビューションが生まれたように、数多くのプロダクトがでている。どれが良いのかはウェブで見る限りでは良くわからない。
さらに、ファームを書き込むツールになるともっと種類がある。デバッガーにもなるJTAGインターフェースを使った本格的なものから、単純なパラレルやシリアルライターまでありこれも何を選んでよいのか迷ってしまう。FatFSでお世話になっているchaNさんも、最近、この雑誌の付録基板の応用を紹介されている。何と、自前のプログラマーとシリアルで書き込むライターの回路図まで用意してある。とても簡単そうだ。
これに強く動かされたのだけれど、定番のJTAGインターフェースをマスターしてみたい気分がまさり、今度は市販の安いJTAGインターフェースを買ってみることに決めた。これも自作できそうだが、不確定要素を減らすためこの際は我慢して既製品を買うことにする。1万円以下というのが私の場合このあたりのトレードオフのようだ。
それに、統合環境で名高いEclipseも使ってみたかった。で、ウェブの紹介記事の中でも、一番詳しいここの記事(http://homepage3.nifty.com/zus/index.html)を頼りにターゲットを定めて開発環境を作っていくことにした。このページは実に懇切丁寧でとても有難い。このまえのCortex-M3の開発環境まである。
Eclipseでのビルドまで成功(4/12/09)
オンチップデバッガーのZylinプラグインのインストールにてこずったが(サイトのURLが変っていた上に、一時不安定で超低速のダウンロード)、何とか、Eclipseのコンパイル環境は出来上がった。おそるおそるサンプルのソースをプロジェクトにしビルドしてみる。おお、問題なく成功した。Elfファイルが出来る。ファーム書き込みは、このサイトでは、OlimexのTINY-USB-JTAGケーブルを使うことになっているので今は、これから先は進めない。
そのかわり、前回のCortex-M3のとき雑誌についていたCD-ROMにある STマイクロのライブラリとデモプログラムをEclipse下でコンパイルしてみた。Makefileとリンカースクリプトは、デモサンプルのものを丸々流用する。しかし、これは通らなかった。
何故か、関数未定義のエラーが出る。プロジェクト内にはその関数を定義するヘッダーファイルや、ソースファイルが入っているのに認識しない。Makefileは他からの借用で、恐らくライブラリのパスの問題だと思うが、Makefileはうろおぼえの知識しかないので手が出ない。EclipseにはMakefileを作ってくれるモードもあるらしいが、ここも手探りでなんとも先に進めない。まあ、こうやって模索しているうちに少しづつ分かってくるものだ。深追いをしないで、これ以上の追求は諦める。
OlimexのARM-USB-TINYケーブルを買ってきた(4/14/09)
お世話になっている開発環境インストールのサイトが採用しているJTAGインターフェースを買ってきた。始め通販で注文しようと思ったら、行きつけの千石電商で販売していることを知り、仕事の帰り早速買ってきた。\6825。USBのJTAGインターフェースとしては安価だが、がた老AVR(ARM?)研究所の投資レベルとしては決して少なくない出費だ。
このTINYの上位機種のARM-OCDと全く同じ仕様と思われるJTAGケーブルの自作記事が2008年6月のデザインウエーブ誌に出ているが、今回は安全策をとった。前にも書いたように自分は余りデバッガーを使わない。人の書いたソースならともかく、自分が書いたコードのデバッグにソースコードデバッガーを持ち出すのは抵抗があるからだ。しかし、今度は新しいチップだ。用心に越したことはない。それに、組み込みの定番のJTAGインターフェースに習熟しておきたいこともある。FPGAのJTAGパラレルインターフェースは自作してファームの書き込みに使ったけれど、それきりになっている。
TINYという名前通り、DSUB25ピンコネクター程度の小ささで、ケーブル側がUSBソケットBタイプ、ソケット側が20ピンのJTAGインターフェースになっている。早速分解したいところだけれど、Olimexのシールが張ってあって保証が切れることになっている。分解は動いてからにしよう。
ターゲットマシンの準備を全くしていないことに気がついた。とりあえずは直近の付録ARMのLPC2388基板を動かすことを考える。この基板、残念なのはせっかくRTC(リアルタイムクロック)用の石がつけられるのに電源が主電源と一緒に配線されてしまっていて、バッテリーバックアップができないことだ。時計はSDカードの書き込みなどファイルシステムには欠かせない情報なのだが惜しい。基板を確かめてみたが、バッテリーバックアップ電源ピンの配線はチップの下のパターンになっており改造は不可能。ピンを切って配線できなくもないが、ルーペを見ながらの半田付けは困難を極めそうだ。
| 固定リンク
「ARM」カテゴリの記事
- 心電計プロジェクト:スケールが出ると心電計らしくなる(2015.01.08)
- 心電計プロジェクト:TFT液晶に念願の心電波形が出た(2014.12.18)
- 心電計プロジェクト:STM32F103の心電波形表示で悪戦苦闘(2014.12.03)
- 心電計プロジェクト:CooCoxでARMの表示系ソフトを開発する(2014.10.16)
- 心電計プロジェクト:表示部のARM基板の開発環境を一新する(2014.09.19)
コメント