Microcontollers

組み込み & マイクロコントローラ

内容

トップ

命令セットアーキテクチャ(RISC-V、x86、ARM)

RISC-V

x86

ARM

評価ボード、開発ボード、システムオンモジュールの比較

評価ボード

開発ボード

システムオンモジュール(SoM)

拡張ボード

拡張ボードの検索方法

リアルタイムオペレーティングシステム(RTOS)

Zephyrリアルタイムオペレーティングシステム

Zephyr RTOS:

FreeRTOS:

組み込みシステムの属性

コアサイズ

メモリ

クロックソース

タイマ

通信方式(UART、SPI、I2C)

通信エコシステム(QWiiC、STEMMA QT、Grove)

汎用入出力(GPIO)

A/Dコンバータ(ADC)

マイクロプロセッサ

マイクロコントローラ(MCU)

ST MicroelectronicsのSTM32マイクロコントローラファミリ

Texas InstrumentsのMSP430マイクロコントローラファミリ

Microchip TechnologyのATmega328マイクロコントローラファミリ

デジタルシグナルプロセッサ(DSP)/デジタルシグナルコントローラ(DSC)

フィールドプログラマブルゲートアレイ(FPGA)

シングルボードコンピュータ(SBC)

SBCの欠点

製品

組み込み & マイクロコントローラ

組み込みシステムは通常、信号の受信、解釈、送信を行なう個々の電子システムの調整を自動的に行います。この組み込みシステムの強さは、ハードウェアとソフトウェアの組み合わせによってもたらされます。初めて組み込みシステムに取り組む人は、ソフトウェア開発のために、まずはC言語から学び始めるのが良いでしょう。

以下の一覧図は、本稿において主に説明するハードウェア情報の構成がどのようになされているかを示しています。まず、全体をカバーするトピック(命令セットアーキテクチャなど)から始まり、後半では大きな製品カテゴリ(マイクロコントローラなど)について説明しています。

命令セットアーキテクチャ(RISC-V、x86、ARM)

命令セットアーキテクチャとは何ですか? 回答を見る

命令セットアーキテクチャ(ISA)はコンピュータアーキテクチャとも呼ばれ、コード命令、データ型、サポートされるハードウェアをどのように組み合わせてマイクロプロセッサユニット(MPU)を形成するかを定義したものです。 ISAにはARM、RISC-V、X86、MIPSなど、いくつかの異なる種類があります。

ISAには相互互換性はありますか? 回答を見る

通常、ISAには相互互換性はなく、ある種類のISAに対応するように設計されたシステムは別の種類のISAでは動作しません。 たとえば、x86システムとソフトウェアは、コード命令とデータセットの処理方法が異なるため、ARMベースのチップでは動作しません。

注:市場ではこの問題に対して、いくつかの異なる回避策があります。1)異なるISAの動作条件を模倣したソフトウェアを使用する、2)種類の異なるISAを1つのパッケージにまとめる、などです。 ARMはARM big.LITTLEと呼ばれるハイブリッドアーキテクチャを創り上げ、これはハイパワープロセッシングコアとローパワープロセッシングコアを1つのシステムに組み合わせたヘテロジニアスマルチプロセッシングアーキテクチャであり、これにより、ハイパワープロセスはローパワーで低優先度リクエストとは別に優先的に処理されるため、より柔軟で精密な電源管理が可能になります。

縮小命令セットコンピュータ(RISC)と複合命令セットコンピュータ(CISC)プロセッサの違いは何ですか? 回答を見る

RISCはコンピュータアーキテクチャの一種で、演算処理中に単純な命令セットを使用して、単一ステップの動作を実行するよう設計されています。より一般的には、各コード命令はコンピュータシステムに対して1つの動作を実行できると考えることができます。 動作が単純であるため、より高速な完了速度と低消費電力を可能にし、ポータブルデバイスや電力効率が重視される分野で人気があります。

CISCはコンピュータアーキテクチャの一種で、演算プロセスの各ステップで複数の命令やコード動作を実行できます。より一般的には、CISCという用語はRISCベースのチップおよびシステム開発に対応する形で発展したため、RISC以外のすべてのものを指すことができます。CISCには正式な定義がありませんが、通常、より複雑に設計されたシステム(通常、動作により多くの電力を必要とします)を備えていると考えられています。

RISC-V

RISC-Vは、RISCに基づくオープンスタンダードのISAです。 他のチップ設計とは異なり、RISC-Vは完全にオープンソースであり、オープンアーキテクチャを採用しています。これは、誰でも、どこでもRISC-Vチップを作ることが可能で、ライセンス料を支払う必要がないことを意味します。 ただし、RISC-Vのコアはオープンソースではあるものの、一般に公開されてないその他のアドオンや拡張機能が存在する可能性があります。

RISC-Vボード:

x86

x86はCISCプロセッサ向け命令セットアーキテクチャの中で、最も古いファミリの1つです。 1970年代後半にIntelの8ビットマイクロプロセッサの拡張版としてスタートし、x86プロセッサファミリは、継続的に適応と改良を重ね、今日販売されている最も一般的なコンピュータプロセッサの1つとなっています。 通常はラップトップ、デスクトップ、ワークステーション、スーパーコンピュータに搭載されており、最高のパフォーマンスを実現するように作られています。

ARM

元々はAdvanced RISC Machinesとして知られていますが、今日では単にARMとしてよく知られているのは、Arm Limitedによって開発およびライセンス供与されたRISCプロセッサファミリです。低消費電力および低発熱であるため、ARMベースのチップは今日、携帯電話、タブレット、一部のラップトップ、その他の低電力デバイスなど、世界中のモバイルデバイスやポータブルデバイスで使用されています。

