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

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

5
誰でもHC-SR04のマイクロコントローラーを識別できますか
HC-SR04は人気があり、非常に安価な超音波測距装置です。機能を変更するために1つを変更したいと思います。コントローラを特定できれば、それを再プログラムしたり、少なくとも自分でプログラムしたものと交換したりできるかもしれません。 コントローラは14ピンSOICで、ピン4とVcc、ピン11のGnd、ピン5と6の間にXtalがあり、ピン7はリセットであると思います。マーキングはまったく付いていないので、メーカーは明らかにそれが何であるかを知りたくありません。 ピン配置は、14ピンPIC、または私が見つけることができるAtmelチップと一致しないようです。 このデバイスに精通している人や、マイクロコントローラーが何であるかについて教育を受けた推測をする気がある人はいますか?

4
PCBの同じ側にデカップリングキャップを配置することはどのくらい重要ですか?
PCBのICと同じ側にデカップリングコンデンサを配置することはどのくらい重要ですか?私は必死にデザインのスペースが足りないので、キャップを下側に置くと本当に役に立ちます。 BGAは私よりもはるかに高速な設計(67MHz MCU)でこの手法を使用しているように見えるので、それはそれほど悪くはないと思います。 しかし、デカップリングキャップ、PCBレイアウトなどの質問は、インダクタンスを追加するビアに関する恐ろしい話でいっぱいです。

4
Arduinoでタイマー割り込みを作成するにはどうすればよいですか?
Arduinoで時間遅延割り込みを作成しようとしています。これは内部割り込みなので、interrupts()関数を使用したいと思います。 例:割り込みのタイミングのみでライトを点滅させたいとしましょう。 サンプルコードがありますが、外部割り込み(attachInterrupt())を使用しています。内部割り込みを使い続けたいのですが。

2
マイクロコントローラーのローバッテリーインジケーター
ボードと回路に9Vバッテリー(アルカリ性のもの)で電力を供給しています。そして、9Vバッテリーを読んで、それがどれだけの電力を残しているかを追跡したいと思います。uCのほとんどのADC入力は最大5Vなので、これを分圧器で実行できることを読んだことがあります。それは良いことですが、分圧器自体が電力を消費し、バッテリーの消耗を速くしませんか?電池残量を常時計測するつもりはありません。

