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

中央処理装置(CPU)、メモリ、および(一般的に)緊密に結合されたスタンドアロンの各種I / Oペリフェラル(UART、ADC、DAC、汎用I / O、I2Cなど)を含むデバイスパッケージ。

5
マイクロコントローラーが予期せずリセットする原因は何ですか?
マイクロプロセッサで制御されたシステムで特にイライラするバグの1つは、マイクロプロセッサが予期せずリセットすることです。この種の問題をデバッグするための重要なツールは、考えられる原因のリストです。マイクロコントローラーが予期せずリセットする原因は何ですか?


5
PID制御を学習する方法は?
主に温度のPID(比例-積分-微分)制御を学びたい。 できれば簡単なプロジェクトを通して学びたいと思います。 学習に数週間かかるものをお勧めしてもらえますか? 編集:水タンクの温度を制御したい。加熱は抵抗器によって行われます。

5
マイクロコントローラー回路でバッテリーを長持ちさせる
ATtiny85Vに小さなバッテリー(おそらくコイン電池)で長時間電源を供給したいと思っています。 私はソフトウェア側を調べましたが、コードはウォッチドッグタイマーで駆動され、未使用のアナログおよびデジタルコンバーターがオフになっており、チップは1MHzで動作しています。どれだけの電流が流れているのか、基本的に最小化されていることを望んでいます。 数秒ごとに起動し、ADCで電圧レベルのチェックを行い、RAMに記録し、スリープ状態に戻ります。シリアルラインが接続されていることを検出すると、データを吐き出します。 しかし、今私は回路全体を見て、回路全体をよりバッテリーに優しいものにするために私がすべきことがあるのだろうかと考えていますか? 1つのコンポーネント(マイクロコントローラー)が反復的であるが可変電流を消費する、長持ちする(単純な)回路を設計する場合の基本的な注意事項と禁止事項は何ですか? 例えば: インジケータLEDは大したことですか?明るいときにバッテリーを使い果たしていませんか?それを暗くするために巨大な抵抗器を置くべきですか、それとも抵抗器がバッテリーを使用するだけですか? バイパス/デカップリングコンデンサを使用して、バッテリーからの電流を均等にする必要がありますか、それとも、コンデンサがバッテリーの電力を浪費するだけですか? マイクロコントローラーには1.8Vしか必要ありませんが、1.8Vバッテリーはありません。2個の1.xバッテリーを使用して、電圧を送りすぎる必要がありますか?「できるだけ多くのボルトを使用しない」ことで、バッテリーの寿命を延ばすことができますか?それ、どうやったら出来るの? ピンがHIGHかLOWかを確認するには、余分な電力が必要ですか?何もしない演算や何らかの算術演算と比較して、GP I / Oピンの1つの状態をチェックする際に、さらに多くの電力使用量がありますか? 電流、電圧、電力の計算方法(および漠然と測定する方法)を漠然と知っていますが、どれがバッテリー寿命に相当するかはわかりません。Coulombsのバッテリー寿命の重要な測定値はありますか? バッテリーには次のようなものがいっぱいあるという漠然とした考えがあります。 アンペア時などの充電 エネルギー、ワット時など ワットなどの電力 しかし、私の回路が実行されたときに何が「食べる」のかについては、はっきりしていません。かなりの量のEE101と物理学の教科書を読みましたが、実際にはラボの経験はありません。言い換えれば、私は電池についてたくさん読みましたが、実際にはそれの大部分が何を意味するのか本当に分かりません。 抵抗器はバッテリー寿命を使い果たしますか?コンデンサはありますか?ダイオードはありますか?私は彼ら全員がそうしていると思うが、数字のどれが重要な数字なのか?インピーダンス?電力損失?現在?電圧? バッテリーを無駄にせずに電圧を下げる方法はありますか?バッテリー寿命を延ばしながら電圧を下げる方法はありますか?

2
ビットバンギングとは
私はマイクロコントローラのプログラミングは初めてです。ATmega32-AコントローラーとCodeVisionAVRコンパイラーを使用しています。SPI通信を使用して正弦波信号を生成するために、波形ジェネレーター(AD9833)を使用しています。サイン波を正常に生成できました。今、私はその信号をセンサーに渡しています。センサーの出力はマルチプレクサを介して選択され、ADCに送信されます。次に、SPI通信を使用してADC値を読み取ります。ADCのレジスタをセットアップするために多くのことを試みました。それでも動作しません。SPI通信コードを確認するには、spi通信を使用した以前のポストADCレジスタ設定を参照してください。USART(RS232)通信を使用して、PC(PuTTY)に値を印刷しています。 誰かがビットバンギングを使用するようにアドバイスしました。私はその概念に新しいです。SPI通信のビットバンギングのコード例を教えてください。その手順を開始する方法は?誰も私に良い材料を提供できますか。外部ハードウェアは必要ですか? ピン接続を含め、これを書きました。 #define ADC_CS PORTB.3 #define MOSI PORTB.5 #define MISO PINB.6 #define SCK PORTB.7 void send_8bit_serial_data(unsigned char data) { int i; ADC_CS=0; for (i = 0; i < 8; i++) { // consider leftmost bit // set line high if bit is 1, low if bit is 0 if …

