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

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

2
シリアル経由のMCUの制御コマンドの実装
PCからシリアル経由でコマンドを受け入れるようにするプロジェクトにコマンドインターフェイスを統合することを検討しています。 アイデアは、デバイスはそれを実行しますが、コマンドが送信され、それを実行するというものです。これは、シリアルデータを待機している単なるアイドルデバイスであることがわかったほとんどの例とは異なります。 たとえば、LEDを制御してアニメーションを再生するデバイスなどです。3つのプリセットアニメーションがあるとします。オンにすると、常に1番を再生します。PC側では、「プリセット2を再生」または「色を緑に変更」コマンドを送信するか、デバイスにライブリアルタイムアニメーションを送信します。 LEDで遊ぶ。 だから私の質問は、私はこの「デザインパターン」について多くの情報を見つけることができないということですか?どこを見ればよいのかわかりません。一番近いのは、既製のarduinoシリアル解析ライブラリです。ただし、C /非Arduino /理論的アプローチの詳細を探しています。 私はシリアルプロトコルを調べていますが、これはSPIやI2Cなどのことであり、実際にソフトウェアで制御/コマンドインターフェイスを実装する方法ではありません。 HDLCについても知りましたが、これは標準/プロトコルのようです。同様のスレッドは/programming/1445387/how-do-you-design-a-serial-command-protocol-for-an-embedded-system これはいくつかの非常に素晴らしい情報を持っていますが 、やるべきことですプロトコル/通信自体で。 これをコード化/実装してコマンドまたはコントロール機能を作成する方法を見つけようとしています。 無限ループを使用して、着信コマンドのシリアルを監視およびキャッチし、IFステートメントのリストを使用して、実行するコマンドを選択しますが、コマンドおよびシステムが正常である必要がない場合、またはその場合コマンドを逃した? 割り込み駆動、ステートマシン? 例を調べて見つけるために使用できる正式な名前はありますか? 編集: 同じ質問をしている人のために、私は調査中にこの本当に良い例を見つけました、 http://www.adnbr.co.uk/articles/parsing-simple-usart-commands

1
120個のLEDを実際に制御するにはどうすればよいですか?
ウェブサイトに示されているように、120個のLEDは、出力に設定されたピンに接続された17本のワイヤで制御できます。 以下のペアの少なくとも1つのダイオードをどのように制御できるかがわかりますが、ボード全体をオンにするとどうなりますか?それは可能ですか?具体的には、たとえば、正方形を形成するために隣接するLEDをオンにするにはどうすればよいでしょうか。 質問が馬鹿げていないことを願っています。

1
AVR:ADCのオーバークロック
これはATmega32データシートからの引用です: By default, the successive approximation circuitry requires an input clock frequency between 50kHz and 200kHz to get maximum resolution. If a lower resolution than 10 bits is needed, the input clock frequency to the ADC can be higher than 200kHz to get a higher sample rate. 8ビットのADCを使用する予定です。問題は、200kHzよりもどれだけ高いかです。データシートでこれに関する情報を見つけることができませんでした。uCが16MHzで動作している場合、64または32のプリスケーラーを使用して、それぞれ250kHzまたは500kHzでADCを変換エラーなしで実行できますか?そして、ADCを仕様範囲外で実行すると、どのような結果が起こりますか?

3
PICマイクロコントローラー用の水晶を選択できますか?
PIC16F690を使用していますが、内部発振器に特定の値(20、8、4 ...)があることを知っています。 外部に8MHzの水晶を入れたいのですが、8.8MHzまたは7.6MHzしか見つかりませんでした。 これらのいずれかをPICに配置できるかどうか、または正確に8MHzにする必要があるかどうかを知りたいのですが。また、それぞれのコンデンサをどのように選ぶべきですか?

1
32ビットマイクロコントローラーの選択
ほとんどのベンダーが多様なARM Cortex-Mチップを提供している今、なぜルネサスまたはフリースケール製品を選ぶのでしょうか?ツールなどに精通している人がPIC32を使用する理由があることと、TIまたはAtmelの16ビットまたは8ビットMCUを使用する理由があることを理解しています。 Renesas RXまたはFreescale ColdFireを使用したいですか?