ARMボード:

Image of Risc-v

RISC-V(発音は「リスクファイブ」)とは: オープンソースコミュニティに向けたもので、2015年に設立され、もともとはカリフォルニア大学バークレー校で開発されたものです。RISC-Vの詳細については、こちらをご覧ください。

詳細はこちら

Image of RVfpga Webinar

ウェビナーの申し込み: 申し込み ウェビナーの録画: 設定予定 要約 Digi-Keyに参加して、RISC-Vプロセッサ・コアの内部構造と、ターゲット(Xilinx)FPGAデバイスにソフトRISC-Vプロセッサ・

詳細はこちら

Image of DigiKey Article Library

RISC-Vの命令セットおよびハードウェアをカスタマイズして、組み込みシステムの最適エネルギー特性を実現

詳細はこちら

Image of PolarFire SoC FPGA block diagram

FPGA SoCとLinux対応RISC-V MCUサブシステムを組み合わせて、セキュアなリアルタイムセーフティクリティカルシステムを実現します。

詳細はこちら

Image of RISC-V Logo

RISC-Vは比較的新しいコンピュータ技術であり、多くの有償アーキテクチャに競合する技術として積極的なプロモーションが展開されています。

詳細はこちら

Image of Improved embedded security with Armv8-M architecture and TrustZone

IoT向けマイクコントローラベースのアプリケーションのセキュリティ確保は難しい問題です。セキュリティはハードウェアレベルから始まり、組み込みソフトウェアへと広がっていきます。

詳細はこちら

評価ボード、開発ボード、システムオンモジュールの比較

新製品の開発では、試作、改良、生産に向けた設計の各段階について検討する必要があります。 この開発プロセスを支援するために、実験、開発、生産にすぐに使用できるさまざまな回路基板が用意されています。

DigiKeyの製品カテゴリでは、大半のメーカーと同様に、評価ボードと開発ボードを同じものとして分類しています。 これは、製品の試作から生産までの開発プロセスにおいて、ボードを機能や役割ごとに整理したり分類したりできる便利な方法です。

評価ボード

最初の試作や実験向けに、評価ボードがあります。 このボードは対象の集積回路(IC)に焦点を当てており、 実行可能な回路を構成する最小限の部品が搭載されています。

通常、電源は外部電源とインターフェースを使用して外部より供給されます。 通信ラインは非常に基本的で、テストプローブを回路パスに接続するための単なるテストポイントのインターフェースにすぎません。

これらのボードは、ICの性能あるいは機能といった1つの側面に重点を当て、その他すべてについては考慮していません。 シンプルではありますが、ICやチップのすべてのラインを取り出すスペースを確保するため面積が大きくなっており、設計者はどの回路を有効にするか、またはどの回路とインターフェース接続するかを正確に選択できるようになっています。

開発ボード

実験に使われる集積回路では通常、USBポート、ヘッダソケット、その他のプラグ式コネクタなど、人間が使用可能なインターフェースやプログラミングオプションにアクセスできるように、すべての外部通信回線が切り離されています。電源は電圧レギュレータやその他の電源デバイスによってオンボードで制御されるため、開発者はサポート回路の構築ではなく、コアチップの機能実験に集中できます。

開発ボードの最も人気のある製品ラインは、通常、メーカーや製品ライン間で相互互換性があるため、1つの拡張ボードを複数のデバイスで再利用できます。この例としてArduinoシリーズがあり、Arduinoのヘッダソケット配列は、他のメーカーの回路基板でも採用されています。

ただし、通常これらは、比較的大きな回路基板サイズと、扱いにくいインターフェースポートの配置により、エンドアプリケーション用の回路基板への直接接続に適していません。

システムオンモジュール(SoM)

プロジェクトをワークベンチから生産ラインへと送り出す最終ステップで使用します。システムオンモジュール(SoM)は、回路基板の最も重要な部分で、アプリケーション用の回路基板に直接搭載できるように、凝縮・コンパクト化されています。

通常、SoMのフットプリント(実装面積)は非常に小さく、総面積は最大でもわずか数平方インチで、面実装部品で構成されています。通常、SoMには人間が使用可能なケーブルやその他のインターフェース用の接続ポートは備わっていません。 実際のところ、ほとんどのSoMは、人間の尺度での使用と実験のために、SoMをブレイクアウトボード上に直接配置した開発プラットフォームが用意されています。

これらのSoMは回路基板に直接はんだ付けしたり、RAMスティックのようなエッジコネクタインターフェースあるいはスタック型のメザニンコネクタを使用することができます。

Image of Development Kit Limitations - How to Determine Compatibility

Arduinoのような開発キットで何か動かせるのかについて質問されたことはありますか?私はその質問を何度も目にしたことがありますし、自分でも疑問に思ったことさえあります。

詳細はこちら

Image of How to effectively implement multi-connectivity asset tracking applications

家畜監視、フリート管理、ロジスティクスなどの高度なアセットトラッキングアプリケーションでは、追跡対象物の現在のステータス情報や位置座標を自動的に取得します。

詳細はこちら

Image of Digilent Genesys 2 Kintex-7 FPGA Evaluation Board

The Digilent Genesys 2 board is an advanced, high‐performance, ready‐to‐use digital circuit development platform based on the powerful Kintex‐7™ Field Programmable Gate Array (FPGA) from Xilinx.

詳細はこちら

Image of Z-Wave Development Kits (500 series)

Silicon Labsは、2つの異なるZ-Wave開発キット、Z-WaveコントローラキットとZ-Wave組み込みキットを提供しています。

詳細はこちら