5
FPGA、ASIC、および汎用マイクロコントローラーの違いと類似点は何ですか?
私はこの投稿を読みましたが、私の質問全体には答えていません。 マイクロコントローラは、メモリ、レジスタを備え、LOAD、STORE、ADDなどの一連の命令を処理できるものと考えています。その役割を実行するための論理ゲートなどが含まれていますが、その主なタスクはビットのユニバーサルプロセッサになることです。Microntrollerは、命令を保存および処理する機能を作成する相互接続されたASICデザインのシステムと考えています。 ASICデバイスは、論理的および電気的コンポーネントを使用して1つのタスクを実行するために特別に構築された回路であり、他のタスクも追加のハードウェアも含まれていないと考えています。 FPGAデバイスは、特定の真理値表を実装するために使用されるASICデバイス(低レベルデバイス)+残りの未使用のものと考えています。 その名前にもかかわらず、FGPAは新しい「異なるタスク」を実行するために再配線する必要があるため、非常に「アプリケーション固有」と感じます。これにより、ASICとの混乱が生じます。ただし、FPGAを再配線する場合は、必要なすべてのハードウェアが存在する必要があります。また、FPGAはプログラム可能であることを目的としていますが、それはマイクロコントローラーの目的ではありませんか? 私が参照した上記の投稿では、私がよく知っているHDLについても言及しています。HDLをASICとFPGAの両方に使用したり、プロキシによってマイクロコントローラー全体を設計することはできませんか?


3
マイクロコントローラのさまざまなメモリタイプには何がありますか?
さまざまなタイプのデータがコンパイル後にCコードから入力されるさまざまなメモリセグメントがあります。すなわち:.text、.data、.bss、スタックとヒープ。これらの各セグメントがマイクロコントローラのメモリのどこにあるかを知りたいだけです。つまり、メモリタイプがRAM、NVRAM、ROM、EEPROM、フラッシュなどの場合、どのデータがどのタイプのメモリに入るかです。 私はここで同様の質問に対する答えを見つけましたが、彼らは異なるメモリタイプのそれぞれの内容がどうなるかを説明できませんでした。 どんな種類の助けも大歓迎です。前もって感謝します!

5
マイクロコントローラなどの比較的単純なデバイスがCPUよりもはるかに遅いのはなぜですか?
同じ数のパイプラインステージと同じ製造ノード(たとえば65 nm)と同じ電圧を考えると、単純なデバイスはより複雑なデバイスよりも高速に動作するはずです。また、複数のパイプラインステージを1つにマージすると、ステージの数よりも大きな要因で速度が低下することはありません。 次に、2.8 GHzで14パイプラインステージを実行する5年前のCPUを使用します。ステージをマージするとします。それは200 MHz以下に遅くなります。電圧を上げて、ワードあたりのビット数を減らします。それは実際に物事をスピードアップするでしょう。 そのため、AVLなどの現在製造されている多くのマイクロコントローラーが極度の速度(5 Vで20 MHzなど)で動作する理由を理解できませんが、数年前に製造されたはるかに複雑なCPUは150倍または10倍高速で実行できました1.2 V-ishで、すべてのパイプラインステージを1つにロールする場合。最も粗い封筒の計算によれば、マイクロコントローラは、たとえ時代遅れの境界技術を使用して製造されたとしても、供給される電圧の4分の1で少なくとも10倍速く動作するはずです。 したがって、質問:マイクロコントローラのクロック速度が遅い理由は何ですか?

4
4層PCBにデカップリングコンデンサを配置する方法
デカップリングコンデンサの配置に関する技術文書を検索したところ、主なアイデアが次の図に示されています。 妥当だと思いますが、デカップリングコンデンサとMCUを同じレイヤーに配置する必要がありますか?他のデバイスを配置することは私にとって不便です。だから、最下層にデカップリングコンデンサを配置することを選択します 私のPCBは4層(signal-power-gnd-signal)であり、電源とgnd層を分割すると、上の図のMCUのピンに近い2つのビアは電源とgnd層のネットに含まれません。写真1のケースfと同じ素晴らしい性能を持っていますか?この場合、ビアのインダクタンスを考慮する必要がありますか?

6
Atmel AVRがなぜそんなに人気があるのですか?
最近の質問では、さまざまなタイプのMCUの利点/欠点について尋ねられました。AVRは、答えを考えると言及する価値すらありませんでした。それでは、AVRの人気が急上昇していると部外者に思われるのはなぜですか?これは単にArduinoによるものですか、それともAVRを特に優れたマイクロコントローラーにする何かがありますか?

