マイコン工作実験日記

Microcontroller を用いての工作、実験記録

まずはクロックから

2013-04-28 17:52:59 | SAM4
ようやくとSAM4Lでの開発作業を開始しました。SAMシリーズの名前を冠していても、これまでのSAM7やSAM3S/SAM4Sとは内部の構成が全く違っているので、コツコツとデバイスドライバを用意する作業を進めていくしかありません。もちろんATMELが提供してくれるライブラリもあるで、それを使えば自分でドライバを作る必要なんかないわけですが、苦労してドライバを自分で作るのも楽しみの一部なので、やっぱり自作する道を選んでしまいます。

SAM4Lではクロックの構成もこれまでとは随分と違っています。32KHzのRC発振器で動き始めるのは同じですが、これ以外にも115KHzRC発振器、4,8,12MHzRC発振器、80MHz RC発振器と内蔵RC発振器だけでも4種類も用意されています。アプリケーションの用途や使用する周辺機能での要求に応えるためにこれらの発振器が用意されているのでしょうが、具体的にどのような用途を想定しているのか、まだわからずにいます。

当面はいつものようにUSB CDCでつなげる環境が欲しいので、USB CDCドライバの開発が最優先事項です。USBを使うためにはクロック精度が必要となるので、おのずとクロック源としては内蔵RC発振器ではなく外付けクリスタルが必要となります。12MHzのクリスタルを使って、これをPLLを使って192MHzを生成。さらにこれを分周して作った48MHzをUSBクロックならびにCPUクロックとして使うことにします。

SAM4LではSCIF(Serial Control Interface)を設定することで、クロックの設定をおこないます。SCIFはGCLK0からGCLK11の12個のクロック生成ユニットを持っており、それぞれクロック源と分周比を指定することで異なる周波数のクロックを生成して周辺機能部分に供給したり、マイコンの端子から出力することができます。GCLK7がUSBのクロック源となるので、こいつを設定してやらなければならいということをようやくと理解。しばらく地道な作業が続きそうです。

移籍

2013-04-22 12:27:59 | Weblog
YouTubeのEnergy MicroのチャンネルでAlf-Egil BogenがATMELからEnergy Microに移籍したことを知りました。確認してみると、すでに2月に発表されていたようです。



Alf-Egil BogenはAVRの生みの親のひとりとして知られる人のようです。良く知られているようにAVRはノルウェー生まれなわけですが、Alf自身はこの何年かシリコンバレーで過ごしていたようで、これを機会にノルウェーに戻るようです。わたしがこの人の名前を知ったのはつい昨年のこと。やはり、YouTubeのATMELチャンネルでした。一連の動画で、AVRの昔話を語っています。



ATMELではフラッシュマイコンのマーケティング担当を担っていたようですが、Enery Microでも同じ役職(CMO)を担うというのですから、ATEMLにしてみたら看板を失ったようなものでしょう。

100周年

2013-04-21 15:15:15 | Weblog
日頃利用している京王線が開業から100周年を迎えたということで、関連イベントを実施中。そのひとつとして昨日開かれた「若葉台車両基地見学会」に行ってきました。この見学会、例年は秋に実施されるのですが、今年は100周年を記念して春にも実施することになったようです。見学者の安全を計るのも大変なのでしょう、あまり積極的には宣伝しないイベントとなっており、応募/招待人数も限定されているようです。午前/午後の2回、各回とも2時間見学時間が設定されていますが、どちらかの選択となります。今回は、天気が怪しくなってきたなか、午後の部に参加。



100周年記念イベントということで、例年の見学会とは異なった趣向が用意されていることを期待して行ったのですが、入り口からして期待どおり。まずは、見学会の記念入場券を渡されました。写真上のボールペンは、帰りにもらえた記念ボールペン。



会場入り口では昭和時代の制服を着た駅員さんが入場券にパンチを入れてくれました。駅員さんの後方にバスが見えますが、今回の見学会は京王バス関連の展示もあるところが、いつもと大きく違うところ。






入り口そばの線路には保守用車両であるマルタイが配置され、さらにその奥には総合高速券検測車(DAX)が。。マルタイのデモは見学会の定番メニューなのですが、DAXが見れたのはわたしは初めてでした。





DAXのさらに奥の車両は、ファンモンのヘッドマークを付けた京王八王子行き。八王子出身の縁から京王の100周年記念広告にも登場しているファンモンですが、こちらのヘッドマークは2年程前に作製されたもの。当時は実際に見る機会がなかったので今回みることができてラッキー。