Image of Utilizing the Build Analyzer in STM32CubeIDE

STの最新ツールであるSTM32CubeIDEは、同社の従来のTrueSTUDIO IDEとSTM32CubeMXコードコンフィギュレータを統合することで、オールインワンの開発体験を提供するEclipseベースのIDEです。

詳細はこちら

Image of The OSM Standard for System on Modules Explained

システムオンモジュールの最新業界標準であるオープンスタンダードモジュール(OSM)は、クレジットカードサイズのモジュールを切手サイズのモジュールに置き換えています。

詳細はこちら

拡張ボード

開発ボードをもっと活用したい場合はどうすればいいですか? 回答を見る

開発ボードは、初期のアイデア段階から実際のアプリケーション開発までにおいて強力なツールですが、開発者が箱から出して思いつくことすべてをすぐに実行することはできません。 多くのアプリケーションでは、開発ボードには、外部とのインターフェース接続、他のコンポーネントやボードとの接続、あるいは単に受信可能な入力範囲の拡大などのため、メインIC以外のコンポーネントが必要になります。

センサ、ディスプレイ、モータドライバ、その他のICを簡単に一体化できるよう、ほとんどのメーカーは、既に、拡張ボードと呼ばれる、外部のICや必要なコンポーネントを搭載した互換性のあるプラグアンドプレイのボードを提供しています。 これらの拡張ボードは、ダウンロード可能な開発環境用のソフトウェア ライブラリを備えた開発ボードの上に簡単に取り付け可能です。

通常、こうした拡張ボードには、メインボードに関連する名前やテーマが付けられています。ここでは、最も人気のある開発ボードシリーズおよび拡張ボードのごく一部をご紹介します。

Arduino – シールドには通常のUNO R3スタイルと大型のMEGA R3スタイルがあります。 Arduino R3のボードレイアウトは、多くの企業やサードパーティメーカーが同じフットプリントのボードを製造しており、デファクトスタンダードとなっています。
Beaglebone - Capeは通常、ビーグルボードの機能を拡張するものですが、通常はピン配列や形状よりも、ボードの機能に基づいて特定のバージョンのBeagleboneボード向けに定義される場合があります。
Raspberry Pi - HAT(上部に取り付けられたハードウェア)には、旧型の26ピンモデルと新型の40ピンモデルがあります。pHAT(partial HAT)は、Raspberry Pi ZeroおよびZero Wボードの形状に合わせて設計されています。
Feather - FeatherWingsは、試作エリア、センシング、モータ制御、有線/無線接続オプション、オーディオ、ディスプレイといった機能の追加を可能にするAdafruit Featherシステムの開発ボード用のアドオンおよび拡張ボードです。
STM32 Nucleo - これらの拡張ボードは、ベースとなるSTM32 Nucleoボードに機能を追加できます。追加できる機能はセンシング、制御、コネクティビティ、電源、オーディオなどがあります。 拡張ボードはベースボードの上に差し込むことができます。拡張ボードを積み重ねることにより、 複数の機能を追加することができます。
MikroE - Click Board(mikroBUS™ Click™)は、MikroEの拡張ボードファミリです。 Click Boardの拡張ボードファミリには1000を優に超えるオプション(選択肢)が用意されているため、センサ、通信、ディスプレイ、データストレージを追加する際には、比類のない設計の選択肢と迅速さを提供します。 ボードスペース削減には、MikroEのShuttleクリックリボンケーブルシステムがあり、同一のデータバスに最大4つの異なるClick Boardを追加できます。
MicroMod - SparkFunのモジュール式エコシステムを使用すると、プロセッサ、通信、センサの接続を簡単に交換できます。このボードのメーカー向けプラットフォームはこちらをご覧ください。

拡張ボードの検索方法

拡張ボードは機能に応じて異なる場所に掲載されています。 通常、 「開発ボード、キット、プログラマ」カテゴリの「開発ボード、プログラマアクセサリ」、または「評価ボード」カテゴリの「拡張ボード、ドーターカード」、または「評価ボード」カテゴリの「拡張ボード、ドーターカード」から検索可能です。 また、無線通信機能を備えた拡張ボードは「RF評価および開発キット、ボード」からご覧いただけます。

Image of Expansion boards thumbnail

多くの開発ボードやプロトタイピングボードのプラットフォームでは、機能を素早く拡張するためのフォームファクタを特別に定義しており、これらのフォームファクタには、よく名前が付けられています。

詳細はこちら

Image of Arduino Shields

シールド、具体的にはArduino Unoプラットフォームを中心に開発されたシールドについて話をしましょう。

詳細はこちら

Image of Quickly and easily apply FPGA with Arduino MKR Vidor 4000

著者 Steve Leibson DigiKeyの北米担当編集者の提供 2018-11-13 多くの設計者は、マイクロコントローラやマイクロプロセッサ上で実行されるファームウェアがあまりにも遅いと、遅かれ早かれ気づきます。

詳細はこちら

Image of Simplify Motion Detection Using the ATtiny1627 Curiosity Nano

Microchip ATtiny1627 Curiosity NanoセンサとPIRセンサを使用すれば、モーション検出の手順を素早く学習して使用し始めることができます。

詳細はこちら

Image of Why and How to Kickstart Cellular IoT Projects Using Microchip’s IoT Development Board

IDEを包括的にサポートするクイックスタート開発ボードを使用して、セルラーIoTの開発を加速します。

詳細はこちら

リアルタイムオペレーティングシステム(RTOS)

画像:リアルタイムオペレーティングシステム 画像提供:DigiKey

