SpresenseでLチカから始める (11) I/Oの初期電圧

 OSをもたないマイコン・ボードのCPUは、電源を入れたらリセットがかかり、アプリケーションのプログラムが動き始めます。SpresenseはRTOS(リアルタイムOS)のNuttXが動き、つづいてArduinoのアプリケーションが動くので、UNOとはいくらか異なった立ち上がりになります。

 Arduino UNOのI/Oの状態はこちらで調べました。ラズパイはこちらで調べました。ここでは、Spresenseの拡張ボードのI/O状態を調べます。Arduino IDE は1.8.6です。

何もしないときのI/Oの初期状態

 各ポートには何も接続しない状態で、Analog Discovery2のオシロスコープを使って電源ONから約10秒電圧をロギングします。スケッチは新規でファイルをオープンして、setup(){} と loop(){} に何も書かれていないものを書き込みました。オシロスコープのGND端子は、GPIOピンの中のGNDが二つ並んだ一方に接続しました。Spresenseは5V動作です。

void setup() {
// put your setup code here, to run once:
}

void loop() {
// put your main code here, to run repeatedly:
}

 ピンをつなぎかえた後、約-4秒のところでリセット・ボタンを押しています。

ピン番号 機能 UNO Spresense 備考
0番 UART(Rx) HIGH HIGH  -

  0番UART Spresenseの波形

ピン番号 機能 UNO Spresense 備考
1番 UART(Tx) HIGH HIGH 0番と同じ
2番   - LOW HIGH 0番と同じ
3番 PWM LOW LOW-HIGH-LOW リセット後約1秒間HIGH。HIGHの部分は時間軸を拡大してもHIGH。その後LOW

  3番PWM Spresenseの波形

ピン番号 機能 UNO Spresense 備考
4番  - LOW HIGH 0番と同じ
5番 PWM LOW LOW-HIGH-LOW 3番と同じ
6番 PWM LOW LOW-HIGH-LOW 3番と同じ
7番  - LOW HIGH 0番と同じ
8番  - LOW HIGH 0番と同じ
9番 PWM LOW LOW-HIGH-LOW 3番と同じ
10番  - (PWM)LOW HIGH 0番と同じ
11番  - (PWM)LOW HIGH 0番と同じ
12番  - LOW HIGH 0番と同じ
13番  - 内部LED接続あり。一瞬HIGHのちLOW HIGH 0番と同じ
GND  - 0V 0V  -
Aref 外部リファレンス電圧入力 0V HIGH  -
16番 I2C(SDA) LOW HIGH 0番と同じ
17番 I2C(SCL) LOW HIGH 0番と同じ

ピン番号 機能 UNO Spresense 備考
A5 アナログ入力 LOW LOW  -
A4 アナログ入力 LOW LOW  -
A3 アナログ入力 LOW LOW  -
A2 アナログ入力 LOW LOW  -
A1 アナログ入力 LOW LOW  -
A0 アナログ入力 LOW LOW  -
Vin 外部電源からの電圧 LOW HIGH ノイズ700mVp-p
GND GND  -  -  -
GND GND LOW LOW ノイズ500mVp-p
Vout 5V (5V)HIGH HIGH 5V
3.3V 3.3V HIGH HIGH 3.3V
RST Reset LOW LOW  -
IOREF I/Oピンの電圧を外部へ知らせる HIGH HIGH  -
名無し(予約)  - LOW LOW ノイズ700mVp-p

 (※)ノイズは、裏面を手で触っていたのかもしれない。 

PWMを出力するときのI/Oの初期状態

 次のスケッチを利用して、I/Oの状態を観測します。

#define pinNumber 3

void setup() {
pinMode(pinNumber,OUTPUT);
}

void loop() {
analogWrite(pinNumber,125);
}
ピン番号 機能 UNO Spresense 備考
0番 UART(Rx) リセット後2秒HIGHになり、その後LOW HIGH  -

  0番UART Spresenseの波形
 

ピン番号 機能 UNO Spresense 備考
1番 UART(Tx) リセット後2秒HIGHになり、その後LOW HIGH 0番と同じ
2番   - リセット直後約2秒200~700mVp-pのノイズが出た後LOW HIGH 0番と同じ
3番 PWM リセット後1.7秒LOWになり、その後PWM LOW-HIGH-LOW リセット後約1秒間HIGH。その後約200ms間LOWになった後PWM

   3番PWM Spresenseの波形


 

ピン番号 機能 UNO Spresense 備考
4番  - リセット直後約2秒400mVp-pのノイズが出た後LOW HIGH 0番と同じ
5番 PWM リセット後1.7秒LOWになり、その後PWM LOW-HIGH-LOW 3番と同じ
6番 PWM リセット後2秒LOWになり、その後PWM LOW-HIGH-LOW 3番と同じ
7番  - リセット直後約2秒400mVp-pのノイズが出た後LOW HIGH 0番と同じ
8番  - リセット直後約2秒400mVp-pのノイズが出た後LOW HIGH 0番と同じ
9番 PWM リセット後2秒LOWになり、その後PWM LOW-HIGH-LOW 3番と同じ
10番  - (PWM)リセット後2秒LOWになり、その後PWM HIGH 0番と同じ
11番  - (PWM)リセット後2秒LOWになり、その後PWM HIGH 0番と同じ
12番  - リセット直後約2秒400mVp-pのノイズが出た後LOW HIGH 0番と同じ
13番  - 内部LED接続あり。一瞬HIGHのちLOW HIGH 0番と同じ

  13番 UNOの波形

Aref 外部リファレンス電圧入力  - HIGH 0番と同じ
16番 I2C(SDA)  - HIGH 0番と同じ
17番 I2C(SCL)  - HIGH 0番と同じ

ピン番号 機能 UNO Spresense 備考
A5 アナログ入力 リセット直後約2秒600mVp-pのノイズが出た後LOW LOW  -
A4 アナログ入力 リセット直後約2秒600mVp-pのノイズが出た後LOW LOW  -
A3 アナログ入力 リセット直後約2秒600mVp-pのノイズが出た後LOW LOW  -
A2 アナログ入力 リセット直後約2秒600mVp-pのノイズが出た後LOW LOW  -
A1 アナログ入力 リセット直後約2秒600mVp-pのノイズが出た後LOW LOW  -
A0 アナログ入力 リセット直後約2秒600mVp-pのノイズが出た後LOW LOW  -

周波数

 Arduino UNOの3、9、10、11番ピンは約491Hz、5、6番は約978Hzです。複数のピンを同時に使っても、全PWMピンを使っても全ピンに出力が出ます。

 Spresenseの3、5、6、9番ピンは約490Hzです。全PWMピンを使っても全ピンに出力が出ます。

前へ

SpresenseでLチカから始める (10) アイソレータ TLP152

次へ

SpresenseでLチカから始める (12) アイソレータ Si8710BC