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

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

6
バイナリは電気信号にどのように変換されますか?
私は電子工学を始めたばかりで、すでに魅了されています。そのような+ 5Vが表すように-私は、バイナリが異なる電圧の表現であることを承知しているこれらの過去数日のArduinoで演奏た1とGNDを表します0。 私は、物理レベルで、マイクロコントローラーがバイナリをこれらの電圧に変換する方法を発見しようとしていました。私はどこでも説明を見つけることができないようです。誰もが知識を共有したり、これがどのように機能するかを説明する場所/良い本を教えてくれますか?

6
長期部品調達のための部品の生産寿命をどのように評価または推測できますか?
製品が成功した場合に5〜10年間製品を使用するというアイデアがあるとします。今後使用できるように、現在使用する部品を決定するにはどうすればよいですか? 私は知っているのに十分な年齢ではありませんが、Motorola 68HC11に基づいたものなど、一部の部品は時の試練に耐えることができ、今日でもピンで利用可能であることを十分に長く知っている人から聞いたことがあります-compatibleおよび(おおよそ)コード互換のパッケージおよびバリエーション。 ARMは最近私にとって非常に魅力的に見えました。多くのCortex-Mは私が持っているアイデアに完全に適合するようですが、特定のマイクロコントローラのピン互換のバリエーションが5年後にまだあるという保証があります?それとも10年?これをどのように評価し始めますか?主要な要因は何ですか?また、チップの製造期間中にデータを保持している人はいますか?

5
防弾ファームウェアのアップグレード
ユーザーが販売後にデバイスファームウェアを安全にアップグレードできるようにするために、どのような手法が使用されていますか?Cortex M3 / 4マイクロコントローラーを使用してこれを実行したいのですが、どのマイクロでもテクニックを実行する必要があると思います。 もちろん、余分な成分の量を最小限に抑えてください。


7
PICKit 2または3を取得する必要がありますか?
さて、PICファミリ(dsPICを含む)で自分自身を売り込むことにしたので、プログラマーについて質問があります。私は新しいPICKit 3について多くの悪いことを聞いてきましたが、それを手に入れるべきなのか、それとも見た目がより古いPICKit 2を手に入れるべきなのでしょうか?最新のPICを使用できるようにするには、最新のPICを購入する必要があると思いますが、確信はありません。ありがとうございました!


3
マイクロコントローラに内部プル抵抗があるのに、なぜ外部プル抵抗が必要なのですか?
マイクロコントローラーには内部プルアップ/プルダウン抵抗がありますが、ほとんどの回路には外部プル抵抗があります。 Googleで答えを探して、いくつかのサイトでは、これらの抵抗器はそれほど強力ではないと言っていましたが、動作するには十分だと思いました。プログラミングによって内部抵抗をトリガーする必要があるため、外部が必要になるかもしれないと考えていました。 そのため、計画外の状況では、外部抵抗も同様に接続します。しかし、私はそれについて確信がありません。 内部を持っているときに外部を使用する背後にある本当の理由は何ですか?

3
マイクロコントローラーはどのように起動および起動しますか?
Cコードが記述され、コンパイルされ、マイクロコントローラーにアップロードされると、マイクロコントローラーが実行を開始します。しかし、このアップロードと起動プロセスを段階的にスローモーションで実行すると、MCU(メモリ、CPU、ブートローダー)の内部で実際に何が起こっているかについて混乱が生じます。誰かが私に尋ねた場合に私が答えるのは(おそらく間違っている)です: コンパイルされたバイナリコードはUSB経由でフラッシュROM(またはEEPROM)に書き込まれます ブートローダーは、このコードの一部をRAMにコピーします。真の場合、ブートローダーはどのようにコピーするか(ROMのどの部分をRAMにコピーするか)を知るのですか? CPUはROMおよびRAMからコードの命令とデータのフェッチを開始します これは間違っていますか? この起動と起動のプロセスを、このフェーズでメモリ、ブートローダー、およびCPUがどのように相互作用するかについての情報で要約することは可能ですか? BIOSを介してPCが起動する方法について、多くの基本的な説明を見つけました。しかし、私はマイクロコントローラーの起動プロセスにこだわっています。


