タグ付けされた質問 「arm」

32ビットマイクロコントローラーIP。ARMコアを設計しているARMの会社は、コントローラー自体を製造していませんが、IPを他のメーカーにライセンスしています。ARMは主要な32ビットコントローラであり、数十のサプライヤから入手できます。

1
STM32F103C8T6ボードから始める方法は?
私はここ数年、8ビットAVR MCUを使用して、生徒と一緒にラインフォロワーロボットを構築しています。オドメトリやセンサーフュージョンなど、CPUを多用する機能を追加したいので、ARM Cortex-M3にステップアップしたいと思います。 要件は次のとおりです。 8つのアナログ入力、 4つのPWM出力、 I 2 C、 2つの直交エンコーダ入力、 シリアルI / O、 ロボットに物理的にアクセスせずにワイヤレスで自己プログラミング。 マルチプラットフォームツールチェーン+ IDE(OS X、Linux、Windows)。 これまでに行った手順は次のとおりです。 このSTM32F103C8ベースのボードを使用しています。このMCUには、ソフトウェアで実装する予定の2 x QEIを含め、必要なものがすべて含まれていると思いますが、これはたまたまハードウェアに実装されているので、非常に優れています。 ボードhttp://eud.dx.com/product/high-quality-cortex-m3-stm32-stm32f103c8t6-development-board-w-swd-interface-844380789 プログラマーhttp://eud.dx.com/product/st-link-v2-programmer-emulator-mini-stlink-downloader-for-stm8-stm32-mcu-development-board-844380733 私はこれに従って私のツールチェーン+ IDEを設定しました: http://www.davidrojas.co.uk/stm32f3discovery-on-mac-os-x-using-eclipse-gcc-arm-and-openocd/ このチップのドキュメントは、私がダウンロードしたいくつかのPDFに散在していることがわかりました。 STM32F103x8データシートhttp://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00161566.pdf リファレンスマニュアルhttp://www.st.com/st-web-ui/static/active/en/resource/technical/document/reference_manual/CD00171190.pdf AN2606(メモリブートモード)、PM0075(フラッシュプログラミングマニュアル)、AN3155(シリアルブートローダープロトコル)のような他のいくつかのドキュメント。これはおそらく将来必要になるでしょう。 私はSTM32F10x標準周辺機器ライブラリもダウンロードしましたが、それにより、新しいSTM32CubeF1を入手するよう勧められました。 http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/LN1939/PF257890 http://www.st.com/web/en/catalog/tools/PF260820 最後に、Joseph Yiuによる「The ARM Cortex-M3の決定的なガイド」も入手しました。これは、ボードが到着するのを待っているときに読んでいます。 私の質問は: 控えめに言っても、私はドキュメントに少し圧倒されており、すべてを手に入れたかどうかさえわかりません。たとえば、データシートとリファレンスマニュアルには、直交エンコードされた入力が可能な3つのタイマーがチップにあると記載されています。しかし、タイマーを制御するレジスターのドキュメントが上記のPDFのどこにも見つかりません。何が欠けていますか? (古い?)標準ペリフェラルライブラリ、または(新しい?)キューブのものを使用する必要がありますか?違いは何ですか?どちらのライブラリでも、レジスタを直接操作する必要がなく、推奨される方法であることを理解しています。私は正しいですか? ライブラリのドキュメントはどこにありますか(埋め込まれたdoxygenのコメントに加えて、これはすばらしいのですが、検索可能なhtml / pdfが必要です)。 私はツールチェーンとしてEclipse + GCC ARM + OpenOCDを選択しました。これは、コードサイズやその他の制限なしに3つのメインOSで実行できる唯一のオプションだと考えているためです。他にオプションはありますか?