整備工場内の一角には、鉄道とバスの歴史を振り返る展示コーナが用意されていたのが、いつもと違うことろ。「金子」というのは現つつじヶ丘駅の旧称ですが、改称されたのは1957年とのことなので55年以上前のヘッドマークということになります。



工場内のメイン・イベントは、30tクレーンによる車体吊り上げデモです。
定番メニューなんですが、何度見てもカッコいい



あっという間に2時間が過ぎてしまって、見学会終了。続いて、スタンプラリーのスタンプをゲットするために調布に移動。



専用スタンプ帳は金曜日に入手してあったのですが、これが最初のスタンプ。



今週は笹塚に寄って、もうひとつスタンプをゲットするつもりです。100周年記念入場券も14日に発売されたのですが、買い忘れていました。各駅1,000枚とのことなので、メジャーな駅では早々と売り切れたことでしょう。若葉台にはまだ残りがあったので一枚購入できましたが、調布はやはり売り切れていました。


洗練されてきた

2013-04-19 13:04:37 | Weblog
近頃の秋月の新製品を見ていると、説明書がずいぶんと綺麗で読みやすくなってきたなぁと感じます。付属する説明資料といえば、手作業でデータシートを切り貼ってコピーしたというものが多かったことを思い出します。手作業のせいか紙面に対して文面が傾いているし、コピーのせいで文字もぼやけてつぶれかけている箇所もある。そして最後のダメ押しとして、黄色と赤でのカラー印字が読みにくさに拍車をかけていたものです。

通販ページにもそんな状態の資料をさらにスキャンして読みにくく仕上げたものが載っていたものですが、いまでは電子的に処理することですっかり綺麗にまとまったPDFになってきましたね。自社製品の説明書も綺麗になってきました。このモジュールなんかもそうですが、これだけ見るとJRCがモジュールを製造しているのかと錯覚してしまいそうです。説明書には秋月の名前をちゃんと入れた方がよろしいのではないでしょうか。

A基板で始めるSAM4L

2013-04-16 00:39:50 | SAM4
いろいろと手間取りましたが、結局QFPパッケージのSAM4LS4Bを入手できましたので、ようやくとSAM4Lを使い始めることにします。今回は変換基板を使うこともあり、久しぶりに秋月A基板を使うことにしました。まずは動かすのに必要最低限の部品で組み上げて基本動作確認を進めます。





いつものようにUSB給電動作。電源周りとJTAG(SWD)だけ配線してあります。空いているスペースには後ほどWCA-009やアンプを追加してゆくつもりです。たったこれだけの配線でも、ユニバーサル基板を使っているとVCCとGNDの配線を面倒に感じてしまします。秋月でもパワーメッシュユニバーサル基板を作ってくれないかなぁ。

SAM4Lではコア電源を生成する内蔵レギュレータの動作としてスイッチングレギュレータのモードと、リニアレギュレータのモードの2種類をサポートしています。入力電圧VDDINが2.3V以上ではスイッチングレギュレータの方が効率が良いのでオススメということになっているのですが、外部部品としてインダクタが必要となるので、今回は追加部品の必要が無いリニアレギュレータのモードで動作させることにしました。

A基板を使う都合上20ピンのJTAGコネクタを配置していますが、実際に使っているのはSWDの線だけです。まずはSWDで見えることを確認するのが動作確認の第一歩。SAM-ICESAM-BAでつないでみるといのが常套手段なのですが、SAM4Lのデータシートを確認してみるとSAM-BAのセクションがありません。以前使ったSAM7A3と同じようにROMブートの機能が無いのでした。そこで今回はJlink commanderを起動して接続確認。



無事にSWDでつながりました。Cortex-M4という表示を見て、改めて自分が初めてM4を使い始めようとしていることに気付かされました。コアがM4とは言っても、SAM4Lは低消費電力が売りなのでクロック速度は48Hzまで。SAM4Sと同じくFPUオプションは無し。SAM4SではサポートされているBit-banding機能もSAM4Lには無いし、SRAMも32KBと少なめです。SAM4Sでは外部メモリを持つことができますが、現存するSAM4Lデバイスには外部メモリインタフェースもありません。個人的にはもう少し内蔵SRAM容量の多いデバイスを追加して欲しい気がします。

歩いてみる

2013-04-14 10:16:56 | Weblog
ようやくと入手できたSAM4LS4BのQFPパッケージを載せた基板を作り始めました。その作業途中の気分転換として、先日来やっている加速度センサログのグラフ化をもうひとつやってみました。これまでは机の上に置いたMini SAM基板をタッピングしていましたが、こんどは基板をつなげたMBAを持って数歩歩いてみました。