5
ACラインでの火花によるArduinoのリセット/ハング
これは、私が最近取り組んでいるプロジェクトのPCBデザインです(私の最初のPCBデザイン)。 アイデアは、リレーなしでAC機器(ファン、電球など)を制御することです。このようなアプリケーションには、リレーよりも優れたトライアックを使用しています。ACラインから完全に分離するために、光アイソレータを使用しています。ラップトップに接続されたUSBケーブル(充電器を抜いた状態)とACアダプター(12V)を使用してarduinoを実行してみました。 最初は、回路は正常に動作するように見えました。UARTを使用して、コードをコントローラーにダンプし、電球を制御(オン/オフおよび暗転)することができました。コマンドをUART経由で送信しました。ただし、ACラインに火花が出たとき(ファンのプラグイン/ファンアウト時)には、マイクロコントローラーは満足そうに見えません。リセットされる場合もありますが(これは写真の大部分)、ハングする場合もあり、UARTを介してコマンドを送信できません。焼き付けられたコードも影響を受けるかどうかはわかりませんが、コードを再アップロードしなければならない場合がありました。他の部屋のファンのオン/オフを切り替えても効果はありません。 考えられる問題: 1)PCBにグランドプレーンがない。 2)火花による何らかのEMI。 また、ファンと同じ方法で温水器(800ワットの抵抗負荷)を接続しようとしましたが、何も起こりませんでした。したがって、問題を引き起こしているのは誘導負荷だと思います。 この問題に対する建設的な解決策は非常に評価されます。 ありがとう。

