LPCXpresso
おそらく今回でLPCXpressoは最後になりますが、I2Cを使ってみます。LPC812は少ピンなのでGPIOが少ないのですが、Arduinoと同じようにGPIOやADCを載せるために、I2Cバスにデバイスを接続して拡張しています。 I2Cのサンプルプログラムを動かす まずはサンプル…
今回もサンプルを使ってUARTの動作を確認していきます。 UARTのサンプルプログラムを動かす まずはサンプルプログラムを動かしてみます。サンプルは例のごとく、import project(s)からNXP_LPC8xx_SampleCodeBundle.zipを選択して「UART」をインポートします…
前々回はMRT(Multi-rate Timer)を使いましたが、今回はSystickタイマーのサンプルを例に動かしてみます。SystickタイマーはCortex-M0+内にあるタイマーで、1チャンネルしかありません。通常このタイマーはOSのタイマーに使われるという記述がどっかにありま…
LPCXpressoを触っていて、気になったことがあるので書いておきます。LPC812にはARMのCortex-M0+のコアとNXPの周辺モジュールの2つが合わさったマイコンです。ブロック図はユーザーズマニュアルp7にあります。 サンプルプログラムを見てて思ったのは「あれっ…
今回はBlinkyのサンプルに戻って、残っているタイマーの動作を確認したいと思います。 LPC800シリーズのタイマー LPC800シリーズにはタイマーが2種類あります。 Cortex-M0+内にあるSystick timer, 24bit 1チャンネル LPCシリーズとしてのMRT(Multi-rate Time…
LPC812は最大動作クロックは30MHzなので、今回は30MHzで動作するように設定を変更してみます。 動作クロックの変更を行うには 前回のエントリのクロック・ジェネレータを参照しながら考えてみます。
スタートアップルーチンを見てみる Blinkyのサンプルアプリはmai.cのmain関数から始まっているのですが、ここでここまでに至る起動時のスタートアップルーチンを見てみようと思います。スタートアップルーチンでは、起動時の重要な初期化やデフォルト設定を…
サンプルアプリ(Blinky)のLEDの動作を調べてみる これで、ひと通りデバッグ等ができるようになりました。実際のコードを解析しつつ、ARM Cortex-M0というかLPC800シリーズのアーキテクチャを見て行きたいと思います。まずは前半を飛ばして、わかりやすいLED…
普通にオンラインデバッグができますが、一点だけprintf文を使おうとしてハマりました。 デバッグでprintf文を使う 前回のBlinkyプロジェクトにprintf文を書いてビルドすると以下のようにリンカでエラーになってしまいます。 調べたところ解決策がこちらの「…
ARMマイコンの勉強を始めました。とりあえず、LPC800-MAXというArduino互換(ぽい)のが出たようなので、スイッチサイエンスさんで購入。このボードはmbedにもなるボードなのですがそっちは置いておいて、ARMマイコンを理解するためにもLPCXpressoで動作する…