リアルタイムオペレーティングシステム(Real-time Operating Systems、RTOS)は、小型で軽量の小さなオペレーティングシステムであり、通常、コンピューティングリソースが限られている小型の組み込みシステム上で動作し、タイムクリティカルなニーズがあるマルチスレッドプログラムアプリケーションを実行するよう設計されています。

多くの場合、オペレーティングシステム(OS)などの用語が使用される場合、Windows、macOS、Linuxなど、コンピュータ上にあるソフトウェアのことを指しています。 これらは一般的なタイプ(種類)の汎用オペレーティングシステム(General-Purpose Operating Systems 、GPOS)です。 GPOSは通常、グラフィカルユーザーインターフェース(GUI)を実行し、同時に複数のアプリケーションを実行することが期待されています。

GPOSはRTOSと同じ機能を多数備えていますが、いくつか決定的な違いがあります。最も重要な違いはコードの実行にかかる時間です。 GPOSの場合、ソフトウェアの実行タイミングは非決定的であり、つまり、コードで記述された命令がそれらの命令の実行タイミングを変更する可能性があり、タスク完了までの時間を見積もるのが非常に難しくなります。

一方でRTOSは、ユーザーインターフェースなどの機能よりも動作速度や信頼性が優先される、マイクロコントローラやその他の組み込みシステムなど小さくてそれほど性能の高くないシステムで動作するよう設計されています。RTOSは、同時実行アプリケーションやマルチスレッドアプリケーション(シングルコアの場合は同時実行されているように見えるもの)を実行し、厳密なタイミング期限を守ることができます。そのため、医療、航空宇宙、安全性が重要な環境など、厳密なタイミングが要求されるアプリケーションの信頼性を大幅に向上させる事ができます。

要求がそれほど厳しくない環境においても、RTOSは今もなお開発者にとって人気が高い選択肢であり、センサの読み取り値を均等分配したり、中央ハブに無線通信を送信したりするなど、マイクロコントローラプラットフォームで複数のタスクを同時に実行する機能を備えています。

FreeRTOSやZephyrなどのRTOSは、マルチスレッドのサポートを必要とする組み込みマイクロコントローラシステムで見られます。また、モジュール式コードを実行する必要があるアプリケーションでも見られ、コードの一部を分離されたセクションで実行できるため、セキュリティの向上と開発時間の短縮の双方を実現します。

どちらのソフトウェアも完全なオープンソースプロジェクトであり、FreeRTOSはMITオープンソースライセンス、ZephyrはApache 2.0ライセンスに基づいています。

Zephyrリアルタイムオペレーティングシステム

画像:Zephyrリアルタイムオペレーティングシステム 画像提供:Zephyr

Zephyr RTOSは、無料でオープンソースのリアルタイムオペレーティングシステムであり、モノのインターネット(IoT)デバイスやシステムのように最低限の処理リソースを持つ、ネット接続された組み込みシステム向けに設計されています。

小型で軽量のオペレーティングシステムカーネルとして設計され、組み込みデバイスをサポートするZephyr RTOSの最小ハードウェア要件は、8KB未満のフラッシュストレージと5KBのRAMです。Zephyrはスケーラブルで、センサベースの小型ノードから複雑なマルチコアシステムまで拡張できるため、他のオペレーティングシステムでは大きすぎたり複雑すぎたりするところにも適合可能です。

Zephyr RTOSは、32ビットのSTM32およびARM Cortexマイクロコントローラシリーズ、RISC-Vベースのマイクロコントローラから、フル機能の64ビットのx86プロセッサまで、全く異種のアーキテクチャを持つさまざまなマイクロコントローラやマイクロプロセッサ上で動作します。その上で、同一のコンパイル済みソフトウェアを実行できます。 ドライバとライブラリをハードウェア抽象化レイヤ(HAL)に統合し、ハードウェアに依存しないように記述することで、異なるハードウェアプラットフォーム間でアプリケーションコードを再利用できます。

Zephyr RTOSの最も人気のある特長の1つは、さまざまなエンドアプリケーションやニーズに合わせてカスタマイズできる柔軟性および対応能力です。 Bluetooth 5.3や、Zephyr RTOSのカーネル層にネイティブに組み込まれたIPスタックなどの、接続とネットワーキング機能によりZephyr RTOSはほぼすべてのセンサやネットワークハブに接続できます。

Analog Devices、Google、Nordic Semiconductor、NEXP、Metaなど、最大手のソフトウェアおよびハードウェア開発企業によってサポートされています。Zephyr RTOSプロジェクトは、最も人気のあるオープンソースRTOSプロジェクトの1つです。

Windows、macOS、Linuxの各オペレーティングシステムで完全にサポートされており、2年以上の長期サポートバージョンが提供されています。

Zephyr RTOS:

Zephyr RTOS互換ボードの全リスト:https://docs.zephyrproject.org/latest/boards/index.html

FreeRTOS:

FreeRTOS互換ファミリの全リスト:https://www.freertos.org/RTOS_ports.html

概要 図1: カメラドーターボードコネクタにカメラ モジュールUM1379を装着したB-U585I-IOT02A ディスカバリボード STMicroelectronicsのB-U585I-IOT02Aディスカバリボードには.

詳細はこちら

Image of An open source template for creating Zephyr projects for cellular dev boards

新しいプロジェクトを始めるたびに、ゼロから始めるような気分になります。しかし、最近のシステムでは、レジスタから始めて、自分のやり方で作業を進めることはほとんどありません。

詳細はこちら

Image of How to Run the same C code

この2年間にわたり、Zephyr RTOSによって私はスキルを磨いて来ました。

詳細はこちら

Lim Jia Zh Article

