ファームロジックスでは、無償の設計ツール、オープンなソフトウェアなどの導入に不安をお持ちのお客様からの、様々な御相談を承っております。ここでは、組込設計のコスト削減をお手伝いする情報をまとめて御紹介しております。
コンパイラやデバッガ
現在でも、無償の GCC や GDB で製品開発をすることに抵抗をお持ちの技術者様はあるかと思いますが、GCC はかの Linux 標準のコンパイラでもあり、もはや、無償の開発ツールだから製品設計には使えない、という時代ではないかと思います。ツールに対する十分な知識や、ソースコードのバージョン管理、テスト自動化などにより、製品の信頼性は維持できるでしょう。
ここでは、いくつか拙ブログを御紹介させて頂きます。特に、Nordic 社 nRF5x シリーズのマイコンは、超低消費電力の Bluetooth LE アプリケーションの開発ではデファクトスタンダードと言えるデバイスですが、Keil uVision を利用すると、どうしても開発費用がかさみます。大手企業であれば問題にならないでしょうが、われわれ小規模企業では、技術力と無償開発ツールでコストを削減して参りましょう!
- Arduino M0 Pro を GDB でデバッグしよう
- Arduino M0 Pro を Eclipse と C 言語で開発しよう
- 久々に Nordic nRF52 を触ってみる(GCC + Eclipse 編)
- Nordic nRF52 を GCC で開発する(通信アプリ編)
よくある質問とお答え(FAQ)
以下、お客様から多く頂戴する御質問です。(2023年2月改訂)
Q. 最近の新しいマイコン製品に興味があるのだが、新しいモデルのマイコンが発表される頻度が高くて不安だ。古くから使われている定番のマイコンのほうが長く使えて安心なのでは?
A. 近年登場してくるマイコン製品は、安価でありながら 32ビットアーキテクチャだったり、多くの内蔵メモリをふんだんに利用できたり、さらに USB、Wi-Fi、Bluetooth など豊富なインターフェイスを備えたものが増えています。そのようなマイコン製品の採用を御検討の技術者様や経営者様は多いかと思いますが、その一方で上記のような不安をお持ちの方も多いかと思います。
1990年代頃まで、組込ソフトウェア設計では、全てのプログラムコードを社内で自前に作成することが当然と考えられていました。もちろん、専門技術ベンダが提供する、高額だが優れた設計ツールや OS、ライブラリを利用したり、まとまったソフトウェア構成物を外注設計することはありましたが、基本的には、ほぼ全てのプログラムコードを社内でカスタム設計することがほとんどだったと言えるでしょう。
その頃から、Linux OS を代表するように、無償でソースコードの提供されたソフトウェア技術が知られるようになりましたが、「そのような素性の分からない技術を、我が社の製品設計に導入することはあり得ない」と考える技術者様、経営者様はたくさんいらっしゃいました。
しかしながら時代が進むにつれ、ソフトウェアの設計サイクルの短縮化、製品設計にかけることのできる予算の圧縮、若い組込ソフトウェア技術者の確保が難しくなってきたことなどから、世界中の優れた設計者が無償で公開しているソフトウェア技術の導入は、もはや不可欠となっています。
一例として、近年、組込ソフトウェアの設計や試作の分野で、Arduino(アルデュイーノ)という開発環境が広く知られるようになりました。当初は、「アマチュア工作家のためのオモチャ」という見方もされましたが、Arduino の重要性は、企業の技術者の間で広く認識されるようになっています。その理由の一つは、Arduino 環境を多くの異なるメーカーのマイコンに対応(ポーティング)させる技術者が世界中に現れ、さらには、マイコン製造メーカー自身が Arduino 対応を提供しているところさえ出てきたのです。(Espressif 社 ESP32 マイコンなど)
〜 Arduino 環境で利用できるマイコン 〜
Arduino 環境で利用できるマイコンとしては、次のようなものがあります。
- 旧 Atmel: ATmega168, ATmega328(オリジナルの Arduino)
- その他、各種の Atmel AVR マイコン
- 旧 Atmel: SAM D21, D51
- STMicroelectronics: STM32 シリーズ(stm32duino)
- 旧 Freescale Kinetis K series(Teensyduino)
- Espressif: ESP32(Espressif 社自身で公開)
- Raspberry Pi Foundation: RP2040(arduino-pico)
探すと他にもあるかと思います。
Arduino の特徴的な点は、Arduino 用に無償で公開されているソフトウェア部品(デバイスドライバやライブラリなど)が、多くの異なるメーカーのマイコン製品で、ほぼ同じように利用できるよう工夫されている、という点です。つまり、Arduino の技術を使って設計したアプリケーションソフトウェアは、次々と新しく登場してくるマイコン新製品や、他社のマイコン製品への移行がしやすくなる、ということになります。それと同時に、組込設計の技術者は、ソフトウェア部品の設計を省いたり後回しにすることができるため、製品アイデアの実現に集中することができるようになります。
〜 こんなライブラリが公開されている 〜
Arduino で利用できる無償のライブラリとしては、例えば次のようなものがあります。
- 各種センサデバイスを利用するためのデバイスドライバ(温度湿度センサ, 圧力センサ, PM2.5 センサなど)
- 通信プロトコルのライブラリ(TLS, MQTT など)
- PID 制御のためのライブラリ
- フルカラー LED ストリップ(NeoPixel)を制御するためのライブラリ
他にも、だいたい私たちが思いつくようなライブラリは、既に誰かが公開なさっていることが多いようです。購入したセンサの機能をとりあえず試してみたい、というようなときは、本当に助かります。
一方で、1990年代に利用されていた古いアーキテクチャのマイコン製品では、このような Arduino の文化に対応できていないものが多く見られます。その背景としては、既に多くの新しい、コストパフォーマンスの高いマイコンを Arduino などで気軽に利用できるようになっている時代の中で、古いアーキテクチャマイコンを利用する、あるいはライブラリをポーティングするという動機付けが失われていることがあると考えられます。
結果として、古いアーキテクチャのマイコンに依存することは、設計サイクルの短縮化や、コストの削減が難しいままとなる弊害に繋がると考えられます。同時に、それら古いアーキテクチャに習熟した、あるいは関心を持つ若い技術者の確保が困難だという問題もあるでしょう。
もちろん、Arduino 環境で設計したソフトウェアがそのまま商品設計に利用できるとは限りませんが、技術評価や試作には十分に利用できるでしょう。また、ソースコードが公開されているので、それらの配布ライセンスに従う限り、ソースコードを修正して、製品設計レベルの品質を実現することは可能だと思います。
ファームロジックスは、長年の組込ソフトウェア設計の経験と実績により、古いマイコン製品で設計したアプリケーションプログラムを、最新のマイコン製品に移行するための、お手伝いができると考えております。
Q. 無償でオープンソースのソフトウェアなんて信用できるのか。結局、高くつくことにならないか?
A. 少し論点が逸れますが、インターネット上の技術フォーラム上で、最近興味深い現象が見られますので御紹介させて頂きます。
従来から、半導体メーカーや電子機器メーカーなどでは、ネット上で議論できる技術フォーラムを提供している会社が多くあります。もっと以前には、半導体製品を利用する上での疑問点や不明点は、販売特約店や、半導体メーカーのダイレクトサポートにより対応してもらうことが普通でしたが、サポート費用の削減を考える半導体メーカーの多くは、顧客との議論(製品の欠点や、サポート技術不備の指摘を含む)がネット上で見えてしまうことになったとしても、ネット上での技術フォーラムを利用したほうが良いと考えるようになってきたということでしょう。
しかし上述のように、ここ数年、さらに興味深い現象が見られるようになってきたのです。それは、製品メーカーの社員技術者でない技術者による、技術 Q&A です。有名なものとしては、Stack Overflow、Stack Exchange などがあります。そのフォーラムでの Q&A を見ていると、多くの優秀な技術者が、いかに優れたエレガントな問題解決法を提供できるかと、しのぎを削っている様子が伺えます。このようなウェブサイトは、優秀な技術者が自分の技能を他人に認知してもらうための、格好な「道場」となっているのです。
そして興味深いことに、半導体製品など、製品メーカー自身がもっとも製品知識を持っていると思われる分野でも、社員でない技術者による問題分析、技術的な議論、技術レクチャーなどが見られるようになってきました。(先ほど上げた Stack Exchange には、Electrical Engineering というフォーラムがあります。)これはおそらく、ユーザーが製品メーカーの技術サポートの品質や対価に十分な満足を得られていないことが背景にあると思われます。
このように、インターネット上における技術コミュニティは非常に成熟してきており、製品メーカーによる製品やサポートよりも優れた技術さえ展開されるようになっています。オープンソースのソフトウェアの分野では、何か問題が報告されると、実に速やかに、問題修正の提供や、問題回避の方法が周知されます。
もちろん、ネット上の情報が全て有益とは言えませんし、オープンソースのソフトウェアが全て信頼できるとは言えませんが、企業が設計を非公開として販売している製品よりも優れたソフトウェアを無償で利用できるようになったことは、選択肢が広まるという点で素晴らしいことだと思っています。
さらに、そのようなオープンソフトウェアの開発者の中には、ソフトウェアの技術サポートを(有償あるいは無償で)請け負っている方もあります。そのようなソフトウェアであれば、さらに安心して導入できるのではないでしょうか。
Q. 製品アイデアについて、迅速な試作を外注する価値はあるのか? 完全な仕様書を作り上げてから、社内で作り上げたほうが安心ではないか?
A. 既に製品を社内設計してビジネスに乗っており、そのような実績のある製品の後継製品を設計する場合など、設計を熟知した社内技術者だけで設計をしたほうが良い分野もあります
一方で、製品アイデアはあるのだけど、そのような製品に対するお客様(ユーザー)の反応が予見できない、受注をできる段階にない、あるいは、社内の上層部からプロジェクトに対する承認を得られるかどうか分からないというような場合、まずは最低限の予算で、製品アイデアの中核となる部分だけでも、まずは動くものを作って、ユーザーや上層部の反応、また承認を得たいということはあるかと思います。
そのような際に、試作のための技術者やプロジェクト遂行のための費用を捻出することが難しい場合があるでしょう。また、新しいアイデアや挑戦であるので、社内にはそのための専門家がいない、という場合もあるでしょう。
ファームロジックスは、長い技術経験と「身軽さ」を強みとして、御社で正式に立ち上がっていないような、また予算を十分に獲得できていないような案件でも、まずはアイデアを評価できるような試作品を、迅速に御提供させて頂いたおります。設計資料は全て御提供しますので、その後で御社で正式な仕様書を作成なさっても良いでしょうし、規模の大きい設計が可能なパートナー企業を、ファームロジックスから御紹介することも可能です。お気軽に御相談ください。
Q. 最近注目されているマイコン製品を教えて欲しい。
A. どのような最終製品を、どのくらいの数量製造するのか。また、開発に投入できる費用や、設計者の数はどれくらいか。いろいろな条件でマイコン製品の選択は変わって参りますので、まずは御相談頂ければと思います。
ここでは御参考までに、最近注目されているマイコン製品をいくつか御紹介したいと思います。
2015年頃、元々はオークションサイトとして知られていた eBay というネットサービスで、Wi-Fi 機能を内蔵した極めて安価な回路基板が流通し始め、同時にネット上で情報が広まり始めました。当時、大手メーカーの半導体製品でも、有線 LAN の MII を内蔵したようなマイコンは入手可能でしたが、ワンチップで Wi-Fi が利用できるマイコンが安価に利用できるようになったことに注目が集まり、瞬く間にアマチュア工作家の間に普及しました。
そのマイコンを開発したのが Espressif 社で、その後、後継となる ESP32 シリーズで一世を風靡しています。デバイスファミリや開発環境も充実し、さらには前述の Arduino 環境でも利用できることで好評を博しているようです。広く安価に売られている、Wi-Fi 対応の電子機器(ネット制御可能なテーブルタップなど)では、前述の ESP8266 か ESP32 を搭載しているものが多いと思われます。
有名な Raspberry Pi を展開している Raspberry Pi Foundation が提供している、ARM Cortex-M0 デュアルコアのマイクロコントローラです。アマチュア工作家向けに、これを搭載したマイコンボードが安価に提供されています。価格性能比が優れていること、また、無償開発環境や Arduino で設計可能なことで注目されています。チップ単体をバルクで購入する場合には、US$ 0.7〜0.8 で入手可能のようです。
既存の半導体メーカーの製品とはやや異なる流通経路やサポート体制と感じられるため、全てのお客さまにお勧めできるマイコン製品ではありませんが、技術評価や試作、若い技術者向けの教育分野では幅広く御利用頂けるのではないでしょうか。
STMicroelectronics STM32C0 シリーズ
STM32 シリーズのマイコンで有名な STMicroelectronics 社の最新製品です。2023年になってからニュースで見聞きするようになりました。同社のニュースリリースによると、世の中で広く利用されている安価な 8ビットマイコンの代替となるべく、かつ、設計ツールの充実した ARM Cortex-M0+ コアを搭載したマイコンを、バルク購入の場合 US$ 1.0 程度から購入できるようになるということです。
まだ発表から間もないため、アマチュア工作家向けのマイコンボードなどは無いようですが、注目を浴びることはほぼ間違いないと思われます。前述の Arduino が、既に利用できるようにポーティングされています。
その他、最近話題のマイコン、シングルボードコンピュータ
Bouffalo Lab 社の RISC-V MCU です。プロセッサそのものよりも、PINE64 というプロジェクトによる、このマイコンを搭載した Ox64 シングルボードコンピュータの発表に注目が集まっています。サイトで写真を御覧頂くと分かりますが、ブレッドボードに搭載できそうなコンパクトなボードにも関わらず、Linux を動作させることが可能です。内蔵 RAM が 64Mバイトと小さいこと、また eMMC がないことがやや残念ですが、Wi-Fi や Bluetooth 5.2 を搭載している点が有用そうです。
Raspberry Pi Compute Module を載せるほどではないけど、Linux が動くマイコンを使って試作をしたい、といった場合に、便利に使えそうです。ボードの回路図やレイアウトも公開されているので、BL808 を搭載したボードを独自に設計する際にも参考になりそうです。
STM32 マイコン互換(?)チップで有名(??)な南京沁恒微电子(Nanjing Qinheng Microelectronics)が、わずか 0.1 US ドルの 32ビットマイコンというセンセーショナルな発表をしたマイコンです。ちなみにこちらの CH32V003 は STM32 互換ではなく、内部アーキテクチャは RISC-V です。私は確認できていませんが、STMicroelectronics 社の STM8 シリーズにピン互換ではないか、という話も聞きます。
以下のニュース記事が参考になります。
- 10 cents CH32V003 RISC-V MCU offers 2KB SRAM, 16KB flash in SOP8 to QFN20 packages – CNX Software
- WCH Launches a Sub-10¢ RISC-V Microcontroller, While a $6.90 Dev Board Gets You Started – Hackster.io
正直申し上げて、これらのマイコンは、私も自信を持ってお客様にお勧めできるものではありませんが、Espressif 社の ESP8266、ESP32 の成功を目の当たりにして参りますと、マイコン世界の群雄割拠が、5年後、10年後にどのように変わっているのか、興味深いところがあります。