ARMマイクロコントローラーでのプログラミングを開始する、最も安価で(簡単な)方法[非公開]


18

ARMプロセッサの使用を開始し、長年使用していたPICから移行します。8ビットモデルは1ドル未満で利用でき、プログラマーは10ドル未満で利用できましたが、使いやすさと低コストで始められました。しかし、同じ価格でいくつかのARMチップによって彼らの力がis小化され、クローズドソースのソフトウェアにうんざりしているのを見て、切り替えたいと思います。

開発ボードを入手するのを避け、代わりに安価な汎用ブレイクアウトPCB($ 1)を使用して、それを実現するために不可欠な外部コンポーネントを使用するブレッドボードでまっすぐ進みます。

この方法でARMチップをプログラミングするためのオプションは何ですか?USBを使用してPCに接続し、チップとの単純なシリアル接続(ICSPなど)を介してプログラミングするPICKit2などのプログラマーはいますか?ARMメーカー、ARMバージョン、個々のチップごとに、セットアップの違いはどれくらい必要ですか?(ST、Atmel ...)たとえば、各メーカーは独自のコンパイラ、プログラマ、IDEなどを必要としますか?または、すべてに共通のツールはありますか?

編集:わかりましたので、より多くの研究の後、比較的安価なソリューションを考え出したと思います、stm32開発ボードはDAPLINKファームウェアでフラッシュできますが、公式のgithubファームウェアはネイティブに動作するとは思わない(これはすべて推測までメールで私のstm32開発ボードを入手してください)。しかし、readbear mk20に含まれているdaplink_usbボードはstm32チップを実行していることがわかりました。ファームウェアをリリースしました。8mhzクリスタルと互換性を持たせるために行を変更する必要があります(詳細は以下のフォーラム投稿にあります)。それ以外の場合は、水晶を16 MHzのものと交換します。開発キットが到着したときにこれを確認したら、更新します。

GITHUB REPO

良いフォーラムリソースはこちら

Redbear Githubフォーク


4
5ドルでRaspberry Pi Zeroが手に入ることを理解しておくのはいいことです。RaspberryPi Zeroは、完全に通常の(そして無料の)GCCによってサポートされています。そして、ARMマイクロコントローラーがどれだけ高速であるかという衝撃を乗り越えたばかりの場合、RPiは再びあなたを驚かせます。IMOの主な問題は、RPiの下にあるメッセージを理解しているARMメーカーがないことです。ARM micrcontrolllersでこれ以上稼ぐことはありませんが、すぐに使用できるCPUモジュールを提供することで、さらに多くのことが実現できます。
MSalters

4
組み込みアプリケーションですぐに使用できるCPUモジュールを使用するのはやり過ぎな場合があります。
ベンスカウリック

3
@ MSalters、RPIはかさばる...付属のエキストラは必要ありません。高速なリアルタイム処理のために、非常にコンパクトなスペースに必要最低限​​のものを必要とします。また、RPIは許容されるよりも多くの電力を消費します。
CL22

3
もちろん、ほとんどの開発ボードはそのようになります。しかし、MCU開発の素晴らしい点の1つは、ハードウェアとソフトウェアの開発をそれぞれある程度まで分離できることです。
イグナシオバスケス-エイブラムス

2
統合されたUSB-SWDブリッジを備えた低コストの開発ボードを入手することを検討してください。これにより、コードのダウンロードだけでなくデバッグ機能にもアクセスできます。必要に応じて、SWDアクセスを他のターゲットに分割できます。
ショーンHoulihane

回答:


14

stm32F0およびstm32L0ラインには約10ドルのディスカバリーボードが搭載されており、Keilはこのラインにフル機能のIDEを無料で提供します。

Keil free pro MDKのインストール手順はこちら

また、ARMには、PICからCortex M3への移行に関するホワイトシートがあります。


7
+1ただし、ほとんどの(すべての)ディスカバリーボードにはビルトインSTLINKがあり、ジャンパーを構成することでスタンドアロンデバイスのプログラミングにも使用できます。
ロジャーローランド

