Quantcast
Channel: JH7UBCブログ
Viewing all articles
Browse latest Browse all 440

STM32F103C8T6とArduino UNOとの比較

$
0
0
 同じArduino IDEが使えるにしても、STM32F103C8T6とArduinoは、別物です。

 Web上には、STM32F103C8T6は、Arduinoの3倍速いという記載をみつけましたが、実際はどうなのか、比較検証してみました。

 まず、それぞれのスペックを比較します。

         STM32F103T8C6       Arduino UNO
クロック      72MHz          16MHz
Flash Memory  64MB                        32MB
SRAM               20MB                         2KB
EEPROM           なし                           1KB

 クロック周波数を比較するとSTM32は、Arduinoの4.5倍ですから、単純に考えて、STM32は、Arduinoの4.5倍の速度が期待できます。

 実際に、簡単なスケッチで比較してみます。

STM32のスケッチです。

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

void loop(){
   digitalWrite(PB12,HIGH);
   digitalWrite(PB12,LOW);
}

 PB12にHIGHとLOWを交互に出力します。スケッチをコンパイルすると8144バイトでした。

 pico scopeで観察すると
イメージ 1

 周期は、約1.4usです。

 周波数を自作の周波数カウンタで、測定してみると、698638Hz=698.638KHzです。ただし、10Hz以下はあやしいです。

イメージ 2

 では、次にArduino UNOで、同じスケッチを実行してみます。ただし、PB12は、単に12と書き換えます。スケッチは、734バイトでした。

 デジタルポート12の出力波形です。

イメージ 3

 周期は、約6.9usで、周波数は、144483Hz=144.483KHzでした。(カウンタの表示が見ずらくてすみません)

イメージ 4

 周波数を比較すると、STM32は、Arduinoの4.84倍です。

 おおよそ、クロック周波数のとおり、4.5倍の速度があると考えてよいと思います。

 STM32のスケッチサイズが、Arduinoの10倍以上なのですが、速度は出るんですね。

Viewing all articles
Browse latest Browse all 440

Trending Articles