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

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

10
マイクロコントローラピンの12V入力
パルス/秒をカウントしようとしています。マイクロコントローラピンの5〜100 Hzの範囲。µCは5V入力で動作できるので、電圧レベルを安全に下げる必要があります。 簡単な抵抗が思い浮かびますが、それでもサージはµCピンに直接開いたままになります-meh。 私はこの答えに出くわしましたが、その回路が「高速」な100Hzの変化に対応できるかどうかという疑問が残ります。 5Vまたは3.3Vピンを「ダーティ」な 12V入力に接続する、実績のある信頼できる方法(ICを使用しているのでしょうか?)はありますか?「既製」のICを駆動するために利用できる12Vと5Vを持っています。

5
レベルベースの割り込みの意味は何ですか?
レベルベースの割り込みの実用的な実装について検索したところ、ISRに入るとすぐに割り込みが無効になるので、トリガーが戻されないという提案が1つだけ見つかりました。 私が読んだ別のことは、それがループを作成するために使用されるということです。つまり、割り込みが存在する限り、ISRを提供しますが、それはwhileor do whileループで達成できます。 そして、レベルエッジ割り込みが提供する利点は、ISRとレイテンシの処理の間にメインプログラムの1つの命令を実行する贅沢かもしれません。私は推測する。 それで、レベルエッジ割り込みを理解する上で欠けているものはありますか? 素晴らしい答えは、レベルベースの割り込みのある種の実際的な使用法を私に示すことです。

4
マイクロコントローラアーキテクチャを学ぶ必要があるのはなぜですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 私は最近、自動車診断関連の電子機器を製造する小さな会社で働き始めました。50代半ばの私の上司は、8051デリバティブを使用していて、彼らが仕事をしていたと言いました。今日も8051が人気があるかどうかを調べるために、Googleを検索しました。そしてQuoraで、私はこれらを見ました: ...それはおそらく最も単純なMCUアーキテクチャです。すべての周辺機器は必要最低限​​のバージョンのようです。タイマー、クロッキング、UARTなどの私の概念はかなりクリアされました!そして、私は他のアーキテクチャを高く評価し始めました-私は実際にその違いを理解したからです。 ...明らかに、その単純さのため、製品を開発するためにどの業界でも使用されません... しかし、なぜ?これまでのところ、少なくとも学生としては、建築に手を加えることなく、多くのことをしてきました。私は幸いにもCでコード化し、さまざまなプロトコル(SPI、I2Cなど)で他のICに接続されたLCD周辺機器を使用しました なぜ、リアルタイムおよびタイムクリティカルなアプリケーションの限られた分野を除けば、マイクロコントローラーのアーキテクチャに悩む必要があるのですか?

4
組み込みCプログラムの存続期間中にコードを1回実行する
プログラムの存続期間中にコードスニペットを1回だけ実行するにはどうすればよいですか?何度もオフにしたりオンにしたりできます。コードスニペットを再度実行する唯一のオプションは、ボードを再度フラッシュすることです。 コードは、再実行したくない校正セクションです。EEPROMまたはフラッシュを使用する場合は、フラグをtrueまたはfalseに設定します。では、そのメモリ位置を最初に読み取ったとき、そのメモリ領域のランダムな値は何でしょうか? これを組み込みCに実装する最良の方法は何ですか?