@RogerRowland-素晴らしい点。以前、ボードプログラマを自分のボードに使用しました。一般に、ディスカバリーは素晴らしいラインです。取り付け穴があればいいのに!
スコットサイドマン

NucleoまたはDiscoveryをお勧めしますか?それらは同じ価格のようで、両方ともST-LINKを備えています。
デビッド

@david、核を使用していませんが、発見は私によく役立っていると言えます。その価格帯で、それぞれ1つを取得します(ただし、2つの発見で行きます!)
スコットサイドマン


7

最も簡単な方法-フル機能のKeil Proコンパイラーの$ 10,000以上のシェルアウトは、JLINKデバッガーを購入します(別の$ 1K多分-いくつかの制限がある安価なものがあります)。IARは別の高価な可能性です(30日間のIARデモで動作するSTM32F7 Cortex M7プロセッサの例が提供されています)

最も安価な方法-JLINKデバッガプラグインを備えた(無料の)GCC-ARM + Eclipseツールチェーンをダウンロードしてインストールします。JLINKクローンを20ドルかそこらで入手します。これは大丈夫だと思います-まだテストされていませんが、デバッグ用です。

ネットには後者についての詳細な指示がありますが、特定の仮定を立てています。特にWindowsの場合は、1日以上かけてそれを実現することを期待してください。他のIDEに提供されている多くのサンプルを、多少の作業なしで使用できると期待しないでください。印象的なことに、無料のツールチェーンは「パック」を使用できます(「実験的」)。

Rowley Crossworks(gccを使用していると思います)など、経済的に苦痛の少ない他のシステムがあります。Atmel Studioも別の製品ですが、非常に経験豊富なファームウェア開発者から苦情がありました(自分で簡単に遊んだだけです)。

コードのニーズが32K未満の場合、同じKeilシステムを無料で使用できます(コード限定バージョン)が、アップグレードパスは簡単ですが、かなり高価です。たとえば、SAME70の簡単なイーサネットの例をコンパイルしません。PICまたはAVRをローエンドARMに置き換える場合は問題ありませんが、実際にLCDディスプレイと通信し、複雑な通信プロトコルを実行する必要があるため、ARMに移行する場合はそれほど効果はありません(おそらく、コンパイル済みモジュールは、 32Kの制限、私はその特定の角度を調査していません)。


7

私が使用するものは次のとおりです。

  • STM32F103「最小システムボード」(ここCortex-M3コアなどを参照)は、外部コンポーネントなしで3.3VまたはUSB電源で動作し、クローンはそれぞれ約3米ドルです。これは、「安価な汎用ブレイクアウトPCBを使用してブレッドボードに直接アクセスする」というあなたの要求にぴったりです。
  • ST-Link V2 USBプログラマークローン(このように見えます)は、約2米ドルから始まり、オンチップデバッグもサポートしています。
  • EmBitz(以前のEm :: Blocks)、gccツールチェーンを備えたIDE、US $ 0
  • 新しいプロジェクトの開始を支援するSTMのCubeMX、0米ドル

5

最も簡単なスタートは、おそらくサードパーティのクローンボードの1つです。STからのランダムな例。それには、「SWD」プロトコルを使用するプログラマが必要です。STは「ST-LINK」ブランドのものを作っていますが、STデバイスでST-LINKのものを使用する必要があるのか​​、それとも本当に汎用なのかはわかりません。

SWDとJTAGの組み合わせは、ARMシステムでICSPの役割を果たし、プログラミングおよびデバッグ機能を提供します。

ソフトウェアに関しては、通常、ほとんどのチップでGCCおよびOpenOCDを使用できます。詳細はデバイスごとにわずかに異なります。専門家は頻繁にKeilツールチェーンを使用しますが、これは非常に高価です。