リアルタイムオペレーティングシステム(RTOS)の「リアルタイム」という用語は、生の速度ではなく、実行時間の予測可能性/決定論性を示しています。

詳細はこちら

IoTデバイス向けのプロ仕様のデバッグツールと技術を使用すれば、設計者も愛好家も同様に、開発時間を大幅に短縮することができます。

詳細はこちら

Image of Rapidly Deploy Sensor-Based Industrial Strength IoT Devices on Amazon Web Services

Renesasのハードウェアおよびソフトウェアのキットは、AWSのようなクラウドベースのサービスが必要なエッジIIoTアプリケーションの迅速な開発とデプロイを可能にします。

詳細はこちら

組み込みシステムの属性

DigiKeyのパラメトリック検索システムにあるフィルタを使用すると、組み込みシステムの属性に適した候補を適切な範囲に絞り込むことができます。 このパラメトリック検索のフィルタのほとんどはマイクロコントローラと共通ですが、FPGAなどの他の組み込みシステムでは同じフィルタ名を持っていない場合があります。

コアサイズ

コアサイズは、システム内のデータバスの幅を指します。 コアのサイズによって、1クロックサイクル中に処理できるデータの量が決まります。

ほとんどの組み込みシステムは8ビット、16ビット、または32ビットのアーキテクチャですが、コンピュータ用マイクロプロセッサは現在64ビットで動作しています。

メモリ

最新のマイクロコントローラのほとんどは、集積回路パッケージにある程度のメモリとストレージを内蔵しています。 それぞれの種類のメモリにはそれぞれ独自の使用目的があります。

  • フラッシュメモリ - プログラムメモリに使用され、システムを実行するコードが格納されています。 これは不揮発性ストレージの一種です(マイクロコントローラがリセットされたり電源がオフになったりしても消去されません)。
  • EEPROM - データメモリに使用され、コンフィギュレーション(構成)設定が保存されます。 これは不揮発性メモリの一種です(マイクロコントローラがリセットされたり電源がオフになったりしても消去されません)。
  • SRAM - データメモリに使用されます。 これは揮発性メモリの一種です(マイクロコントローラがリセットされたり電源がオフになったりすると消去されます)。

クロックソース

マイクロコントローラには、抵抗・コンデンサ回路発振器(RC発振器)が内蔵されているか、または何らかの外部周波数ソースに依存することで、時間とサイクルを一定に保っています。

  • RC発振器 - 温度依存性があり、クロック信号が1~5%変動する可能性があります。 一部の低周波数でのタイミングが必要な場合に機能します(低周波のA/D変換など)。
  • 水晶振動子 - 外部発振回路で一般的です。 クロック信号の安定性と精度に優れています。 水晶発振器は通常、(RC発振器のように)パーセント単位ではなく、100万分の1(PPM)単位で変動を測定します。
  • セラミック発振子の許容誤差は10分の1パーセントの位の範囲です。
  • パッシブRC発振器 - 温度変動は、マイクロコントローラから切り離して使用すればより適切に制御できますが、それでも電源レベルの変化や考慮すべき電気的干渉により起こる変動があります。これは高次の影響であり、外部発振器の中では最も精度が低くなっています。

タイマ

タイマには、制限値までカウントするものと、ゼロまでカウントダウンするものがあります。 マイクロコントローラには、汎用タイマやウォッチドッグタイマなど、複数のタイマを搭載できます。 タイマは通常、メインCPUクロック(データシートではHCLKと表記されることが多い)に接続され、プリスケーラによって分周されます。

通信方式(UART、SPI、I2C)

通信エコシステム(QWiiC、STEMMA QT、Grove)

汎用入出力(GPIO)

汎用入出力(GPIO)ピンは、実世界と繋げたり、外部コンポーネントとのインターフェースを可能にします。 通常、ICパッケージの外側にあるプログラム可能なポートで、システムの入力または出力として使用できます。

  • 入力 - ボタン、アクチュエータ、センサ
  • 出力 - LEDライト、ブザー、リレー、ディスプレイ

A/Dコンバータ(ADC)

組み込みシステムに搭載された外部アナログ回路とのインターフェース接続を容易にするために、ほとんどのマイクロコントローラには基本的なA/Dコンバータ(ADC)回路がパッケージに組み込まれています。 ナイキストの定理によれば、純粋な正弦波を正確に再現するには、サンプリング周波数は入力信号の2倍以上でなければなりません。 より安全な方法は、ソースから取り込む信号の最大周波数を取得し、それを10倍してサンプリング周波数とすることです。

注:ADCは、他のIOとは異なる電圧で動作する場合があります(詳細はデータシートを参照してください)。 IOの焼損を防ぐためにもこの点を意識しておくこととよいでしょう。

ジッタは次のように定義されます: 理想的な時間位置からのデジタル信号の重要な時点の短期的変動 イベントの理想的なタイミングからの変移 従って、「ジッタ」という用語はシステム内のタイミングエラーを表しています。

詳細はこちら

ときどき、MCU の開発中にハングアップ関連の問題が発生することがあります。 つぎの問題を確認することで、問題がどこにあるかを把握するのに役立つ場合があります。

詳細はこちら

Image of Frequently Asked Questions - Embedded Systems Design

このページでは、組み込みシステムの設計に関するよくある質問を取り上げます。ここで紹介する質問の中には、広範な内容や概念的なものがあります。

詳細はこちら

Image of Serial Communication Issue in MCU design

ときどき MCU 設計では、UART、SPI、I2C、ソフトウェアUARTなどでシリアル通信の問題が発生することがあります。

詳細はこちら

Image of What is meant by Registered memory?

レジスタードとは、SDRAMのメモリをバッファリングするための手段です。

詳細はこちら