5
独立したウォッチドッグ(IWDG)またはウィンドウウォッチドッグ(WWDG)
私はまだこの質問の答えを探しています: stm32 MCUには完全なウォッチドッグ(つまり、ウィンドウウォッチドッグ(WWDG))があるのに、単純なウォッチドッグ(独立したウォッチドッグ(IWDG))があるのはなぜですか? 私が言ったこのページを見つけました: ST Microelectronicsには、Cortex-M3デバイスのラインがあります。M3はローエンドの組み込みデバイスで非常に人気があり、STのSTM32Fはこれらの部品の代表です(ただし、WDTはSTアドオンであり、他のベンダーの実装を必ずしも反映していません)。STM32Fには2つの異なる保護メカニズムがあります。「独立したウォッチドッグ」は、使いやすさ以外の目的はほとんどない、かなりバニラなデザインです。しかし、彼らのWindow Watchdogはより強力な保護を提供します。カウントダウンタイマーの期限が切れると、リセットが生成されます。これは、タイマーをリロードすることによって妨げられる可能性があります。特別なものはありません。ただし、リロードが速すぎると、システムもリセットされます。この場合、「速すぎる」は、制御レジスタにプログラムする値によって決定されます。 別のクールな機能:リセットの直前に割り込みを生成できます。割り込みを捕捉するためのコードを少し書くと、たとえば、システムを安全な状態にしたり、デバッグ目的でデータのスナップショットを作成したりするためのアクションを実行できます。STは、ISRを使用してウォッチドッグをリロードすることを推奨しています。つまり、リセットが発生しないようにドッグをキックします。彼らのアドバイスを受け入れないでください。プログラムがクラッシュした場合、割り込みハンドラは正常に機能し続ける可能性があります。また、ISRを使用してWDTをリロードすると、ウィンドウウォッチドッグの理由全体が無効になります。 そしてこれ: STMicroelectronicsのSTM32F4 Cortex™-M4 CPUの新しいシリーズには、2つの独立したウォッチドッグがあります。独自の内部RCオシレーターから実行します。つまり、すべての種類のものがCPU内で崩壊する可能性があり、WDTは引き続き起動します。また、「ウィンドウウォッチドッグ」(WWDT)もあります。これは、コードを頻繁にくすぐる必要がありますが、あまり頻繁ではありません。これは、保護メカニズムにランダムに書き込むクラッシュコードを保証する非常に効果的な方法で、リセットがアサートされる少し前にWWDTが割り込みを生成できます。 さて、リファレンスマニュアルを見てみましょう: STM32F10xxxには、高度な安全レベル、タイミング精度、および使用の柔軟性の組み合わせを提供する2つのウォッチドッグ周辺機器が組み込まれています。両方のウォッチドッグ周辺機器(独立およびウィンドウ)は、ソフトウェア障害による誤動作を検出および解決し、カウンターが指定されたタイムアウト値に達したときにシステムリセットまたは割り込み(ウィンドウウォッチドッグのみ)をトリガーします。独立したウォッチドッグ(IWDG)は、専用の低速クロック(LSI)によってクロックが供給されるため、メインクロックに障害が発生してもアクティブのままになります。ウィンドウウォッチドッグ(WWDG)クロックは、APB1クロックから事前にスケーリングされており、異常に遅いまたは早いアプリケーション動作を検出するようにプログラムできる構成可能なタイムウィンドウを備えています。IWDGは、ウォッチドッグをメインアプリケーションの外部で完全に独立したプロセスとして実行する必要があるアプリケーションに最適です。ただし、タイミング精度の制約は低くなります。WWDGは、ウォッチドッグが正確なタイミングウィンドウ内で反応する必要があるアプリケーションに最適です。 ウィンドウウォッチドッグは、通常外部干渉または予期しない論理条件によって生成されるソフトウェア障害の発生を検出するために使用され、アプリケーションプログラムが通常のシーケンスを放棄する原因となります。ウォッチドッグ回路は、プログラムがT6ビットがクリアされる前にダウンカウンタの内容を更新しない限り、プログラムされた期間の終了時にMCUリセットを生成します。MCUリセットは、ダウンカウンタがウィンドウレジスタ値に達する前に(制御レジスタ内の)7ビットダウンカウンタ値がリフレッシュされた場合にも生成されます。これは、限られたウィンドウでカウンターを更新する必要があることを意味します。 あなたが見ることができるように、それらのいずれも、なぜ 2つの番犬がいると言っていません。両方のウォッチドッグの違いを尋ねると、上記で見ることができるすべての機能をカウントし、両方を比較したい場合は、明らかにウィンドウウォッチドッグ(WWDG)が勝者になります!次に、なぜ2つのウォッチドッグがありますか? IWDGをいつ使用し、いつWWDGを使用する必要があるかを知りたいですか? そして、なぜ彼らはこの名前で2番目の時計を呼び出すのですか?> "ウィンドウウォッチドッグ"と言う理由はありますか?

2
70年代および80年代のハンドヘルドビデオゲームはどのように機能しましたか?
70年代および80年代の初期のハンドヘルドビデオゲームがどのように機能したかについて興味があります。「固定要素」を備えたLCDディスプレイを備えた小さなゲームは、1つ(または少数)の特定のゲーム用に配線されていたことを意味します。例えば、 これ: またはこれ: 具体的には、これらのゲームはどのタイプのマイクロコントローラーを使用しましたか?私が思い出すように、ボードの中央には通常、おそらくすべてを制御する1つの大きなエポキシ「ブロブ」がありました。だから私の質問は、このブロブの中には何があったのですか?それは実際のゲームを実行するROMを備えた小さな標準マイクロコントローラーでしたか、それともすべてのデザインのカスタムCPU /コントローラーでしたか?それとも、CPUでさえなく、問題のゲーム用に配線された単純なステートマシンのようなものでしたか?答えは特定のゲームに依存する可能性があることを理解しています。 これらのゲームのデザイン/回路図はリリースされていますか、またはそれらがどのように作られたかについての良い本/参考文献はありますか?最後に、このようなマイクロコントローラーの設計にはどのツールが使用されましたか?VHDL / Verilog合成のようなものに基づいていたのですか、それとも個々の要素を配線するより低レベルのアプローチでしたか?