一部のデバイス(Kinetisシリーズなど)にはUSBブートローダーがあります。デバイスは大容量記憶装置として表示され、BINファイルをダウンロードしてボタンを押します。プログラマーが不要な、最も簡単なソリューション。Atmel AT91には、SAM-BAと呼ばれる独自のプロトコルで動作するUSB​​ブートローダーがあります。


stディスカバリーおよびヌクレオボードにはstlinkがあり、スタンドアロンstlinkドングルより30%安くなります。さらに、少なくとも1つのmcuを再生できます。stlinkを取得することは依然として有効であり、openocdを使用してswdを介して他のstまたはnon-st cortex-mチップに接続できます。
old_timer

1
私が試したKenetisisチップに興味があります(まだ)ブートローダーがなく、swlinkのみを使用して接続するため、cmsis-dapが必要なので、使用できません。同様に、samd21にはブートローダーが搭載されていないため、ブートローダーを追加できますが、本質的にはアプリケーションフラッシュスペースにあり、誤って消去することはほとんどありません。stm32sはまだ...多分あまりにも離れて起こっていること、DO NXPとしてブートローダを持っている
old_timer

3

IDEの面では、Silicon LabsEclipseに基づいたSimplicity Studioを提供しています。GCCには標準で付属しています。

販売しているすべてのスターターキットには組み込みのサポートがあり、比較的簡単に開始できます。

プログラミングでは、スターターキットにSegger J-Linkドライバーを使用します(無料)。キットをUSBに接続するだけです。

Atmelには、Visual Studio IDEに基づくStudioがあり、Atmelデバッガーのいずれかに接続できます。これもGCCに同梱されています。

両方のベンダーには、デバイスを駆動するための多数の(非常に多数の)例があります。

私は両方を使用しましたが、ドキュメントは完全ではありませんが(完全ではありません)、比較的痛みを伴わずに作業を進めるには十分でした。

STキット(およびその他)の多くはmbed対応です。


2

サイプレスは、ブレークオフ部分にUSBベースのプログラミングアダプターを含むDIP-40フォームファクターを備えたPSOC-4200ベース(ARM Cortex M0)ブレイクアウトボードを製造しています。ブレイクアウトボードと接続された(取り外し可能な)プログラミングアダプターの価格は、Digi-KeyからなんとUS $ 3.99です。


1

CooCoxをお勧めします -同じGCC + Eclipseの組み合わせですが、ツールチェーンを手動で構成する必要はなく、インストールしてコーディングを開始するだけです。


良さそうに見えますが、Atmelはサポートされていません。ST M7コアはサポートされていますか?
スペロペファニー

Atmelはサポートされていないようです。コンポーネントにはSTM32F7シリーズのライブラリがいくつかあります。CoIDEの未来ははっきりしていないと言わざるを得ません。Webサイトは混乱しているため、更新は今ではまれですが、ARMプログラミング(特にSTM32)から始めるのに最適な選択肢です。
フランカー

1

私の考えでは、TI、NXP(NXP + Freescaleで構成される)&STはcortex Mの世界で主要な役割を果たし、特にSTとNXPは新規参入者に非常に競争力のあるツールを提供します。チュートリアル、ライブラリ、デバイスドライバー、ツールなど

その後:

  1. mbedオンラインコンパイラ+ mbedボード
  2. STM32ディスカバリーボード(STM32F407discoveryなど)+ビルトインst-linkデバッガー+ SPLまたはHAL(STM CUBE)フレームワーク+無料ライセンスkeil IDE。
  3. LPCディスカバリーボード+ LPC-link 2デバッガー+ LPCOPENフレームワーク+ LPCXPRESSO無料ライセンスIDE。

番号2と3は、趣味よりも上位レベルに適しています。また、IAR、Keil、さらにはLPCXPRESSOなどのプロフェッショナルツールの無料ライセンスを使用すると、プロフェッショナルエリアに移動する際の痛みが軽減されることを忘れないでください。


1
ARMのmcuライブラリとツールチェーンはmbed-[ developer.mbed.org] [developer.mbed.org]を
ショーンHoulihane
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.