1
ADCのDNL、INL、ENOBが予想外に悪い
私は現在、MCUとその周辺機器、特にオンボードADCを特徴づけようとしています。ただし、通常のテスト手順(ENOBの場合は正弦波、DNLとINLの場合はのこぎり波)を実行すると、結果がやや悪いことがわかります。要するに、ADCは「12ビット」です。つまり、ADCは約10ビットの解像度を期待します。ただし、何を試しても、ENOBは約8.5ビットでプラトーになっているようです。DNLとINLの場合も同様です。信号が64倍にオーバーサンプリングされたときに、私が得た最良の結果が得られます。44ページのデータシートには、約±3 LSBのDNLが予想されると記載されていますが、これはオーバーサンプリングしたときに得られるものです。生信号のピークは約7 LSBです。これまでに試したことがいくつかあります。 ADC入力とグラウンドの間に10 nFのコンデンサを配置します(これはある程度機能します-これがなければENOBは7.5です) 4x、8x、および他のいくつかの256xまでのオーバーサンプリング。これは-当然のことながら-結果は改善されますが、それほど大きくはありません。オーバーサンプリングが大きいほど良い結果が得られますが、4xはオーバーサンプリングがない場合とほぼ同じです。 ADCモジュールのクロックを遅くし、サンプリングウィンドウを増やします。これらのどれも特に効果的ではありませんでした。サンプリングウィンドウを大きくすると、ENOBとDNLに小さなプラスの影響がありました。時計を遅くしても効果はありませんでした。 同様に、外部または内部参照を使用しても効果はないようですが、私は外部参照で多くの実験を行っていません。いつかそれを読む可能性のある人のリファレンスの小さな編集 - 私のケースで外部リファレンスを使用すると、より悪い結果が得られました。言い換えると、私のMCUの内部リファレンスの方が正確であるように見えます。または、外部リファレンスが思ったほど良くありません。 さて、問題は、どの時点でADCの品質が悪いか、なんらかの形で損傷を受けていることを受け入れるかどうかです。ADCの特性を改善するために他にどのようなテストを試すことができますか?関数発生器で入力信号を生成していることに注意してください。この時点で私は行き詰まっている-つまりフォーラムのスレッドが足り なくなって 読んでいる -本当に助言をいただければ幸いだ。

2
STM32のUSART(UART)割り込みフラグをクリアしますか?
STM32F105を使用して、UARTを使用するLinx GPSチップと通信しています。 割り込みを使用しない場合(RXフラグをポーリングするだけの場合)、問題なく動作します。しかし、割り込みを使用しようとすると、予期しない結果が発生します。 たとえば、を使用してRXNE(「RX not empty」)割り込みのみを有効にする場合USART_ITConfig(USARTx, USART_IT_RXNE)、コードはこの1つの特定のイベントのISRにのみベクターする必要があります。ただし、割り込みはオーバーラン状態でもトリガーされます。 フラグをクリアする限り、メソッドはフラグに依存しているようです。オーバーランフラグ(USART_IT_ORE)をクリアするには、ユーザーマニュアルに、最初にUSARTx_SRレジスタを読み取ってからレジスタを読み取るべきと説明USARTx_DRされています。これは機能します。フラグはクリアされます。 USART_ClearITPendingBit()関数もありますが、フラグの小さなサブセットしか受け入れません。 選択的に有効にできる8つの異なる割り込みソースと、10の異なるフラグがあります。 これらのフラグをすべて管理する方法の概要はどこにありますか?

4
マイクロコントローラを使用して複数のタイムクリティカルな機能を実装する良い方法は?
マイクロコントローラに非常にタイムクリティカルな機能を実装するための哲学またはアプローチは何ですか? 私は、さまざまな周波数の正確な方形波波形を出力するプロジェクトに取り組んでいます。タイマーと割り込み機能を使用してこれを行いました。ただし、これを正しく実装する場合でも、割り込みサービスルーチン中に取得したクロックサイクル数のオフセットを調整する必要がありました。私は、この精度が別のそのような波形を同時に実行することによって妨害されると想像します(たとえば、周波数を正確に同時に変更する必要があるとします)。マイクロコントローラをそれぞれ持つことで、そのような時間ごとに重要な機能は無駄に見えます。 クロック(hh:mm:ssなど)関数を実装する別の例を見てみましょう。すべての高レベルのマイクロコントローラー/コンピューターに、時間を追跡するためだけに専用のリアルタイムクロックチップがあるとは思えません。ただし、コアプロセッサを使用して正確に測定されていることを想像するのは難しいです。コアプロセッサは、非同期の間隔で大量の関数を処理するのに忙しいためです。タイムカウントにはオフセットエラーがあり、実行中の関数に応じて変化すると思います。 達成可能な精度に許容範囲を含める、または許容範囲を与える設計プロセスまたはアプローチはありますか?または、誰かがこれに関する詳細情報をどこで見つけることができるかについてのポインタまたは提案を持っていますか?