3
Cortex-MシリーズとCortex-Rシリーズの実際の違いは何ですか?
それは面白いです!明確な記事を検索しましたが、これに関する明確な記事が見つかりませんでした。また、このリンク:ARM Cortex-Rとこのリンク:Cortex-Rシリーズを見つけましたが、明確ではありません。wikiページに書いた: コアは、堅牢なリアルタイム使用を目的としています そして、Cortex-Rのページに書いた: ARMCortex®-Rリアルタイムプロセッサは、信頼性、高可用性、フォールトトレランス、保守性、およびリアルタイム応答が必要な組み込みシステム向けの高性能コンピューティングソリューションを提供します。 そしてこれら: 高性能:高速クロック周波数と組み合わせた高速処理 リアルタイム:処理は、あらゆる場面で厳しいリアルタイム制約を満たします 安全:高いエラー耐性を備えた信頼性の高い信頼性の高いシステム 費用対効果:パフォーマンス、電力、面積に最適な機能 ナンバーワン:たとえば、Cortex-Mの場合、最近NXPは200MhzクロックレートのNXP_LPC4XXXシリーズを作成し、Cortex-Rの場合、これを見ることができます:TMS570LS ARM Cortex™-R4 Microcontrollers、180Mhzクロックレート。 2番目の場合:明らかです。 3番目の場合:明確ではありません!この文はどういう意味ですか?は、Cortex-Mが安全/信頼できないことを意味しますか? 5番目の場合:まあ、それは単なる主張だと思います! このシリーズ(Cortex-R)で働く経験は誰にありますか?それについてあなたはどう思いますか?Cortex-MシリーズとCortex-Rシリーズの深く正確な違いは何ですか?

4
マイクロコントローラーの出力ピンからMOSFETを駆動するのは安全ですか?
MCUから「飽和モード」で操作することにより、2N2222や2N3904などの一般的に利用可能なBJTをスイッチとして使用しました。しかし、これらの種類のアプリケーションでは、MOSFETがより適切なデバイスだと思います。ただし、いくつか質問があります。 1)MOSFETには、BJTのような「飽和モード」がありますか?この「飽和」は、MOSFETが完全に「オン」になるほど十分に高い電圧をベースに供給することで達成されますか? 2)MCUから直接MOSFETを駆動しても安全ですか?私は、MOSFETのゲートがコンデンサのように振る舞うため、「充電中」にいくらかの電流を引き、それ以降は電流が流れないことを理解しています。この充電電流はMCUピンを損傷するほど高いですか?ゲートと直列に抵抗を配置することにより、ピンを保護できますが、これによりスイッチの速度が低下し、MOSFETによる熱放散が大きくなる可能性がありますか? 3)さまざまな低電力状況に適した一般的な「愛好家」MOSFETとは何ですか?IE、2N2222または2N3904に相当するMOSFETは何ですか?

4
マイクロコントローラーに必要なフラッシュ/ RAMの量をどのように決定しますか?
いくつかの既知の機能を備えた組み込みプロジェクトを開始するとします。マイクロコントローラーを選択するとき、必要なRAMの量をどのように選択しますか? 開発者ボードを使用して、最初にプロジェクトをコーディングし、使用したメモリ量を確認してから、そのメモリに適合する適切なマイクロコントローラを選択しますか? プロトタイプ用に頑丈なマイクロコントローラーを選んで、実際の製品ができたらスケールダウンしますか? 十分であると確信しているものを選んでいますか、スペースが足りない場合は、より高いメモリ密度のものにアップグレードしてください。 グッドプラクティスと見なされるものは何ですか?

7
1つの大きなマイクロコントローラーですか、それとも多くの小さなマイクロコントローラーですか?
私は、マイクロコントローラを使って基本的で簡単なことを比較的よくやっています。こうした、LEDを駆動する文字のLCDにモーター、基本ルーチン、GUIを実行している、というように、常に同じようなもの1つの最も少数の小さな側のタスクにしてキータスク。これらの場合に必要なのは本当にそれだけなので、これはローエンドの製品に追いやられました。 もっと複雑なものの設計を開始したいのですが、マイクロコントローラーの連続体の上側は、私が十分に触れたことではありません。したがって、私は多くのタスクを同時に実行するマイクロコントローラーを選択するのに非常に困難な時間を過ごしてきました。する。 たとえば、PIルーチンを使用して2つのBLDCモーターを制御し、いくつかのシリアルおよびUSB通信、GUI、およびその他の多数のタスクを制御したいと思います。モーターごとにマイクロコントローラーを用意し、次に雑多なタスク用にマイクロコントローラーを用意したいので、雑多なものからのオーバーヘッドが重要なモーター機能を妨げないことを保証できます。しかし、それが実際に良いアイデアなのか、物事を進めるための素朴な方法なのかはわかりません。 私の質問は本当に2つあると思います: 多くのマルチタスクを実行する必要がある場合、オールインワンアプローチは良いアイデアですか、またはセグメント化して分離する方が良いですか? 私が見ているマイクロコントローラーがタスクのリストに基づいて必要なことを行うのに十分な計算能力を持っているかどうかを直感的に見つけるにはどうすればよいですか? RTOSを実行するARM SoCまで、中程度のdsPIC33を検討しています。必要なものを整理する体系的な方法は、私を大いに助けてくれるでしょう。

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