低電力アプリケーションでは、大電流消費に対応するのが面倒なことがあります。

詳細はこちら

Image of High Current Consumption in Low-power MCU application

通信プロトコルのローエンドでは、I²CとSPIの両方が使用されているのが一般的です。どちらも、マスタ/スレーブの2つの集積回路間のインターフェースです。

詳細はこちら

マイクロプロセッサ

マイクロプロセッサユニット(MPU)は多くの場合、システムの頭脳と考えられます。 これは、コードの実行、データの取り出し/メモリへの送信、そして、データに演算などを行うロジックを内蔵した集積回路(IC)です。

マイクロプロセッサは通常、サーバ、ワークステーション、デスクトップそしてラップトップコンピュータに搭載されています。マイクロプロセッサベースの設計を最大限に活用するため、通常、汎用オペレーティングシステムも搭載され、メモリとストレージの要件がさらに高くなります。

MPUは非常に高性能で、クロックサイクルも速いですが、マイクロコントローラと比べて価格もはるかに高いです。

マイクロプロセッサを使用する場合、通常はソケットタイプを確認してから、組み込まれた通信チップやメモリ管理チップと互換性のあるボードを探します。

マイクロプロセッサを使用して設計する場合、命令セットアーキテクチャ(RISC-V、x86、ARM)を理解しておくことも重要です。

マイクロプロセッサはどこで使用されていますか? 回答を見る

  • サーバ
  • ラップトップを含むコンピュータ
  • モバイルデバイス
  • ビデオゲーム端末

マイクロコントローラ(MCU)

マイクロコントローラはマイクロプロセッサよりも性能が劣りますが、より多くのシステムを内蔵しており、価格も抑えられています。

マイクロコントローラには通常、処理回路、ある程度の容量のフラッシュベースストレージ、処理用のランダムアクセスメモリ(RAM)を内蔵しています。 設計はコンパクトかつ効率的で、さまざまな周辺インターフェース回路(GPIOやADCなど)も内蔵しています。

スタンドアロンのマイクロプロセッサは一般的にGPOSを実行するのに対し、マイクロコントローラはRTOS(リアルタイムオペレーティングシステム)を実行します。

マイクロコントローラはどこで使用されていますか? 回答を見る

  • 自動販売機
  • 医療機器
  • 家電製品
  • ロボット

ST MicroelectronicsのSTM32マイクロコントローラファミリ

ST MicroelectronicsのSTM32マイクロコントローラファミリは、最も人気のあるマイクロコントローラファミリの1つです。 ARMプロセッシングコア、フラッシュメモリ、スタティックRAMのほか、幅広い周辺モジュールを1つのパッケージに統合しています。そのため、STM32のほぼすべてのバージョンが、多くのアプリケーションで柔軟に対応できるコンポーネントとして使用できます。 STM32の第1世代は2007年にリリースされ、それ以来数回の設計改良が行われてきました。 最新版ではクロック速度が48MHz~400MHz以上まで対応しており、ほぼすべてのアプリケーションに適した製品ファミリをご用意しています。

第1世代STM32マイクロコントローラの参考仕様を以下に示します。

  • コア:72MHz動作の32ビットシングルコアARM® Cortex®-M3
  • コネクティビティ:CANbus、I²C、IrDA、LINbus、SPI、UART/USART、USB
  • データ変換:A/D変換 - 10チャンネル(12ビット分解能)
  • プログラムメモリサイズ:64KB(64K x 8)のフラッシュメモリ
  • RAMサイズ:20K x 8

Texas InstrumentsのMSP430マイクロコントローラファミリ

Texas InstrumentsのMSP430マイクロコントローラファミリ(シリーズ)は、低消費電力で低コストの16ビットマイクロコントローラの商品ラインです(を取り揃えています)。 1992年に初めて導入されたMSP430は、FRAM(強磁性メモリ)やその他の周辺デバイスなど、Texas Instrumentsの最新技術を取り入れるため、継続的に更新と改良が行われてきました。より産業環境向けに最適化されたMSP430は、すべての最新機能を備えているわけではありませんが、低消費電力と安定性により、適切なアプリケーションでは非常に人気があります。

第3世代の低消費電力モデルの参考仕様を以下に示します。

  • コア:16MHzで動作する16ビットMSP430 CPU16
  • コネクティビティ(または、接続性):I²C、SPI、USI用チャネル
  • データ変換:A/D変換 - 8チャンネル(10ビット分解能)
  • プログラムメモリサイズ:8KB(8K x 8)のフラッシュメモリ
  • RAMサイズ:256 x 8 

Microchip TechnologyのATmega328マイクロコントローラファミリ

MicrochipのATmega328マイクロコントローラファミリでは、素の演算能力よりもシンプルさ、低消費電力および低コスト性が求められる場合に非常に人気の高い8ビットマイクロコントローラの商品ラインです。 クロック速度は20MHzで、32KBのフラッシュメモリと2KBのスタティックRAMを搭載しています。

ATMEGA328 シリーズは、より高度なモデルにある複雑さがなく、コストがかからないシンプルな8ビットマイクロコントローラを求めるアプリケーションで成功を収め、20年以上に渡ってArduinoの開発ボードの中核となっています。

第1世代のATmega328マイクロコントローラの代表的な仕様を以下に示します。

  • コア:20MHzで動作する8ビットAVR
  • コネクティビティ(または、接続性):I²C、SPI、UART/USART
  • データ変換:A/D変換 - 6チャンネル(10ビット分解能)
  • プログラムメモリサイズ:32KB(16K x 16)のフラッシュメモリ
  • RAMサイズ:2K x 8  