3
ROMとRAMのどちらからプログラムを実行するのが速いですか?
電子工学の出身である私たちのほとんどは、SRAMがDRAMよりも速いことを知っています。しかし、RAMとROMを比較することになると、私にはわかりません。 私の質問はマイクロコントローラーに関連しています:「コードがRAM / ROMから直接実行される場合、そのパフォーマンスはより良くなりますか?? 1)RAMからの実行または2)ROMからの実行または3)両方が同等に実行されます」 また、ROMの読み取り速度が高くなるように設計されていることも考慮してください。一方、RAMの場合、読み取り速度と書き込み機能のトレードオフがあります。

2
atmelはなぜ39Rプルダウン抵抗を使用するのですか?
ARMを少し体験するために、最近SAM4S XPLAINEDボードを購入しました。このボードには外部RAMがあり、RAMの/ CS1ラインであるPIN6には39Rプルダウン抵抗があります。 完全な回路図:回路図 質問:なぜ39Rがその抵抗器の抵抗であるのですか?それは私には非常に珍しいことです。ここで強力なプルダウンを使用する必要がある理由はわかりません。その背後にある論理を理解したいだけです。 回路図によると、コントローラーのPC14に接続されていますが、実際はそうではありません。(R208がありません)

2
安全なUART通信プロトコルを作成するにはどうすればよいですか?
安全なUART / USB通信プロトコルを作成する方法を考えていました。マイコンとパソコンの通信に必要です。私は〜10個のコマンドを使用しており、それぞれに10個の個別の確認応答コマンドを使用すると思いました。 交換は次のようになります。 PCがUARTを介してウェイクアップコマンドを送信する µCはPCが接続されていることを認識し、そのコマンドをPCに送信します。 0x01 PCは要求された処理(一部のハードウェア関連)を実行し、~0x01完了時に応答します(2つの数の間に大きな「距離」を作成するために数を無視します)。 µC 0x01は送信したことを認識し~0x01、PCから期待しています。~0x01µCは、何か他のものが戻ってきた場合、何かがうまくいかなかったことを認識し、新しい要求またはエラーメッセージを送信します。 µCが送信する0x01場合、PCはそれを理解0x02して~0x02送り返しますが、~0x01ノイズによるµCの読み取りはかなり悪いでしょう。 送信に関してそれはどのくらい安全ですか、またはこれをより安全にするにはどうすればよいですか?

5
コードをマイクロコントローラーに配置するには何が必要ですか?
コントローラのコーディングについて学びましたが、実際にコードを物理デバイスに配置することはありませんでした。基本的な組み込みシステムの開発を開始するために何を注文する必要があるのか​​を理解しようとしています。 たとえば、PIC18F1330を使用している場合、MPLAB IDEとXC8コンパイラを使用しています。すばらしいので、コードをコンパイルしました。これをコントローラーに配置する準備ができました。PC上のコンパイル済みコードをコントローラーに転送するために必要なものは何ですか? インサーキットデバッガーやPICキットなどを見てきました。この時点で私は迷っています。

1
ベアメタルコードの標準的なテスト方法はありますか
レジスタに書き込むときに問題が発生する可能性がほとんどないため、ベアメタルコード、特にデバイス/ペリフェラル初期化コードなどにテスト方法があるかどうかを知りたいです(すべてのアドレスが正しくマッピングされていることがわかったら)。また、この種のコードは通常、デバイスが単一の機能のみに構成されている場合、ブランチ/パスがほとんどないため、ここでどのような種類のテストが必要または適用可能ですか?

7
4 MBit!= 512 kB?
私は富士通のマイクロコントローラーを使用していますが、以下の詳細については少し錆びていると思います。そのため、この質問をします。次の仕様があります。 4Mビットのフラッシュメモリ 内蔵製品:MB90F345E(S)、MB90F345CE(S) ボリューム:512 Kバイト/ 256 Kワード セクター構成:64K×6 + 32K×2 + 16K×2 + 8 K×4 割り当てられたバンク:F8HからFFHバンク 彼らは魔法のように12Kバイトの追加ROMメモリを作成しているようですか?ここでどのような癖が欠けていますか?



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