5
マイクロコントローラーの割り込み処理とFSMの例
最初の質問 マイクロコントローラでの割り込みの処理について、一般的な質問があります。私はMSP430を使用していますが、質問は他のuCにも当てはまると思います。コードに沿って頻繁に割り込みを有効/無効にするのが良い方法かどうか知りたいのですが。つまり、割り込みの影響を受けないコードの一部がある場合(または、さらに悪いことに、何らかの理由で割り込みをリッスンしてはならない場合)、次のことを行う方がよいでしょう。 クリティカルセクションの前に割り込みを無効にしてから、再度有効にします。 それぞれのISR内にフラグを設定し、(割り込みを無効にする代わりに)クリティカルセクションの前にフラグをfalseに設定し、直後にtrueにリセットします。ISRのコードが実行されないようにするため。 どちらもないので、提案は大歓迎です! 更新:割り込みと状態チャート 具体的な状況をお知らせします。4つのブロックで構成されるステートチャートを実装するとします。 遷移/効果。 終了条件。 エントリー活動。 活動を行う。 これは大学で教授が私たちに教えたものです。おそらく、それを行う最良の方法は、このスキームに従うことではありません。 while(true) { /* Transitions/Effects */ //---------------------------------------------------------------------- next_state = current_state; switch (current_state) { case STATE_A: if(EVENT1) {next_state = STATE_C} if(d == THRESHOLD) {next_state = STATE_D; a++} break; case STATE_B: // transitions and effects break; (...) } /* Exit activity …

3
自己ロックするDCモーターの種類はありますか?
プラスチック製のラインを巻き取る小さなDCギアモーターを持っています。モーターを作動させてラインを締めたら、ラインが巻き戻らないようにロックします。次に、機械的にこの位置に留まるようにして、保持電流を印加する必要がないようにします。ラインを解放する準備ができたら、プロセスを電気的に逆転させてロックを解除できるようにしたいと思います。この要件に適合する標準設計はありますか?

7
EEPROMを使用する代わり
私が理解しているように、EEPROMはコンピューター(私の場合はAVRマイクロコントローラー)の一部であり、データを保存し、デバイスが完全にシャットダウンしても保持します。データの書き込みと読み取りが可能です。 私が見ている問題は、有限の寿命とかなり短い寿命があることです。言い換えれば、EEPROMを使い果たすまでに、有限回数の読み取り/書き込みしかできません。 私が探しているのは、EEPROMと同じ機能を小さなフォームファクターで実現する方法です。私はmicroSDカードのようなものを使用できると思いますが、ユーザーがメモリカードを購入する必要がないソリューションを好みます。また、必要なスペースはせいぜい数バイトです。1 kBが非常に保守的であるとしましょう。あらゆる種類のメモリカードを収容するために必要以上の費用を費やすことになります。 だから私のオプションは何ですか?短い寿命と高いコストなしに、この種のデータストレージ/検索を実現できる一般的なICソリューションはありますか?

4
どのマイクロコントローラーがUSBポートに直接接続できますか?
基本的に、USB経由でデータをマイクロコントローラーに送信するだけで、マイクロプロセッサーがデータをデコードし、5Vで動作するLEDライトストリップを駆動します。仕事に適したマイクロコントローラを見つけるのに苦労しています。 マイクロコントローラーは、USB通信用に2つのシリアル入力ポート、LEDストリップとの通信用に2つのシリアル出力ポートを備え、5Vで動作できる必要があります。シリアルCOMポートを設定するだけでUSB通信専用のICを用意する必要がないようです。 たとえば、LPD8806ストリップにバイトを書き込むArduinoコードのスニペットは次のとおりです。 void write8(uint8_t d) { for (uint8_t i=0; i<8; i++) { if (d & _BV(7-i)) digitalWrite(dataPin, HIGH); else digitalWrite(dataPin, LOW); digitalWrite(clockPin, HIGH); digitalWrite(clockPin, LOW); } } データをラッチするには、ストリップにゼロを送信します。

2
MCUレジスタの論理的に関連するビットフィールドが、しばしば別々の場所にあるのはなぜですか?
この質問にすでに回答している場合はご容赦ください。しかし、このページでも、より広いインターネットでも、回答を見つけることができませんでした。 私は経験豊富な開発者であり、低レベルのプログラミングに関してある程度の知識がありますが、組み込み開発は比較的新しいです。私は、STM32F746ZG MCUを特徴とするST-NUCLEO144ボードを使用して、組み込みシステムの開発を教えてきました。私には自明ではないように見える1つの質問は、レジスタ内の論理的に関連するビットフィールドが異なる場所にある可能性があるということです。 1つの例は、USART_CR1STM32746ZG のレジスタです。M0そしてM1ビットフィールド一緒にUSART TX / RXの合成2ビット値の語長制御0b00、指定する8ビットの0b01こと以外はこれは、すべての非常に簡単であるなど、指定9ビットのM0ビット12にあり、M1ビットであります28 ...これはなぜですか? これは、以前に予約されていたスペースに新機能が挿入されたなど、レガシーデザインの理由によるものですか?それは私が考慮していないのは、チップ設計に関連する理由のためですか、それとも私には見られないより大きな目的がありますか? 明らかに、これはビットマスキングで克服するのはかなり簡単ですが、私は興味があります。

2
誰かがこのマイクロコントローラADCインターフェイスを説明できますか(ソーラーパネル電圧を読み取るため)。
TIDA-00121にある回路の機能を理解しようとしています(ここからデザインファイルをダウンロードできます)。 これは、PVが直接グラウンドに接続されていないという事実に関係していると思います(ソーラーパネルの電圧が低すぎて逆電流がパネルに流れないようにすると、逆電流MOSFETがオフになることがあります)。 (ソースコードからの)伝達関数については、マイクロコントローラー側の電圧は次のようになります。 V = 0.086045Pv-0.14718475V(PVはパネル電圧)。 これは、Vref = 2.39,10ビットADCとソースコード方程式から抽出されました。 パネル電圧= 36.83 * PV-63 ソースコードから私の仮定を確認するには: バッテリー電圧= BV * 52.44 バッテリー分圧器のマイクロコントローラー側の電圧に屈する: 分圧比であるV = 0.122BV(14K / 100Kネットワーク) 質問は: PNPトランジスタネットワークの役割は何ですか? マイクロコントローラ側の電圧の伝達関数を計算する方法は? どうもありがとうございました。

2
UARTへの可変文字の印刷が機能せず、定数が正常に機能する
PIC18F27K40マイクロコントローラーのXC8でかなり奇妙な問題があります。PIC16F1778では動作します。私は定義しました: void uart_putch(unsigned char byte) { while (!PIR3bits.TX1IF); TX1REG = byte; } とき、私の中でmainループ、私が呼んでuart_putch('a');、これはうまく動作します。ただし、を定義const char c = 'a';して呼び出しuart_putch(c);ても機能しません。それは何かではなく、何かを印刷しますa-私はそれらが0x00文字であると私は思いますhexdump -x /dev/ttyUSB0。これは私のコンピュータのシリアルポートの問題ではありません。私はスコープで見て、信号が異なります(左の作品、右の作品ではありません)。 コードは簡単です: void main(void) { init(); // Sets up ports and UART control registers while (1) { uart_putch('a'); // or c } } どちらも機能しないのは、関連があると思われる文字列関数(puts、printfなど)のいずれかを使用しているため、この質問では、文字を使用して最小限の作業例を作成しました。 変数を使用したときに生成されるアセンブリには、次のものが含まれますc。 _c: db low(061h) global __end_of_c _main: ; …

3
マイクロコントローラー(uC)、システムオンチップ(SoC)、デジタルシグナルプロセッサー(DSP)
実際の質問は終わりです。しかし、それだけを読んでも、なぜ私が混乱しているのかわからないかもしれません。私はこの投稿をいくつかの定義、仮定、推測から始めて、実際の質問をしました。 私はいつも違いを知っていると思いますが、「uCを備えたトランシーバーを置いた場合、それは今ではSoCですか?」私はすべてごちゃ混ぜになり、答える方法がわかりません。uCは本質的にSoCだと言われたことを思い出します。しかし、どのような証拠がありますか?しかし、arduinoはシングルチップではありません!Atmegプロセッサはいつでも「ボード」から取り外すことができます。 オンラインでチェックすると、直接または間接的に今言ったことを確認または矛盾するあらゆる種類の回答が得られます。これは常に私を混乱させるものであり、私はこれらの用語を緩く、時には交換可能に使用しているマーケティング担当者と、そのリードに従う人々を非難するだけです。 そこで、私はこれら3つの用語の基本的な意味を探すことにしました:uC、SoC、およびDSP。たとえば、回路内の電圧について混乱したときは、常に物理の基礎に戻ります。グラウンドは実際にはゼロではなく、単なる「基準」であり、電圧は「絶対的」ではなく、「相対」です。これは常に正しい方向を示しています。しかし、uCについて語る際の基本はありません。「マイクロ」「コントローラー」とは、マイクロメータースケールとなるほど小さいコントローラーです。しかし、ナノコントローラーという用語はありませんね。したがって、この考え方は役に立たないでしょう。 私が答えようとしているのは次のとおりです: uCは他の周辺機器とメモリを備えたプロセッシングユニットで、一般的に使用されますよね? SoCは「チップ」上の完全な「システム」です。では、シングルチップに搭載したシステムはSoCですよね? DSPは特定の用途、主に数学演算用の処理ユニットですよね? 今 それは、uC内のすべてが1つのチップ内にある必要があるということですか?はいの場合、uCは実際にはSoCです。小さいかもしれませんが、そうです。arduinoはどうですか?おそらく、シングルチップ上にある場合、uCはSoCになる可能性がありますが、そうする必要はありません(ここでは、例としてarduinoを多用しています)。 したがって、arduinoはuCです。そのすべてのコンポーネントを別のボードに配置して、たとえばXBEEをミックスに追加するとします。それはまだuCですよね?それで、今はSoCだと言うのはいつですか?同じものをボードに集めるのではなく、単一のチップに入れるときだけですか? これまでのところ、上記の質問は何とか答えていると思いますが、先に進むために確認したいだけです。私が「基本的に」考えようとすると、チップまたはボードは「同じ」である可能性があります。それは、異なるコンポーネントを接続する単なるワイヤです。この時点で、コンポーネントをどのように定義しますか?単一のトランジスタですか、ADCのような回路ですか?しかし、私はそこに行きたくありません。 次の質問は、この投稿が本当に何であるかです: uCは本質的にSoCですか?システム全体が汎用用途であることを要件の1つとするSoCの特殊なケース。 uCは(インターネットによると)汎用であり、DSPは主に、現実の世界から収集された信号を数学的に処理するためのものです。しかし、DSPは依然として「プロセッサ」であり、uCには「プロセッサ」が含まれています。束やペリフェラルを備えたDSP(通常、ADCとDACが一緒に使用されるため、これらを使用するとします)を配置して、ミックスをuCと呼ぶことはできますか?またはSoCです(現在、ミックスは汎用ではないため、uCと呼ぶことはできませんが、それでもSoCです)

2
スーパーコンデンサーからのパワーマイクロコントローラー
私は1.8Vから3.3Vまで動作するuCを持っています。消費電流は、スリープモードで約20uA、アクティブ状態で約12mAです。uCは毎分約100ミリ秒間アクティブ状態になります。 したがって、私はVishayのスーパーキャップから電力を供給しようとしています。2.8ボルトで15F、1kHzでESRが1.2Oです。 数学によると、電圧が1.8ボルトに下がる前にこのキャップから約4.10 mAを引き出すことができ、その時点でマイクロがシャットダウンします。 だから..質問:私は何かを逃していますか?スーパーキャップとマイクロの間に小さな電解液を追加する必要がありますか?電圧の最終的な(可能な?)スパイクを制限する小さなツェナー?コンデンサからもう少し取り出すには、バックブーストコンバーターを追加する必要がありますか? また、マイクロコントローラで電圧低下検出を無効にすると、コンデンサから10%多い電荷を引き出すことができますか?マイクロ出力が意味不明な場合のエラーチェックを実装できます。これは通常、電圧低下検出が無効になっている低電圧シナリオで発生します。

4
-40〜85度の作業環境の仕様で、-55度でMCUを動作させることは可能ですか。
誰かがスクリーニングの方法について言及していると聞きました。10のMCUを-55度で動作させ、正常に動作するものを見つけて、壊れたものを捨てます。 方法は適用可能ですか?MCUが私のスクリーニングテストで-55度で適切に動作し、実際の作業環境で失敗する可能性があることを心配しています。 そうでない場合、可能な解決策は何でしょうか?非常に優れたDSPパフォーマンスのため、stm32f4を使用しています。私たちが発見した-55度で動作するMCUにはDSPがなく、20MHz前後の低周波数でのみ動作します。

4
短時間の電源喪失によりマイクロコントローラーが停止した場合、コンデンサーでこれを修正できますか?
12Vから降圧された電圧レギュレータを通過する5V電源に接続されたマイクロコントローラを持っています。 ほんのわずかな時間で電圧が急速に低下する可能性があるため、再起動していると想定しています。これは、チップを再起動させるのに十分です。 この仮定は正しいですか? 回路にコンデンサを追加することでこの問題を解決できますか?

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