4
マイクロコントローラーのEEPROMの摩耗の平準化
例:ATtiny2313のデータシート(ほとんどのAtmel AVRデータシートと同様)は次のように述べています: 128バイトのインシステムプログラマブルEEPROM耐久性:100,000回の書き込み/消去サイクル プログラムがいくつかの構成を保存するのに2バイトしか必要としないと想像してください、他の126バイトは効果的に浪費されます。私が心配しているのは、2つの構成バイトを定期的に更新すると、デバイスのEEPROMが消耗し、使用できなくなる可能性があることです。EEPROMのどのバイトが信頼できないかを特定の瞬間に追跡できないため、デバイス全体が信頼できなくなります。 利用可能な128のうち1または2バイトのみを効果的に使用するときに、マイクロコントローラのEEPROMでウェアレベリングを行うスマートな方法はありますか?

8
ロボットの高速三角法用のマイクロコントローラー/ CPU?
これは、重量の軽いハードウェアに関係します。これは、(太い猫の大きさ、3自由度の6脚)歩行ロボットが持ち運ぶ必要があるためです。その歩行のため、多くの三角法を実行する必要があります(行列演算を使用しているかどうかはまだわかりません)。これがこの質問の出所です。 PIC、Arduino、または安価なAVRは、すべてを100 /秒で計算し、慣性や障害物回避、またはブルートフォースパス/歩行などのことを念頭に置くほど高速ではありません。 計画Aは、ロボットで脳を運ぶことです。 マイクロプロセッサ、マイクロITX、ネットトップなどです。三角法/行列演算を高速に行うための効率的なハードウェアは何ですか? 私はオンラインで検索し、これに特化したAVR、x86、またはARMマイクロコントローラーについて調べることを期待していましたが、そこには運がありませんでした。 プランBは、WiFiを介して接続されたx86マシンを使用して重量物を持ち上げることです。プロトタイピングにも最適ですが、ハードウェアが小型化したときに最終的にプランAに移行したいと思います。しかし、それでも、どのデスクトップCPUが三角法を最速で実行できますか? プランCは、負荷を分散し、各レッグに1つの電力効率の良いマイクロコントローラー/コアを持つことですが、それは拡張性が好きな多くの理由で最良のソリューションではありません。 使用する言語やライブラリはまだ決めていませんが、PascalとC ++を好みます。 (より適切なタグの提案を歓迎します、私はここに新しいです)

6
3つ以上のMicrochip PICマイクロコントローラー間のワイヤレス通信
私の簡単なプロジェクトのために、Microchip PIC間のワイヤレス通信を作成したいと思います。これは実際には一方向の通信ですが、1 つのサーバーと複数のクライアントがあります(約2〜4、すべてのクライアントが同時に同じ番号を必要とするため、同じです)。ほんの数バイトをプッシュする必要があります。 ワイヤレス通信、またはほとんどすべてのハードウェア通信に完全に初心者です。だから私を助けてください、私はどんな種類のワイヤレストランシーバーを使うべきですか? いくつかの条件があります: 比較的安価でなければなりません。 簡単に入手できる必要があります。 使いやすいならいいですね。 約10メートルの範囲(少なくとも) 最初に「シリアルBluetooth RFトランシーバーモジュールrs232」を見つけましたが、使用方法に関する情報が見つかりません。(単純すぎると思いますか?)そして、より多くのクライアントに接続できるかどうかもわかりません。また、ZigBeeも見ましたが、私のニーズには「少し」圧倒されました。(また複雑です。) それでは、どのような種類のワイヤレストランシーバーをお勧めしますか?

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