1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

nRF52832でsaadcのサンプルコードを実行する

Last updated at Posted at 2020-01-16

目次

はじめに

SAADCの機能を使うサンプルコードを動かした。この記事は作業の備忘録、そしてエラー原因を共有するために作成した。

セットアップ

Nordic公式サイトを参考にして以下の作業を行った。開発環境はOSX10.15.2、SDKはnRF5 SDK v13.0.0である。

サンプルコードの取得

  1. 本サイトnRF5_SDK_13.0.0_04a0bfd.zipをクリックし、ダウンロードする。
  2. コンピュータ内で解凍する。

書き込みを行う

  1. ターミナルを起動。
  2. cd /nRF5_SDK_13.0.0_04a0bfd/examples/peripheral/saadc/pca10040/blank/armgccを実行。
  3. make flashを実行。

出力をシリアルモニタで見る

  1. ls /dev/tty.usb*でデバイス名を確認する。
    (出力例)/dev/tty.usbmodem0006827997481
  2. 1.で出力されたデバイス名をコピーする。
  3. screen (デバイス名) 115200,cs8,-parenb,-cstopb(デバイス名はペーストする)
    (入力例)
    screen /dev/tty.usbmodem0006827997481 115200,cs8,-parenb,-cstopb
  4. analog_pin2(P0.28)とGNDを導線で結ぶ。(analog _pin2(P0.28)に0Vを入力ß)
  5. 値を確認する。
    (出力例)

    APP:INFO:ADC event number: 48

    APP:INFO:18

    APP:INFO:18

    APP:INFO:18

    APP:INFO:18

    APP:INFO:18
  6. GNDに刺さっていた導線を5Vに差し替える。(analog _pin2(P0.28)に5Vを入力)
  7. 値を確認する。
    (出力例)

    APP:INFO:SAADC HAL simple example.

    APP:INFO:ADC event number: 0

    APP:INFO:562

    APP:INFO:563

    APP:INFO:563

    APP:INFO:562

    APP:INFO:562

プログラムの確認

このプログラムでは基本的にスリープモードに入って電力消費を抑えている。そして、イベントが発生する場合はイベントの割り込みが発生し、スリープから離脱し、各機能の動作が実行される。

nrf _drv _power _init()

有効な電源モジュールドライバーは、電源システムからのすべての割り込みを処理。

nrf _pwr _mgmt _init()

power_managementを初期化。

saadc _init()

saadcの初期化。

saadcチャンネルの有効化。

データをSAMPLES _IN _BUFFERのサイズのバッファーに変換する。

saadc _sampling _event _init()

PPIモジュールの初期化。

timer _handlerの初期化。

400ms毎にm _timerへ時間を送る。

m _timerへのcompare channnelの割り込み禁止。

m _timerの起動。

m _ppi _channelをPPI channelに割り当てる。

timer _compare _event _addrとsaadc _sample _task _addrをm _ppi _channelに割り当てる。

saadc _sampling _event _enable()

m _ppi _channelを有効にする。

最後に

Nordic公式サイトではpin2とGND,VCCを接続するように記されている。インターネットで調べると、使用するマイコンのpin2はP0.00と接続されていると書かれている。そのため筆者は一度P0.00とGND,5Vの変化をみたのだが、出力の変化がなかった。ここではSAADCを使うため、analog_pinのpin番号2(P0.28)と接続することに注意されたい。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?