Image of Measuring Phase Offset Using a Microcontroller

はじめに 2つの信号間の位相オフセット(位相シフトとも呼ばれます)の測定は、力率補正や信号処理などの実用的なアプリケーションでさまざまな用途があります。

詳細はこちら

Image of Selecting a Microcontroller for Your Classroom

最近、教育関係者からいくつかの要望を受けました。彼らは、教室に最適なマイクロコントローラを選択するためのガイダンスを求めています。

詳細はこちら

Image of Setting Up an Empty STM32CubeIDE Project

STM32CubeIDE で新しいプロジェクトを作成する最も簡単な方法は、STM32 プロジェクトウィザードを使用することです。

詳細はこちら

Image of Using the IDD Current Measurement Feature on the STM32L053 Discovery Board

はじめに STMicroelectronicsのSTM32L053 Discoveryボードは、超低消費電力マイクロコントローラSTM32L0シリーズのSTM32L053C8 MCUを搭載しています。

詳細はこちら

LEDの点滅を除けば、シリアルコンソールへの情報メッセージの出力は、おそらく最も単純かつ簡単で、組み込みプロジェクトのデバッグに最もよく使われる手法です。

詳細はこちら

Image of How to Find Programmers for MCUs

当社のマイクロコントローラユニットに対応したプログラマを見つけるのは、特にドキュメントが複雑な場合には難しいことがあります。

詳細はこちら

Image of Common MCU Flash Issue

フラッシュメモリは、ほとんどの Microcontrollers (MCU) に内蔵されたオンチップ機能で、不揮発性の記憶メディアです。

詳細はこちら

デジタルシグナルプロセッサ(DSP)/デジタルシグナルコントローラ(DSC)

デジタルシグナルプロセッサ(DSP)は、オーディオ、ビデオ、リアルタイム測位処理など、高速デジタル信号処理を必要とするアプリケーション向けに設計された組み込みマイクロプロセッサです。通常、DSPチップは、アプリケーションに合わせて開発者がプログラムできるデジタルフィルタ機能と共に、高分解能のアナログデジタルコンバータ(ADC)およびデジタルアナログコンバータ(DAC)を搭載しています。

デジタルシグナルコントローラ(DSC)は、デジタルシグナルプロセッサ(DSP)とマイクロコントローラの間にある特殊な組み合わせと考えることができます。

DSCは多くの場合、ウォッチドッグタイマ、パルス幅変調(PWM)チャンネルのほか、C言語やハードウェアにネイティブなアセンブリ言語などの低水準言語でのプログラム能力など、マイクロコントローラに見られる機能や特長を備えたものが多いです。

デジタルシグナルコントローラは、複数の強力なA/Dコンバータチャンネル、データシフトマトリクス、ほとんどのMCUの機能にあまり見られない有限インパルス応答フィルタの実装など、DSPのコアアーキテクチャと機能を備えたものもあります。

セキュリティICと高性能DSC、低消費電力MCUを組み合わせて、効果的な組込みシステムセキュリティプラットフォームを実装します。

詳細はこちら

Image of How to Ensure Embedded System Security Using DSCs and MCUs

このページでは、MicrochipのデジタルシグナルコントローラdsPIC33F/PIC24HファミリのFLASH自己書き込み機能(Self Write capability)をサポートするC関数を説明します。

詳細はこちら

ADII社のVDSP-SHARC-PC-FULLは、SHARCプロセッサをサポートするVisual DSP++ソフトウェア開発環境です。

詳細はこちら

開発者は、デジタル信号コントローラのファミリを使用して、車載用およびE-モビリティシステムのより効果的な設計を迅速に実装することができます。

詳細はこちら

Cross Section of an ear canal with hearing aid device

PSAPの性能の改善は、MAX98050のような先進のコーデックで生成されたアンチノイズ信号を用いて櫛状効果を緩和することで可能になります。

詳細はこちら

チップとキットを使用して、電池駆動アプリケーションの効率的な動作を実現するGaNベースのBLDCモータドライブを迅速に実装することができます。

詳細はこちら

フィールドプログラマブルゲートアレイ(FPGA)

フィールドプログラマブルゲートアレイ(FPGA)は、ユーザーがプログラム可能なインターコネクトで接続された、構成可能な論理ブロック(CLB)の集合体を中心とした半導体デバイスです。 CLBやCLB間の接続により、工場出荷後にアプリケーションに合わせて再プログラムしたり、機能を追加したりできます。

FPGAの堅牢な構造と速い演算速度は、過酷な環境や、ASIC(特定用途向け集積回路)では導入(セットアップ)にコストがかかりすぎるような場合に魅力的なものとなります。

ほとんどのFPGAは、スタティックランダムアクセスメモリ(SRAM)ベースのメモリによって何度も再プログラムできますが、ワンタイムプログラマブル(OTP)オプションも存在します。

FPGAは通常、他の組み込みオプションと比べて単価が高くなっています。 また、開発ボードは専用のソフトウェアが必要な場合もあります。

FPGAはどこで使用されていますか? 回答を見る

  • ネットワーク機器
  • 携帯電話基地局の信号処理
  • 自動車のビジョンシステム
  • 防衛誘導システム

ハードコアFPGA、ソフトコアFPGAとは何ですか? 回答を見る

ハードコアFPGAには、固定/スタティックのマイクロプロセッサユニット(MPU)が搭載されています。 これにより、高速で高性能なプロセッサを実現できます。 ハードコアプロセッサは再構成できません(事前に定義されたシリコンの一部のため)。

