最終更新日:2019/10/11
ArduinoUNOで動いているソースコードをBluePillで動かすということを想定してください。
実際にGRBLでCNCを動かす際にRAMに余裕を持たせ、処理速度も上げるというプロジェクトが実際に報告されています。
- 実際にArduinoUNOでコードを書くと実行時のRAMサイズがネックになります。仕方なくMEGAに変更してクリアしたりします。
- WebServer機能がほしかったりするとUNOの2KBでは実行時エラーが起きます。致し方ないです。
- 割込分解能を上げたい場合も16MHzクロックのUNOでは厳しいです。1μSecの割込は掛けられます。が、割込先で何も出来ません。ポートのON/OFFだけでも厳しいです。致し方無しです。
- SPIのクロックを上げたい場合もそうです。NICモジュールも10Mbitで動作するもバッファとCPU間は4Mbpsで通信するのが精々です。
- 演算処理が遅いのも気になります。整数演算はクロックだけの問題のようですが、実数演算はそれだけではないでしょう。やはりレジスタのbit数の違いが大きく響きます。
Arduinoの開発環境は可成り定着していると云わざるを得ないです。一時複数団体に分裂した時期もありましたが、現在は統一されています。
カナダのLeafLabs社はARM Cortex M3コアのSTM32を搭載した、Arduinoピンコンパチブルなハードウェアを販売していました。そして、そのボードの開発環境ををArduino開発環境に似せた Maple IDE を整備しています。
参照:https://www.leaflabs.com/maple
https://docs.leaflabs.com/docs.leaflabs.com/index.html
この資産がSTM32duinoに引き継がれています。ターゲットとし検討しているBluePillはLeafLabs社の開発したMapleMiniのCOPY品と云われています。そのためSTM32duinoで使うことが出来る事が判っています。
本題に移ります。
Arduino用に用意されたスケッチはちゃんと整備されたSTM32duino環境下で適切にコードレタッチすることでBuildでき実行出来ます。
- PINアサインの記述は、例えばUNOではLチカのポート指定で、“13”とするところをBluePillでは“PC13”とする必要があります。
- I2CやSPI等の規制端子は資料を基に読み替えて敗戦する必要があります。
- センサデバイス等をアクセスする場合、その利用するライブラリがSTM32に対応している必要があります。※コンパイルすれば判断出来ます。
ところが、なかなかうまくビルド出来ないコードがあります。どんなものがあって、どんな現象になり、対策方法は見つかったか?と云う情報を記録に残したいと思います。
- BluePillは3.3V電源です。USB接続のみ5Vですが、信号pinは基本3.3Vです。I2Cの信号もSPIの信号も3.3Vです。そんなこともあり、信号が3.3Vで実現出来ないデバイスは接続困難です。
- 入出力デバイスでフォトカプラによるアイソレーションをしているボードの場合、信号が3.3Vと5Vで制限抵抗を変えて実装してします。異なる電圧で使ってしまうと、反応したりしなかったりとか、異常に早い寿命を迎えてしまいます。
- MP3プレーヤーモジュールは適当なライブラリが見つかりません。
- ArduinoのライブラリはソフトウエアシリアルでMP3プレーヤーモジュールと通信します。このライブラリはSTM32ではコンパイルエラーになります。ソフトウエアシリアルが使えないのです。
- ModBusのライブラリはコンパイルが通るライブラリが見当たりません。RS485の接続をソフトウエアシリアルで実現するコードとなっているのが原因です。ModBusの場合ModBus/TCPだけ対応するように記載することもあるのですが、この場合に使用出来るライブラリが見当たりません。
- STM32にはI2CにしてもSPIにしても複数回路用意されています。ところが切り分け出来ないライブラリとなっている場合が多いです。mbedのライブラリだと基本切り分けて使用出来るライブラリになっているようです。
免責事項
本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。
商標・登録商標
Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。