STM32対Arduino

昨日、STM32F103C8に小さなスカーフが届きました。



STM32F103C8フロント STM32F103C8フロント



これは48ビット32ビットマイクロコントローラーです。 そして、これはArduinoを使用している人にとっては素晴らしいアップグレードオプションです。



規模を拡大するため、Arduino Proの隣に置きました。これは、通常のArduino Unoよりも小さいものです。

ArduinoとSTM32F103C8_r

マイクロコントローラ自体のサイズはまったく同じです。脚のピッチは0.8ではなく0.5mmであるため、32ではなく48の同じケースに収まります。しかし、ボードは小さく、納品時の価格は10ドルからです。

そして、機能についてはどうですか?



Arduino



32 kBフラッシュ

2 kB RAM

1 kB EEPROM

Arduinoの最大20 MHzの8ビットATMEL AVRアーキテクチャは、16 MHzで動作します。 1 MIPS / MHz

供給電圧は8MHzで5Vまたは3.3Vであり、5V耐性ではありません。



汎用ピンGPIO-20

それらの:

PWM-6(サーボ制御用ハードウェアPWM-2)

ADC入力-6(10ビット)

周辺機器:

I2Cバス

SPIバス

1 UART

1x 16ビットタイマー

2x 8ビットタイマー

まあ、少し詳細:割り込みコントローラ、ウォッチドッグ。

SPI-4線式インターフェース(MOSI、MISO、SCK、RST)またはブートローダーを以前にフラッシュした場合はUARTを介してプログラムされます。これには最大2kbのフラッシュが必要です。



STM32F103C8



64 kBフラッシュ(STM32F103CBを入れた場合は128 kb(2.6ユニットから))

20 kB RAM

32ビットARM CORTEX-M3アーキテクチャ、最大72MHz、1.25MIPS / MHz

電源電圧3.3V(2.7-3.6)、ほぼすべてのピンは5V耐性です。 ボードには3.3Vの電圧レギュレータがあり、外部の5VまたはUSBから給電されます。



汎用ピンGPIO-26

それらの:

PWM-12(すべてサーボ制御に適しています)

ADC入力-6(12ビット、1μs)

周辺機器:

3x USART

2x I2C

2x SPI(18Mbit / s)

1 x CAN 2.0B

USB 2.0 FS(フルスピード-12Mbit)

3 x 16ビットタイマー+ 1 PWMタイマー

DMA-7チャネル(ADC、SPI、I2C、USART)

RTC-リアルタイムクロック(32768 Hzの水晶は既にはんだ付けされています)、MKがスリープまたは停止しているときでもバッテリーで動作できます。

バックアップレジスタ-MKが主電源からオフになっている時間のクロックとともに、バッテリで駆動されるレジスタ

CRC-チェックサム計算ユニット

96ビットの一意のID MK



SWD経由でプログラム可能-2線式インターフェースまたはJTAG(業界標準)。

ハードウェアデバッグがあります-プロセッサレジスタを調べ、周辺全体のステータスを確認し、プログラムをステップ実行し、RAMとフラッシュの値を手動で変更し、いつでも変数の値を確認し、ブレークポイントを設定できます。

消去できない有線ブートローダーもあり、通常のUARTを介してMKをフラッシュし、ジャンパーを再配置できます。



ボード機能 ボード機能



機能はシックです。 欠点のうち、トレーニングの入門基準が高いだけです-MKには機会が非常に多く、すぐに対処することはできません。 しかし、詳細なドキュメントがあり、例があります。 それらは、AVR Atmega、特にその配線を備えたArduinoほど原始的ではありませんが、特に複雑でもありません。



一般的に、私の意見では、ボードは価格を含むすべての点で Arduino を上回っています。 STM32 MKシリーズSTM32F100、F101、F102、F103、F104、F105、F107はすべて1つのケースで完全にピン互換であるため、配線を変更せずにチップを交換するだけでボードの機能を拡張できます。 48、64、100、144の脚から選択できます。 そして、古いシリーズ(F4など)にはもっとあります。



昨日、このボードのUSB HIDを使用して、このMKに適応した変更なしのプロジェクトを見つけました。 その結果、USBボードをコードで接続します。 ドライバーをインストールする必要はありません。ボードは標準のHIDデバイスと見なされます。 USBサポートは完全にハードウェアで、最大8つのエンドポイントです。 PCとの双方向通信に1つのエンドポイントを使用しています。 Delphiプログラムは、LEDを制御し、通常のHIDレポートの形式でボタンの状態を受け取ることができます。 パケット交換は、ヘッダーをいじり、パケットの先頭と末尾を検索する必要があるUARTストリームよりもはるかに便利です。 COMポートがプログラムによって占有されている場合、誰も接続できません。 デバイスを無効にすると、プログラムはCOMポートを正しく閉じることができなくなります。 USB HIDにはこのような問題はありません。 完全にホットプラグ。 私はそれを引き出し、デバイスを挿入しました。プログラムは再起動せずにその場で再接続できます。



MKでは、すべてが割り込みで機能するため、ほとんどの場合は休止しているだけで、便利なものを使用できます。AVR用のV-USBとは異なり、MKはUSBのソフトウェアエミュレーションにほとんど対応しておらず、欠陥があります。



まあ、視覚愛好家のために、私たちはLEDを点滅させます:)







すぐに私のサイトにSTM32の開発ツールとIDE EmBlocksをツールチェーンとともに投稿し、ColinkExをサポートするために最終決定し、私がよく使用するMK:STM32F103VE、STM32F103C8、STM32F100RBの下でテンプレートを少しコーミングします



All Articles