ソフトコアFPGAには、FPGAファブリックを使用して実装されたプロセッサが含まれています。 一般的にハードコアFPGAよりも動作が遅く、消費電力が大きく、サイズも大きいです。 しかしながら、再構成が可能であり、よりカスタマイズされたニーズにも対応できます。

Image of Implementing a Robust Microcontroller to FPGA SPI Interface: Part 1 - FPGA Challenges

この連載記事では、マイクロコントローラ(uC)とフィールドプログラマブルゲートアレイ(FPGA)のシリアルペリフェラルインターフェース(SPI)の関係について説明します。主な目的は、FPGAの制御を容易にすることです。

詳細はこちら

Image of Implementing a Robust Microcontroller to FPGA SPI Interface: Part 2 – Protocol Definition

この記事シリーズの主な目的は、マイクロコントローラー(uC)とフィールドプログラマブルゲートアレイ(FPGA)間でデータを迅速かつ確実に転送するメカニズムを開発することです。

詳細はこちら

Image of Implementing a Robust Microcontroller to FPGA SPI Interface: Part 3 - FPGA Top level Modules

この回でも、マイクロコントローラ(uC)とフィールドプログラマブルゲートアレイ(FPGA)のインターフェースの探求を続けます。

詳細はこちら

Detail view of a Block Diagram showing a FPGA Logic Block

エンジニアリング 組み込みプロセッシング 半導体および開発ツール バイナリに興味がある方には、パート1~4まで見逃してしまったんじゃないかと思うくらい短いですが、この投稿は私が特に気に入っている電子デバイス、フィールドプログラマブルゲートアレイ(FPGA)の簡単な紹介記事です。

詳細はこちら

Image of Efinity IDE from Efinix - Getting Started Tutorial

このEfinix Efinityソフトウェア(バージョン2021.2.323.1.8)の紹介では、TrionのT120F576開発ボード を使用して簡単なプロジェクトを作成する方法について説明します。

詳細はこちら

Image of Why and How to Use Efinix FPGAs for AI/ML Imaging

Efinix FPGAと関連する開発ボードを使用することで、設計者はAI/ML画像処理アプリケーションを迅速に開発・デプロイできます。

詳細はこちら

Image of How to use FPGA SoCs for Secure and Connected Hard Real-Time Systems

FPGA SoCとLinux対応RISC-V MCUサブシステムを組み合わせて、セキュアなリアルタイムセーフティクリティカルシステムを実現します。

詳細はこちら

シングルボードコンピュータ(SBC)

シングルボードコンピュータ(SBC)は、コンパクトな形状で演算能力と処理速度の両方を提供します。 その名が示すとおり、SBCはマイクロプロセッサを搭載した完全なコンピュータであり、通常は1辺が数インチしかない1枚の回路基板上に縮小されてコンパクトにまとめられています。

SBCは一般的なARMまたはx86ベースのマイクロプロセッサコアを搭載し、通常、完全な汎用オペレーティングシステム(GPOS)を実行します。GPOSの大半はLinuxディストリビューションですが、Androidモバイルデバイスのオペレーティングシステムや、Windows 10/11のオペレーティングシステムを実行できるボードもあります。

サイズが小さいので、SBCは通常、最新のデスクトップコンピュータやワークステーションには太刀打ちできませんが、それでも最新のボードの中にはクロック速度が最大1GHzに達し、最大8GBのRAMメモリを搭載するものもあります。

SBCは低価格で優れた演算能力を備えているため、教育現場やメイカースペース(Makerspace)から、産業や航空宇宙分野まで、幅広いアプリケーションにとって非常に魅力的なものになっています。様々なボードサイズとインターフェースオプションの中から、お客様のアプリケーションに適した形状のSBCが必ず見つかるはずです。

SBCの欠点

SBCは高性能で柔軟性のあるボードですが、プロジェクトに導入する前にはいくつか考慮しなければならない注意点があります。

1つ目は、ほとんどのSBCは単純なプラグアンドプレイのプラットフォームではなく、完全にセットアップして外部ソースからオペレーティング システム ソフトウェアをインストールするためには、たいていは外部コンピュータを必要とするセットアップ のプロセスが必要となることです。

また、考慮する必要がある周辺機器もいくつかあります。モニタ、キーボード、外部記憶装置、適切な電源やケーブルも別途購入しなければならない場合が多いです。

Image of Webinar: Smart Home Automation: Join Your BeaglePlay and BeagleConnect with Home Assistant

この記事では、beagleboard.orgのスマートホームオートメーションに関するウェビナー「Smart Home Automation: Join Your BeaglePlay and BeagleConnect with Home Assistant」から要点とよくある質問を取り上げます。

詳細はこちら

Image of Differences in Raspberry Pi Compute Boards

2つのRaspberry Pi コンピュータボードの違いは何ですか?他にどのような部品が必要ですか?

詳細はこちら

シングルボードコンピュータ(SBC)を使うとエッジで強力な処理性能を発揮させることができますが、設計者は最善のソリューションを選択して適用する方法を知っておく必要があります。

詳細はこちら

Image of Speed Configuration of Industrial Automation Facilities Using Remote Microcontroller Debuggers

Wi-Fi経由で接続されたリモートマイクロコントローラデバッガは、複数の産業用SBC向けにプログラミングとファームウェアデバッグを大幅に簡素化します。

詳細はこちら

マイクロコントローラ開発ボードは、ボードを適切に選び事前にQAテストを行うことで、産業用アプリケーションに使用できます。

詳細はこちら

Image of Getting Started with the Raspberry Pi Pico Multicore Microcontroller Board Using C

RP2040 MCU用のRaspberry Pi Pico開発ボードを使用することで、開発者はすぐにアプリケーションを立ち上げることができます。

詳細はこちら

製品