2017年12月15日金曜日

ArduinoでArm開発 その2

Visual Studio Coreと Extension for Arduinoで、コンパイルと書き込みは出来る様になりましたが、VScoreでデバッグ出来るのは Arduino M0 / M0 Proだけで、DUEは対象外だと言われてしまいます。

Cortex-M0+ならサイズ的にSwitchScienceさんのSAMD21 Mini Breakoutにも対応していると嬉しいのですが・・・

VScoreが駄目だったんので、Atmel Studio 7に Arduino IDE for Atmel Studio 7をインストールして、Arduinoのプロジェクトを読み込みコンパイルする様にしました。
これでやっとデバッグまで出来る様になりました。

現状でCortex-M3は、初心者はArduino IDEで開発を始めてもらい、ある程度慣れてきたところで Atmel Studioでのデバッグに移行していくのが良いようです。

Atmel社のCPUだと 5Vタイプもあり制御屋には魅力的なんだけど、入手性が悪いのが問題です。

STMは安くて入手性も良くて、種類も多い。SW4STM32を使えば開発出来ますが、初めてマイコンに触る人にSW4STM32はちょっと難しすぎるんですよね。

Atmelに引き続き、Arduino環境でSTM32の開発が出来る STM32duinoを調査してみようと思います。

2017年12月13日水曜日

ArduinoでArm開発

なんで、Armの開発するのにArduinoっていう話ですが、そこにはArmがアーキテクチャの設計だけして、各メーカーがチップに纏めて製造するスタイルが関わっています。

いま関わっている仕事ではPICを使っているのですが、PICはマイコンの中でも非力な変わり者で、安くて入手し易いのは良いのですが、ちょっと複雑なことをさせようとすると色々と問題が出てきます。

そこで、Arm採用して貰いたいのですが、新しい開発環境を導入する必要があるし、ハード設計もいままでの知識が使えないということで、なかなか前に進みません。
更には、Armが複数のメーカーで製造されているため、一度あるメーカーのチップを選択するとそのチップ用の開発環境を使うことになり、他のメーカーのチップに切り替えるのが難しいことが問題になります。

mbedが複数のメーカーが採用しているし、IoT向けにRTOSも組み込んでとても魅力的なのですが、接続がUSBストレージ方式でセキュリティ的に問題なのと、ローカルの開発環境がいまいちなので二の足を踏んでいました。

色々悩んでいるときに、テスト用にArduino IDEがインストールされていることを思い出して、調べてみると、Arduino DUE、M0、M0 PROと Arm Cortex-Mのボードが販売されていました。

また、Atmel以外のSTMやNXP、KinetisなどのMCUにも XXduinoという、Arduino API(?)を組み込む記事が沢山あり、Arduino IDEを中心に色々なMCUを使うことが出来そうなことが分かってきました。Arduino IDEなら、PICしか触ったことがない人でも試して貰えそうです。

ということで、とりあえずは本家のArduino DUE(互換機)を購入して、開発環境を試してみることにしました。

とりあえず本家は高いので、購入したのは Kuman Due SAM3X8E 互換ボードです。

インストールしていたArduino IDEのボードマネージャでDUEを検索して、インストールするとArduino DUEが選択できるようになり、スケッチ例のBlinkを動かすことが出来ました。
ただし、Native USB Portでは書き込めるのですが、Programing Portでは「No debice found」と言われてしまいます。(調査中)

Arduino IDEのエディタはいまいちなので、ついでにVisual Studio CodeとExtension for Arduinoを入れて、コンパイルと書き込みがこちらから出来る様にしました。

追記:Programing Portの問題は、Erase釦を押してから書き込むと正常に終了しました。