基板は写真のようにわざと傾けて持って歩くことにします。そうすると、X, Y, Zの3軸に重力加速度が分解されて現れるので、加速度ログのグラフもつぎのように各軸が異なるオフセットを持って振れるようになります。


グラフ上のDistanceは3軸の値を合成した値



です。合成することで1gを中心として振れています。同じことをHPFを有効にしてやってみるとこうなりました。


重力成分がキャンセルされているので、各軸の値は0gを中心として振れています。合成値の山を数えてやれば万歩計が作れそうですね。このログは800Hzの出力ですが、もっとODRを低くしても良さそうです。

HPFの効果を見てみる

2013-04-12 14:01:48 | Weblog
先週の記事で図示しておこうと思っていたのですが、ついつい忘れていたことがありました。それが、MMA8652FCやMMA8451Q, MMA8452Q等に備わっているHPFの機能です。

先週も示したように、タッピング時のMMA8652FCからの出力をグラフ化すると、次のような結果を得ることができます。




基板を机の上に置いて指で叩いているために、Z軸方向の加速度変化が顕著に現れています。これだけ見ると、とっても自然に感じられる当たり前のグラフに見えますが、このグラフはHPFが効いている場合のグラフです。HPFを効かないように設定して、同じログを採ると次のようになります。




一目瞭然ですね。Z軸の値だけが少し上に浮き上がったグラフとなりました。Z軸の値は1000mg(=1g)を中心として振れていることが良くわかります。

加速度センサの出力する値に何の処理も加えなければ、平らな机の上に置いたセンサは2番目のグラフのようにX, Y軸方向には0g、Z軸方向には地球の重力を示す1g分のオフセットが加わった値が出力されます。HPFを有効とすることで、あらかじめ重力(あるいは低周波振動の影響)を除去した出力を得ることができます。

やっぱQFPでしょ

2013-04-10 22:48:49 | Weblog
QFP変換基板にQFNパッケージが載らないことがわかってメゲていましたが、その後の顛末のご報告。

やる気を無くして、まずはATMELの評価ボードを購入することを検討してみました。対象はSAM4L-EKSAM4L Xplained Proです。SAM4L-EKは値段が高いのですが、LCDやJ-Link相当のJTAGも備わっている充実ぶり。でも逆にいろいろとつながっていると、自分で周辺につないで実験したい用途には不向きです。Xplainedの方はシンプルな構成で値段も安いけど、JTAG機能はJ-link相当ではないらしくATMEL Studioを使うことが前提になっているようです。また端子の一部は1mmピッチのLCDコネクタに出ているので、こちらも使い勝手がイマイチ。。

気を取り直して、QFNが載せられそうな変換基板をeBayで探して見つけたのがこちら。



80ピンまで対応の基板なのでちゃんと64pin QFNのパッケージの端子パッドにパターンが届いてくれます。しかし、QFNパッケージの裏面にはExposed padが出ているので、パターン中央部を削らねばなりません。それは面倒なのでExposed pad部分にカプトンテープを張って済まそうと考えました。

eBayで変換基板を注文した翌日くらいに、DigikeyにQFPパッケージの在庫が加わっているのを発見、じぇじぇ。迷わずに注文。

結局のところ、変換基板とQFPパッケージのSAM4LSが続けざまに到着。まずはQFNパッケージのExposed pad部分にテープを張って基板の上に載せてみました。しかしながら、テープの厚み分だけチップが浮き気味になってしまい、ハンダ付けがやりにくそうです。
あっさりと諦めて、やはりQFPパッケージを使うことにして、秋月の変換基板の上に載せました。



当初計画どおりの結果に落ち着いたのではありますが、随分とムダなお金を使ってしまいました。トホホ。

ODRを変えてみる

2013-04-07 15:32:37 | Weblog
先週、加速度センサのログをグラフ化してみたら結構面白かったので、もう少し良く見てみることにしてみました。まずは、ログの採り方を若干改善して、センサーの設定に合わせてスケーリング。時間軸にも数字入れました。X軸はms単位、Y軸は1/1000g単位です。まずは、タッピングの際のログをLPモード, 200Hzで取得した場合です。




タッピングされていることの判別は問題なくできそうですが、サンプリング間隔が長いので大雑把な波形として観測されていることがわかります。もう少し良く見てみるためにデータ出力レート(ODR)を800Hzに上げてみると。。。。




サンプリング数が増えたことが視覚的にも良くわかりますが、なんだかごちゃごちゃした印象を受けます。オーバサンプリングのモードをHi Resolutionに変更してみると。



こんどはとってもスッキリとした感じです。データシートによると、LP 800HzとHi Resolution 800Hzはオーバサンプリングの倍数は同じなのですが、ずいぶんと違う結果となりますね。