読者です 読者をやめる 読者になる 読者になる

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その9:I2Cでスイッチコントロール(GPIO))

おそらく今回でLPCXpressoは最後になりますが、I2Cを使ってみます。LPC812は少ピンなのでGPIOが少ないのですが、Arduinoと同じようにGPIOやADCを載せるために、I2Cバスにデバイスを接続して拡張しています。 I2Cのサンプルプログラムを動かす まずはサンプル…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その8:UARTでPCと接続)

今回もサンプルを使ってUARTの動作を確認していきます。 UARTのサンプルプログラムを動かす まずはサンプルプログラムを動かしてみます。サンプルは例のごとく、import project(s)からNXP_LPC8xx_SampleCodeBundle.zipを選択して「UART」をインポートします…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その7:Systickタイマーを使う)

前々回はMRT(Multi-rate Timer)を使いましたが、今回はSystickタイマーのサンプルを例に動かしてみます。SystickタイマーはCortex-M0+内にあるタイマーで、1チャンネルしかありません。通常このタイマーはOSのタイマーに使われるという記述がどっかにありま…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(番外編:提供されているコードについて)

LPCXpressoを触っていて、気になったことがあるので書いておきます。LPC812にはARMのCortex-M0+のコアとNXPの周辺モジュールの2つが合わさったマイコンです。ブロック図はユーザーズマニュアルp7にあります。 サンプルプログラムを見てて思ったのは「あれっ…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その6:タイマーを使う)

今回はBlinkyのサンプルに戻って、残っているタイマーの動作を確認したいと思います。 LPC800シリーズのタイマー LPC800シリーズにはタイマーが2種類あります。 Cortex-M0+内にあるSystick timer, 24bit 1チャンネル LPCシリーズとしてのMRT(Multi-rate Time…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その5:PLLを使用してクロックアップ!)

LPC812は最大動作クロックは30MHzなので、今回は30MHzで動作するように設定を変更してみます。 動作クロックの変更を行うには 前回のエントリのクロック・ジェネレータを参照しながら考えてみます。

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その4:スタートアップルーチン)

スタートアップルーチンを見てみる Blinkyのサンプルアプリはmai.cのmain関数から始まっているのですが、ここでここまでに至る起動時のスタートアップルーチンを見てみようと思います。スタートアップルーチンでは、起動時の重要な初期化やデフォルト設定を…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その3:LEDの動作(GPIO)を調べる)

サンプルアプリ(Blinky)のLEDの動作を調べてみる これで、ひと通りデバッグ等ができるようになりました。実際のコードを解析しつつ、ARM Cortex-M0というかLPC800シリーズのアーキテクチャを見て行きたいと思います。まずは前半を飛ばして、わかりやすいLED…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その2:デバッグでprintf文を使う)

普通にオンラインデバッグができますが、一点だけprintf文を使おうとしてハマりました。 デバッグでprintf文を使う 前回のBlinkyプロジェクトにprintf文を書いてビルドすると以下のようにリンカでエラーになってしまいます。 調べたところ解決策がこちらの「…

LPCXpressoとLPC800-MAXでマイコンを学ぶ(その1:サンプルアプリを動かす)

ARMマイコンの勉強を始めました。とりあえず、LPC800-MAXというArduino互換(ぽい)のが出たようなので、スイッチサイエンスさんで購入。このボードはmbedにもなるボードなのですがそっちは置いておいて、ARMマイコンを理解するためにもLPCXpressoで動作する…