4
Cortex M3 .bss領域の初期化用のベアメタルスタートアップコード
ここから着想を得て、腕皮質M3のベアメタルスタートアップコードを開発しました。ただし、次の問題が発生します。main.cでunsigned char型など、初期化されていないグローバル変数を宣言するとします。 #include ... unsigned char var; ... int main() { ... } これにより、STM32 f103の.bss領域は、_BSS_START = 0x20000000で始まり、_BSS_END = 0x20000001で終わります。さて、スタートアップコード unsigned int * bss_start_p = &_BSS_START; unsigned int * bss_end_p = &_BSS_END; while(bss_start_p != bss_end_p) { *bss_start_p = 0; bss_start_p++; } .bss領域全体をゼロに初期化しようとします。ただし、そのwhileループ内では、ポインターは4バイトで増加します。したがって、1ステップ後にbss_start_p = 0x20000004なので、無限ループなどにつながるbss_end_pとは常に異なります。 これに対する標準的な解決策はありますか?どういうわけか、.bss領域の次元を4の倍数に「強制」すると思いますか?または、unsigned charへのポインターを使用して.bss領域をウォークスルーする必要がありますか?おそらく次のようなものです: unsigned char * bss_start_p = …

3
ソフトウェア割り込みと機能
MCUを使用して約3年経った後も、ソフトウェア割り込みの使用方法がわかりません。私はSTM32でいくつかのジョブを実行しましたが、ソフトウェア割り込みを使用したことがありません。実際、これは私にとって大きな問題です。 単純な関数を使用してタスクを実行できるのに、ソフトウェア割り込みを使用する必要があるのはなぜですか?ソフトウェア割り込みと関数の違いは何ですか? いつでも好きなときに、関数(ジョブ用に作成したもの)を呼び出すことができます。単純な関数の代わりにソフトウェア割り込みを使用することにはいくつかの利点があるはずです。よくわかりませんが、ソフトウェア割り込みにはメリットがあると思います。ソフトウェア割り込みに優先度を割り当ててから、ソフトウェア割り込みに高い優先度を与えて、ハードウェア割り込みがタスクを壊すのを防ぐことができます。
10 arm  stm32  interrupts 

2
組み込みアプリケーション用の固定小数点三角法
組み込みアプリケーションで回転(およびその他の)変換を行う必要があります。これには、sin()、cos()およびtan()関数が必要です。私はあなたがルックアップテーブルを使用できることを知っています、そしてそれは私が自分の研究をすることを見つけることができた唯一の解決策ですが、そこに良い固定小数点トリガーライブラリがありますか? アプリケーションにcortex M3を使用することを考えているので、アプリケーションをすばらしく保つために、できるだけ浮動小数点から離れたいと思います。
9 c  embedded  arm 