5
UARTエラーの原因は何ですか?
UARTエラーが発生する理由と、そのようなエラーをチェックするタイミングを知りたいのですが。ここに、オーバーラン、パリティなどの個々のエラーの処理について尋ねる投稿があります。データオーバーランが発生する理由、パリティエラーが発生する理由は明らかですが、根本的な原因を知りたいのですが。私の質問は、これらのエラーが発生する理由(物理的な理由)と、エラーチェックをアプリケーションの要因にすべき場合に焦点を当てています。 これまでのところ、私のプログラムは(エラーチェックなしで)うまく機能しているように見えますが、ノイズによって混乱が生じる可能性があることはわかっています。UART Rx / Txポートが失敗する原因となる条件をどのようにシミュレートできますか?

3
L3G4200Dランダムスパイク
L3G4200Dジャイロスコープに関してこのフォーラムを少し検索しましたが、この問題について言及したことはありませんが、他のフォーラムで他の人がそれについて話すのを見てきました。ジャイロスコープが静止していると、出力に奇妙な大きな値が表示されます。残念ながら、これがなぜだか誰も答えることができなかったようです。 したがって、私はi2cを使用して400kHz(高速モード)でジャイロからデータを収集し、マルチバイト読み取り(一度に6バイト)を使用してジャイロスコープデータを収集しています。100Hzでのサンプリング(上位800Hzも試した)、また、異なる値でのフィルタリングのオンとオフを試してみました。割り込みピンは使用していませんが、GYRCTRLREG4の「ブロックデータ更新」属性を使用しているため、LSBとMSBの両方が読み取られるまでデータは出力されません。フル2000dps、FIFOで何もしていません。正確であれば、正確なレジスタ値を投稿できますが、データシートが手元にない場合がほとんどです。 下の画像は私の問題を示しています。出力されているデータは適切であり、(私の知る限り)正しく計算されており、一般的なノイズは非常に許容範囲です。しかし、デバイスが静止しているときに、これらの迷惑な「ブリップ」がランダムに表示されることに気付きました。数秒間そのままにしておくと、これらのスパイクの1つが得られ、常に約250〜255になります(つまり、((output * 70)/ 1000 'を使用して変換すると〜18)。私が言うように、スパイクはランダムであり、任意の平面に表示できます(下の画像では、X平面の最初のスパイク、Yの2番目のスパイクを見ることができます)。 3つが同時に発生する可能性があります。大きな値は単一のサンプルの場合のみであり、通常に戻ります。 別のスレッドで、前述のように、GYRCTRLREG4のブロックデータ待機関数を使用する必要があることを確認しましたが、変更はありませんでした。私は、MSBがゼロ以上、つまり正の数である場合に問題を絞り込んだ後、MSBとLSBを組み合わせると、これらの大きな数が得られます。たとえば、X平面に必要な2バイトを取得します。LSBで-6を取得し、MSBで0を取得します。これらを組み合わせると250になり、変換すると(250 * 70)/ 1000 = 17.5 dps(つまり、静止/不正確には大きすぎます)。同じサンプルで、Yプレーンの2バイトは-3 LSBと-1 MSNで、これらを組み合わせると-3になり、変換すると-0.21になります(つまり、期待値/正しい)。 私はこの問題に何日も取り組んでいますが、磁力計でこれらのランダムなスパイクが少し表示されているので、(i2cを介して)デバイスを誤って読み取っているのだと思いますか? 提案や試してみたいことは本当に大歓迎です!

5
マイコンから出力される電圧を制御できますか?
回路に対して0 V〜0.8 Vの値を生成し、システムから出力される電圧の値を取得してデータを分析する必要があります。マイクロコントローラを使用して電圧値を自動的に生成できますか?(例:0.05 V、0.1 V、0.15 V ...) 答えが「はい」の場合、どのマイクロコントローラーを使用する必要がありますか、またどの手法を推奨しますか? 答えが「いいえ」の場合、他の方法を提案できますか?

2
極度の高温範囲を持つマイクロコントローラ[クローズド]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 電気工学スタック交換のトピックになるように質問を更新します。 昨年休業。 高温で動作する部品を探しています。特に、180°C〜200°Cで動作するマイクロコントローラーを探しています。極限状態でも問題なく動作するマイクロコントローラを見つける必要があります。マイクロコントローラにCANインターフェースが組み込まれている場合、それは本当に素晴らしいでしょうか?または、プロジェクトに使用できるその他の方法とマイクロコントローラー。マイクロコントローラーの目的は、さまざまなセンサーから情報を取得し、いくつかのキャリブレーションを実行することです。 TEXASからSM320F28335-HTである1つのマイクロコントローラーを見つけましたが、そのマイクロコントローラーのコストは非常に高くなっています。低コストで高温で動作するマイクロコントローラはありますか?

5
高温でのマイクロコントローラー間の通信の選択
私は、特定の機能用のマイクロコントローラーを備えた複数のPCBボード間の可能な限り最良の通信を見つけるプロジェクトに割り当てられました。すべてのマイクロコントローラーがCPUを含むメインボードと通信する必要があります。 メインボードからコントローラーに情報を送信し、コントローラーから応答を受信する必要があります。各コントローラボードは、特定の目的のために設計されています。マイクロコントローラー間で通信する必要はありませんが、1つのマイクロコントローラーが通信に失敗しても、他のマイクロコントローラーには影響しません。現在、6つのマイクロコントローラーが通信する必要がありますが、将来的にはそれ以上の通信が必要になります。メインボードと他のコントローラー間の有線接続を増やしたくありません(少なくする必要があります)。 通信は、温度(250°F(120°C))および圧力(高)の影響を受けません。メインボードとファイナルコントローラーの間の距離は1メートルを超えることがあります。どのタイプのコントローラーが最適ですか?いくつかの計算とセンサーの読み取りを実行する必要があります。各ボードには2つ以上のセンサーがあります。センサーの読み取り値を計算するか、値を直接送信する必要があります。 このタイプのプロジェクトは初めてです。私は最良のコミュニケーションを探しましたが、どちらが最良か分かりません。CAN通信の使用を勧める人もいます。CAN通信を選択した場合、どのタイプのマイクロコントローラーが最適ですか?以下に示すような簡単な図を添付しました。

3
PIC12のプログラミング方法を教えてください。
プログラムする必要があるPIC12F675を持っています。Pickit 2とPickit 2ソフトウェアを使用しています。おそらくこの回路を使用してプログラムできるはずですが、Pickit 2ソフトウェアはチップをまったく検出していません。 何が問題になっていますか? 編集:私は私の回路のブレッドボードアウトの画像を追加しました。そして、ここに PIC12F675のデータシートがあります。ピン配置については、4ページにスキップしてください。 EDIT2:私は実際にチップを調べただけです(ダムですが、注文したものをマウサーが送ってくれると思い込んでいました)。実際にはPIC12C671であることに気付きました。これにより、どの程度の違いが生じますか? 最終編集:うわー!これで私を助けてくれたみんなに感謝します!このような反応は期待していませんでした。それは私が思ったように、小さな愚かな問題になってしまいました。Mouserからパッケージを受け取ったときにすべてを再確認しないのは私のせいでした。

3
Microchip XC16の関数の絶対アドレス
デバイス:dsPIC33FJ128GP802 次のようにいくつかの* .sファイルがあります .global _D1 .section .speex, code _D1: .pword 0x66C821, 0x1B0090, 0xD96C36, 0x9B60B0, 0xDD4E36, 0xBF4E53 .pword 0xD1098B, 0x719BD9, 0x873989, 0x003B69, 0x279035, 0xED4244 .pword 0xE1403C, 0x54D439, 0x826550, 0xC59627, 0xDD0432, 0x88FA29 同じことを* .hで宣言しました extern void D1(void); 今、私はD1をテーブル読み取り関数に渡します nowPlaying.file1 = (unsigned long) D1; function(nowPlaying.file1); 私の問題は、D1のアドレスが0X8000より大きい場合、ルーチンが正しくないことです。大小のコードモデルを試しましたが、結果は同じです。これはポインタの16ビット制限によるものだと思います。コードからD1の絶対アドレスに直接アクセスする方法はありますか。組み込み関数やマクロのようなものかもしれません。

2
マイクロコントローラが損傷しているかどうかをどのように判断できますか?
私の「ジャンクパーツ」箱にいくつかのマイクロコントローラーが置かれています。それらのいくつかは、それらをプログラミングした後、奇妙な振る舞いを示したときに到着したと思います。それ以来、たとえば、コンパイラで誤った最適化を行うと、このような奇妙な動作がどのように引き起こされるかについて、多くのことを学びました。一方、一部のマイクロコントローラーは、静電気や許容電圧の範囲外などが原因で十分に損傷している可能性があります。したがって、正常に動作しているマイクロコントローラーもあると思います。 すべてを捨てる前に、私は疑問に思いました。マイクロコントローラーをテストして、それがまだ良いかどうかを判断する比較的簡単な方法はありますか? 特にマイクロは、DIPバージョンとSOICバージョンの両方であるAtmel ATTiny13、ATTiny26、およびATTiny2313です。

5
水がいくらか汚染されており、かなりの塩が溶解している水位検出
水位を測定または検出するためのいくつかのオプションを提供するこの優れたQnAがここに見つかりました。私の場合、タンクの4つのレベルの水(非常に低い、低い、中間、満杯)を区別するのに十分です。 私も同じようにする必要がありますが、私の場合、これは正確にきれいな飲料水ではないという懸念に対処する必要があります。深い管井から汲み上げられた水は、シルト(さびた焦げ茶色/黒っぽい種類)と多くの溶解塩で多少汚染されているようです。沈泥は、5ミクロンのフェルト/マイクロファイバーベースの堆積物プレフィルターで濾過されますが、ポンプ後のセクションでは、地表水溜に存在します。塩は、金属、プラスチック、およびほとんどすべての表面を汚す(塩の堆積物)ため、大きな懸念事項でもあります。金属/プラスチック製の部品を水没させたままにしておくと、かなりの量の塩が堆積するため、これを廃棄する必要があります(困難)。 これらの動作環境特性を考えると、水位を検出する次の方法(上記の前のQnAからの方法)のどれが最も信頼性が高く、長期にわたって最小限のメンテナンスで動作することが期待できるかと思いました。 タンクの底の差圧トランスデューサー。センサー表面またはその端が塩/沈泥の堆積物によって詰まり、数か月後に機能を停止する可能性はどのくらいですか。塩/沈泥の堆積物自体は、時間の経過とともに圧力の読み取りにエラーを引き起こす可能性があります。 フロートスイッチ-これには可動部分があるため、塩/沈泥の堆積物によってそれらを不動(フロートの可動性が失われる)にできるかどうか疑問に思いますか? 静電容量感知-これは引用されたQnAで詳細に説明されていませんが、水の平均誘電率に依存することを他の場所で読んだことがあります。近接。この静電容量は、測定される水位によって異なります。正確なメカニズムは明確ではありません。また、どうやらこれには低電圧の交流電流が使われているようですが、やはりどのように部分が明確ではないのでしょうか。また、時間の経過に伴う静電容量の変化において、塩/沈泥の堆積がどのような役割を果たす可能性があるかは、私には不明です。 複数のレベルでの導電率テスト-電極はさまざまなレベルに配置され、特定のレベルに配置された特定の回路に水が到達すると、閉回路として動作すると想定されています。電流(24VDCのようなもの)が回路を定期的に短時間通過して、どの回路が閉じているかを判別し、そのような情報から水位を推測します。さて、塩/沈泥は導電率を変えますか?そして、それらは電極を腐食させることができますか?アルミ電極や銅電極は使用できますか? 超音波、近接センシング-このようなセンサーを下向きにして、つまりタンクの底を真っ直ぐに見て、標準の近接センシングメカニズムを使用して水位を検出します。センサーが水と接触することはほとんどありません(たとえあったとしても)ので、これは最も有望なようです。また、インストールも簡単です。しかし、これらすべての中で、これはおそらく最も高価なアプローチであり、おそらく堅牢性が低くなります(つまり、閉じた水タンク/サンプの極端な湿度と温度の変動下ではうまく機能しない可能性があります)。

3
PIC18のI2C以降
プロジェクトでは、3つのPIC(2つのスレーブPIC18F4620、1つのマスターPIC18F46K22)でI2Cバスを介して通信したいと考えています。後で、さらに多くのスレーブが追加される可能性があります(EEPROM、SRAMなど)。C18コンパイラを使用して、これらのPICのコードをCで記述しています。私はインターネットをよく見て回りましたが、(M)SSP周辺機器を処理するためのライブラリーが見つかりませんでした。I2Cモードの(M)SSPペリフェラルの両方のPICのデータシートを読みましたが、バスのインターフェース方法を見つけることができませんでした。 だから私はマスターとスレーブのライブラリが必要です。 何がお勧めですか?どこかにそのような図書館はありますか?コンパイラーに組み込まれていますか?はい、組み込まれていますか?ネット上のどこかに良いチュートリアルがありますか?

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