7
5VトレラントARM [終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 電気工学スタック交換のトピックになるように質問を更新します。 5年前休業。 アナログセンサーや他のさまざまな5VデジタルIOを多用するレガシー5Vシステムがあります。ARM MCUに移行して、この設計をすべてCortex-M3ベースの新しいシステムと一致させることを検討しています。ADC入力の精度を失わないように、また追加の3.3V電源を実行する必要がないように、5V MCUを使い続けたいと思います。私は5V互換のARM MCUを探していましたが、富士通製のFM3シリーズしか見つかりませんでした。私の質問は: 5Vマイクロを引き続き使用する価値はありますか、それともADCの分圧器とデジタルIOのレベルシフター/トランジスタに移行する必要がありますか? Fujitsu FM3ラインの経験はありますか? 他に5V互換のARMマイクロコントローラーはありますか?
9 arm  analog 

5
OSのないRaspberry PIは?
私は最近、Arduinoで多くのことをしています。オペレーティングシステムやドライバーを必要とせずにC ++コードを直接実行できるため、非常に簡単です。 私はいくつかの調査とAFAIKを行いました。通常、Raspberry PIにLinuxをインストールして、PythonスクリプトまたはC ++バイナリを作成します。 質問:オペレーティングシステムがなくてもコードを実行できますが、HDMIおよびSDカードを使用できますか?

2
無線でARMをアップグレードする
GSMモデムを搭載したARMボードを作成します。 ARMファームウェアを無線でアップグレードできるようにしたいと考えています。 そのための良い、信頼できる、オープンソースのソリューションはありますか? そうでない場合、この機能を備えた有料OSはありますか?

6
8ビットおよび16ビットマイクロコントローラーの場所はどこですか?なぜ32ビットが引き継がれていないのですか?
32ビットマイクロコントローラーを選択するためのコストとパフォーマンスのトレードオフの点で、実際のカットオフポイントは何ですか? 言い換えると、ARMアーキテクチャの台頭と支配により、なぜ8ビットおよび16ビットのマイクロコントローラをまだ使用しているのですか?彼らはまだずっと安いですか? 非常にローエンドのデバイスは、大きくて複雑なアーキテクチャによって提供されるリソースを必要としないことを理解しています。ただし、コストが同じ範囲に収束しているように見える場合に、それらを引き続き使用する本当の動機は何ですか?

3
Cortex M0のCMSISに割り込みハンドラーはどのように実装されますか?
LPC1114キットを持っています。過去数日間、Cortex M0のCMSIS実装を調査して、その中でどのように処理が行われているかを調べてきました。これまでのところ、各レジスタがどのようにマップされ、どのようにアクセスできるかを理解しました。しかし、それでも割り込みがどのように実装されているのかわかりません。CMSISの割り込みについて私が知っているのは、スタートアップファイルにいくつかの割り込みハンドラ名が記載されていることだけです。また、起動ファイルに記述されているのと同じ名前のC関数を記述するだけで、独自のハンドラーを作成できます。私を混乱させるのは、ユーザーガイドでは、すべてのGPIOを外部割り込みソースとして使用できると記載されていることです。ただし、スタートアップファイルに記載されているPIO割り込みは4つだけです。だから教えてください: 他のGPIOの外部割り込みハンドラーを実装するにはどうすればよいですか? 割り込みテーブルはCMSISのどこにマップされていますか? NVICとAVR / PICの割り込み実装の主な違いは何ですか?(NVICはフラッシュのどこにでもマッピングできます)
9 arm  interrupts 

4
BGAではない最新のARMプロセッサ
ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 私はBGAパッケージに含まれていないARMを、できればMMUを使用して探しているので、愛好家は自宅でリフローします。
9 arm 


4
LPC1343で回路を構築する
LPC1343 Cortex-M3チップを使っている人はいますか? 以前にPICマイクロコントローラーでいくつかの小さな回路を構築しましたが、今はLPC1243 Cortex-3 / ARMを使用しています。LPCXpressoプロトタイプボードを使用してきましたが、これは非常にうまく機能していますが、今は自分の回路用に適切なPCBを構築したいと考えています。私はこのチップをPICよりもソフトウェアで操作する方がずっといいと思っています(私も好きです!) PICを使用して、ハードウェアを構築するときに何かを忘れるのは簡単だという経験がありました。たとえば、一部の写真で低電圧プログラミングを無効にするためにピンをLowに引き下げる必要があるか、チップをプログラムできませんでした。 私の回路は、USB HIDインターフェイスを介して接続されたPCから入力を取得する、チップに接続された18x2ラインLCDモジュールです。プロトタイプボード/ブレッドボードですべて作業しています。 LPC1343で接続を計画しています 電源およびデカップリングコンデンサへの電源ピン 12 MHZクリスタルとコンデンサ。 ハードウェア(LCDモジュール)を駆動するために必要な6つのI / Oピン 抵抗器とプルアップ抵抗器を介してUSBポートにUSBピン リセットピンと内部USBブートローダーを有効にするピンのスイッチ そして、それだけです。私の質問は、接続する必要がある他のピンはありますか?チップを使った最初の「趣味」プロジェクトなので、これをできるだけシンプルに保つことが重要です。そして、率直に言って、余分な複雑さを追加せずにはんだ付けするのは十分難しいでしょう(しかし、私はそれができると確信しています!)。 回路図を実際に投稿するべきだと思いますが、明らかなものを逃しましたか?

8
Linuxマシンにarm-elf-gccをインストールする最良の方法
こんにちは、私はarm-elf-gccを使用して、MakingThingsプロトタイプボードのコードをコンパイルするデバイスに取り組んでいます。私の開発マシンはUbuntu 9.10を実行しているLinuxボックスです。Ubuntuを使用する別のLinuxボックスで、3回または4回試行した後、gccを手動でビルドしてインストールすることにより、arm-elf-gccを実行しました。 私はツールチェーンをインストールするための最良の方法を選択しようとしていますが、AFAIKの最良の方法はないようです。9.08と9.10で設定すると、手動で環境を構築してインストールする場合を除いて、どちらも失敗するようです。 EmdebianパッケージとCodeSoureryを試しましたが、どちらもうまくいきませんでした。 Linuxボックスでarm-elf-gccセットアップを行うための他の良い提案はありますか?
9 linux  compiler  arm 

3
PPCの優れている点は何ですか?何かがなければならない
では、この問題を念頭において(stackexchangeは「似たタイトルの質問」の中で、今、私を提供していることを最初の1)、私は質問のアイデアを盗み、PPCについて、それをお聞きしたいと思います。 それの何がそんなに素晴らしいのですか?私が見た他のすべてのチップ-ARM、MIPS、SuperH、x86-数値は大丈夫です。 この質問の背景、つまりPPCについては、PPCアーキテクチャが多くのDSPチップ、特に自動車業界で使用されているということです。もちろん、これは単に勢いの問題である可能性があり、開発者がツールチェーンを含め、よく知っているアーキテクチャにとどまることができます。そしてもちろん、彼らが今までに書いたソフトウェア。 しかし、私がDSPプロジェクトを新たに開始する場合、古い荷物を持ち歩く必要はありません-PPCをARMよりも優先するように説得するPPCアーキテクチャの説得力のある利点はありますか? ARMチップの電力効率について知っているので、私の設計はバッテリーではなくグリッドから実行されることを述べさせてください。
9 arm  dsp 

1
STM32のSPIはプルアップ抵抗がないと機能せず、パフォーマンスも低下します
しばらくの間、STM32F103C8(Blue Pillボード)のSPI1が正しく機能するように努めています。ARMの学習を始めたばかりなので、データを74HC595シフトレジスタにシフトし、それをラッチして1バイトのLEDを点灯させようとしています。データを読み取っていないので、MOSI、SCK、SSのラインしかありません。 最初は何も出力されませんでしたが、オンラインの例を読んで、これらの最初の問題を修正して通信を開始することができました(GPIOAピンを正しく設定し、ソフトウェアSSを設定する必要がありました)。 現在の主な問題は、すべてのライン(MOSI、SCK、SS)にプルアップ抵抗を含めないと、マイクロコントローラーがラインに何も出力しないことです(スコープで確認)。これに加えて、プルアップ抵抗を追加した後、パルスの立ち上がり時間が非常に遅いため、あまりにも高い周波数を使用できません(10kΩのプルアップ抵抗を使用すると、約250 kHz SCKに制限され、スイッチング約330 MHzに約4 MHz)。私はブレッドボードで作業していますが、それでもAVRとより複雑な配線を使用しても、抵抗を追加せずに4 MHz SPIが問題なく動作し、波形はきれいでした。 これは、250 kHzクロックでバイト0b01110010を送信している2つの画像(スコープ画面のひどい状態の場合は申し訳ありません)です。上のトレースはSCKで、下のトレースはMOSIです。最初の画像は10kΩプルアップ抵抗で、2番目の画像は波形をより良くする330Ωプルアップ抵抗です(ただし、それらは必要ありません)。 何が起こっているのかを理解するための助けをいただければ幸いです。 私のコードの関連部分は: #define SS_LOW GPIOA->BSRR |= 1 << 4 + 16; #define SS_HIGH GPIOA->BSRR |= 1 << 4; // SPI GPIO configuration RCC->APB2ENR |= RCC_APB2ENR_IOPAEN; GPIOA->CRL |= 0b0011 << 4 * 4; // Set pin A4 as PP …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.