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

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

9
8ビットプロセッサは256バイトを超えるRAMをどのようにサポートできますか?
場合は32ビットプロセッサは、RAMの約4ジブ(すなわち扱うことができる232=4294967296232=42949672962^{32} = 4 294 967 296)バイトであるならば、なぜ私のArduinoメガ2560は、SRAMの8 KiBのを持っていない8ビットプロセッサは、それだけで256を処理することができますバイト(28282^8)?または、次のページを間違って読んでいますか? http://www.atmel.com/devices/atmega2560.aspx?tab=parameters

5
最新のCPU(ARMなど)を使用したサイクルカウント
多くのアプリケーションでは、命令実行が予想される入力刺激と既知のタイミング関係にあるCPUは、関係が不明である場合にはるかに高速なCPUを必要とするタスクを処理できます。たとえば、PSOCを使用してビデオを生成したプロジェクトでは、コードを使用して16 CPUクロックごとに1バイトのビデオデータを出力しました。SPIデバイスの準備ができており、分岐していない場合、IIRCは13クロックかかり、出力データへのロードとストアには11時間がかかるため、バイト間のデバイスの準備をテストする方法はありませんでした。代わりに、最初のバイトの後、各バイトに対して正確に16サイクルのコードをプロセッサに実行させるように単純に調整しました(実際のインデックス付きロード、ダミーインデックス付きロード、およびストアを使用したと思います)。ビデオの開始前に各行の最初のSPI書き込みが行われたため、後続の書き込みごとに、バッファオーバーランまたはアンダーランなしで書き込みが発生する可能性のある16サイクルのウィンドウがありました。分岐ループは不確実性の13サイクルウィンドウを生成しましたが、予測可能な16サイクルの実行により、後続のすべてのバイトの不確実性が同じ13サイクルウィンドウに収まることを意味しました(書き込みが許容できる16サイクルウィンドウ内に収まります)起こる)。 古いCPUの場合、命令のタイミング情報は明確で、利用可能で、明確でした。新しいARMの場合、タイミング情報ははるかに曖昧に見えます。コードがフラッシュから実行されている場合、キャッシュ動作により物事を予測するのがはるかに難しくなるため、サイクルカウントされたコードはすべてRAMから実行されると予想されます。ただし、RAMからコードを実行する場合でも、仕様は少しあいまいに見えます。サイクルカウントされたコードの使用はまだ良い考えですか?もしそうなら、それを確実に動作させるための最良のテクニックは何ですか?チップベンダーが、特定の場合に特定の命令の実行サイクルを削る「新しく改善された」チップを静かにすり抜けることはないと、どの程度安全に想定できますか? 次のループが単語の境界で開始すると仮定すると、仕様に基づいて正確にどれくらい時間がかかるかをどのように決定しますか? マイループ: mov r0、r0; より多くの命令をプリフェッチできるようにする短い単純な命令 mov r0、r0; より多くの命令をプリフェッチできるようにする短い単純な命令 mov r0、r0; より多くの命令をプリフェッチできるようにする短い単純な命令 mov r0、r0; より多くの命令をプリフェッチできるようにする短い単純な命令 mov r0、r0; より多くの命令をプリフェッチできるようにする短い単純な命令 mov r0、r0; より多くの命令をプリフェッチできるようにする短い単純な命令 r2、r1、#0x12000000を追加します。2ワード命令 ; 異なるオペランドを使用して、以下を繰り返します ; キャリーが発生するまで値を追加し続けます itcc addedcc r2、r2、#0x12000000; 2ワード命令、およびitccの追加の「ワード」 itcc addedcc r2、r2、#0x12000000; 2ワード命令、およびitccの追加の「ワード」 itcc addedcc r2、r2、#0x12000000; 2ワード命令、およびitccの追加の「ワード」 itcc addedcc r2、r2、#0x12000000; 2ワード命令、およびitccの追加の「ワード」 ; ... etc、より条件付きの2ワード命令 サブr8、r8、#1 bpl myloop …

4
BJTトランジスタは飽和状態でどのように機能しますか?
これは、NPN BJT(バイポーラジャンクショントランジスタ)について私が知っていることです。 ベースエミッタ電流はコレクタエミッタでHFE倍に増幅されるため、 Ice = Ibe * HFE Vbeはベースエミッタ間の電圧であり、他のダイオードと同様に、通常は約0.65 Vです。Vecしかし、私は覚えていません。 Vbeが最小しきい値よりも低い場合、トランジスタは開いており、どの接点にも電流は流れません。(大丈夫、たぶん数μAのリーク電流ですが、それは関係ありません) しかし、まだいくつか質問があります。 トランジスタが飽和しているときの動作は? Vbeしきい値より低い以外の条件の下で、トランジスタをオープン状態にすることは可能ですか? さらに、この質問で私が犯した間違いを(回答で)遠慮なく指摘してください。 関連する質問: トランジスタがどのように機能するかは気にしませんが、どのように動作させることができますか?

9
より良いパフォーマンスを得るために、組み込みソフトウェア用の関数を作成する際の最良のアプローチは何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 2年前に閉店。 マイクロコントローラ用のライブラリをいくつか見てきましたが、それらの機能は一度に1つのことを行います。たとえば、次のようなものです: void setCLK() { // Code to set the clock } void setConfig() { // Code to set the config } void setSomethingElse() { // 1 line code to write something to a register. } 次に、その上に、関数を含むこの1行のコードを使用して他の目的に役立つ他の関数を追加します。例えば: void initModule() { setCLK(); setConfig(); setSomethingElse(); } 確かではありませんが、この方法では、ジャンプの呼び出しが増え、関数が呼び出されるか終了するたびに戻りアドレスをスタックするオーバーヘッドが発生すると思います。そして、それはプログラムの動作を遅くするでしょう? 私は検索しましたが、プログラミングの経験則では、関数は1つのタスクのみを実行する必要があると彼らは言います。 したがって、クロックを設定するInitModule汎用モジュールを直接記述し、必要な構成を追加し、関数を呼び出さずに他のことを行います。組み込みソフトウェアを書くとき、それは悪いアプローチですか? 編集2: …

3
非メーカーのマイクロコントローラー選択サイト?
希望するマイクロコントローラーの特性を入力できるサイトを探しています。メーカーのウェブサイトを見つけました...しかし、それらはマイクロコントローラーのみを表示します。 IEにはPICS用のサイトやAVR用のサイトなどがありますが、暗闇の中で走り回っているだけでなく、すべてのメーカーの可能性を選択するものを探しています...

3
MOSFETとマイクロコントローラーを使用してDCモーターを駆動しますか?
3.3Vで動作するAtmega328マイクロコントローラーと非常に小さなブラシ付きDCモーターを使用して、ナノクワッドコプターを開発しています。これらのモーターで使用される平均電流は、3.7Vで約800mAです。 最初は、それらを駆動するために、L293Dモータードライバーを使用しましたが、このコンポーネントは非常に非効率的でした。モーターが最大出力で動作したときに測定された電流は約500mAであったため、推力は本来よりもはるかに低くなりました。 ここで、この問題を解決するために、そのモータードライバーを4つのロジックレベルMOSFETに置き換えます。長い検索の後、私はこれを見つけます(2SK4033)。 それが機能するかどうか知っていますか?ダイオードと組み合わせて使用​​する必要がありますか?答えが「はい」の場合、これ(MBR360RLG)はどうですか? これらのコンポーネントを選択したのは、同じオンラインストアから購入できるからです。

7
最小のマイクロコントローラーは何ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Electric Engineering Stack Exchangeで話題になるようにします。 閉じた3年前。 スペースが非常に限られているプロジェクトで使用するマイクロコントローラーを探しています。どのマイクロコントローラーが最小のパッケージを持っていますか?これは高性能である必要はなく、ほとんどのマイクロコントローラーはこの場合に必要なものよりも強力ですが、小さい必要があります。AtmelのATtiny20は、1.55x1.4x0.53mmのWLCSP-12パッケージで提供されますが、これは悪くありません。これらの線に沿って、またはそれより小さい他のオプションはありますか?(どの家族からでも、Atmelである必要はありません) 更新:少なくとも4つのI / Oピン。

5
マイクロコントローラーにUARTがないので、どのように追加できますか?
私はATMEGA32HVBマイクロコントローラーを使用しています。このマイクロコントローラーにはセルバランシング機能があり、4つのバッテリーを直列に接続して、1つずつ使用できます。これは電源管理に非常に役立つため、別のマイクロコントローラーを使用することはできません。シリアルデバイスに簡単にインターフェイスできるように、UARTを追加する方法をいくつか提案してください。

6
なぜ人々はマイクロコントローラー上でWebサーバーを作成するのですか?
マイクロコントローラを使用してWebサーバーを作成している人に出会ったことがありますが、なぜそうするのでしょうか?その用途は何ですか?このようなサーバーを作成するには、C言語以外にどのようなスキルセットが必要ですか?このような小さなRAMを備えたこれらの小さなサーバーには非常に興味があります。

3
PICからAVRへの切り替え[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 私はPIC16およびPIC18で3年以上働いてきましたが、AVRについても知りたいと思います。特定のプロジェクトを念頭に置いているわけではありませんが、異なるアーキテクチャを試してみたいと思います。PICとAVRの互換性レポートを入手したいです。 PIC16およびPIC18のアセンブリとCに精通しているuCのソフトウェア。AVRマイクロコントローラーのアセンブリおよびCバリアントは、PICバリアントとどのように異なりますか?多くの違いはありますか? PCのソフトウェア AVRチップ用にプログラムをコンパイルおよびアセンブルするには、どのソフトウェアが必要ですか?無料ですか、どこからダウンロードできますか? プログラミングハードウェア PIC のプログラミングにはVOTIのWisp648を使用しましたが、そのボードはAVRをプログラミングできません。プログラマーを購入する必要がありますか、それとも自分で構築できる回路がWeb上で利用可能ですか? uCのハードウェア PICには、PIC18F4620を多く使用しました。同様の機能を備えたAVRを探しています。私が好きな機能は次のとおりです。 内部発振器 タイマー 5Vおよび3.3Vバージョン ADC I2CおよびSPIをサポートするMSSP (E)USART PWM 多くのI / Oピン > = 32kBプログラムメモリ、> = 2kB RAM DIPパッケージ どのAVRチップに同じ機能がありますか?パッケージはディールブレーカーです、私は本当にDIP、PDIPまたはSPDIPが欲しいです。同等の機能を備えたAVRはどうなりますか? SPIおよびI2Cバリアント MicrochipにはSPIおよびI2Cプロトコルに独自のバリアントがあると言われました。PICと組み合わせて、マイクロチップのSPIおよびI2Cスレーブデバイスをよく使用します。これらのチップ(23K256、RTC、ENC28J60など)をAVRと組み合わせて使用​​できますか?それに加えて、I2CまたはSPIを使用してAVRとPICチップをリンクすることは可能でしょうか?

3
非常に正確な時間測定
できるだけ正確に非常に短い時間を測定します。このデバイスは、最初に1パルスを取得し、150マイクロ秒以内にさらに6パルスを取得します。それぞれが独自のワイヤ上にあります。最初の信号と他の6つの信号のそれぞれの間の時間は、可能な限り正確に測定する必要があります。精度は少なくとも100ナノ秒である必要がありますが、それ以上の方が優れています。 どのマイクロコントローラーがこれに最適でしょうか?これを見つけました。4ナノ秒の周期のタイマーがあるようです。それは私にとって十分に正確だろう。 これを行うには他のマイクロコントローラーが良いでしょうか?これはAVRで実行できますか?

5
加速度センサーのデータ特性の分析とフィルターの設計
基本的な運転シナリオである25MPHの通常の道路の約32秒分の加速度計データと、約7個のくぼみと道路の大まかなパッチがあります。加速度計は、両面テープで私の車のダッシュボードに取り付けられています。 問題:加速度計からのノイズの多いすべてのデータがあり、ポットホールイベントが発生したことを検出する簡単な方法を作成する必要があります。以下は、時間領域とFFTのデータのグラフです。加速度計はGForceで測定しています 基本的に、私は私のarduinoに、大学院レベルの数学と技術を使用せずに、かなり高い精度でpot穴が発生したことを知ってほしい。 100hzでサンプリングされた加速度計には、Z軸に50HZ RCローパスフィルターがあります。 Here is the CSV data for the 32 seconds of accelerometer readings TIME, GFORCE format: http://hamiltoncomputer.us/50HZLPFDATA.CSV 更新:これは、Arduinoで得られる最高のサンプリングレートでサンプリングされた加速度計1000HZのRAWフル帯域幅です。CSVファイルの直接ダウンロード:約112秒のデータ http://hamiltoncomputer.us/RAWUNFILTEREDFULLBANDWIDTH500HZ.csv 黒いトレースは、フィルタリングされていないRAWの加速度センサーデータです。青色のトレースは、FFT、Dominate 2HZ、および12HZで検出された極端な周波数に基づくバンドストップフィルターによってフィルタリングされます。 時間領域では、ポットホールイベントは次のようになります。 FFTの10から15HZの成分が何なのか、実際のポットホールなのか、それとも道路に対する車輪のホイールホップなのか、それとも車の共振周波数なのかわかりません。 FFT: 実際のポットホールイベントのように見えますが、ここはHPF @ 13HZです。ポットホールの主要な機能は強化されているようです ポットホールをリアルタイムで検出してカウントできるようにしたい サスペンションは、動揺病を引き起こす10〜13 HZよりもずっと遅く動くはずです。 更新: AngryEEの提案に従って、加速度計1000HZの全帯域幅と、arduinoで得られる最大サンプリングレートを使用しました。 FFT: ポットホールイベントとその周辺のバンプとロードノイズのサンプルデータを次に示します。 ダイオードエンベロープ検出器回路を追加、出力は同じように見えます...加速度計は常に0〜3.3ボルトを出力します... 更新: 多くの路上試験から、Z軸上の私の車で1.6Gの最大45 MPHを超えることはありませんでした。rand()を使用して擬似ランダムGforce加速を生成しました。 私の考えは、1〜3秒のデータウィンドウを見て、Z軸の変位を計算できる場合ですが、加速度計のドリフトと積分の誤差が心配でした。ここで90%でさえ正確である必要はありません。> 70%は良いでしょうが、一度に1から3秒の変位を見ている場合、それはリアルタイムで可能ですか?このように、変位が1インチ、2インチ、5インチなどより大きいかどうかを確認できます。変位が大きいほど、バンプまたはポットホールは粗くなります。 私がこれを正しく行っているかどうかを確認できますか?基本的にデスクトップで設定し、rand()を使用して-1.6から1.6 Gのランダムな加速を生成し、50HZのサンプリングレートで3秒間のデータをキャプチャします * nixを実行する場合は、Windows.hのSleep()を使用して20mSの遅延、50HZのサンプリングレートを作成しています 私はちょうどコードがあなたに合っているかどうかを見たかった、私はまだ特定のバッファをしていません、私はそれを実装する方法についてちょっと混乱しています:コメントアウトされたコードは、私がそれに取り組んでいるクラスのものです、しかし、私はまだ100%を理解していません。循環バッファーを使用すると、データのウィンドウを連続して正しく移動できますか? #include …

5
5 nsパルスの延長
非同期のコンパレータから出力される5 nsのパルス幅Highがあります。このパルスを数えようとしています。現在のマイクロコントローラー(dsPIC33FJ)には、少なくとも10 nsのパルス幅Highの最小仕様を持つ非同期カウンターが搭載されています。 この5 nsパルスをカウンターで読み取れるように延長/延長するためのオプションは何ですか?別のマイクロコントローラーに切り替えたり、より質の高いフロントエンドカウンターを使用したりすることはできますが、代わりにパッシブ/シンプルな回路を使用したいと思います。これは可能ですか? 私がこれまでに研究したこと: 放電によって速度が遅くなることを期待して、出力信号とグランドの間に.1uFのコンデンサを接続しようとしましたが、信号を大きく歪めるだけでした。より低い値を使用できますか? サンプルを調べてICを保持しましたが、検出できる最短の取得時間は約200 nsで、これはアプリケーションには適していません。

3
PICのRxピンにLEDを取り付ける
microcontroller(PIC)がデータを受信(または送信)しているかどうかを知る方法が必要です。そこでLED、データ転送が発生したときに点滅するように、別のものを用意することを考えました。 しかし、私はこれを添付する方法を知る必要がありLEDます。それは直接に取り付けOKですLEDしPIC、S Tx(とRx)ピン?私はそれが何らかの方法でデータの転送に影響することを意味します(電圧を落とすなどによって...)。

5
これは、MOSFET Hブリッジに適した設計ですか?
私は、RCカーモーター(12Vおよび2〜3A)用のシンプルだが機能するH-Bridgeを設計しようと試みてきました。 このブリッジはマイクロコントローラーから駆動され、PWMをサポートするには高速である必要があります。したがって、私の測定値に基づいて、高速スイッチングと低抵抗に関してはパワーMOSFETが最良の選択です。そこで、ロジックレベルが24V +および6A +で、R DSonが低く、スイッチング速度が速いPおよびNチャネルパワーMOSFETを購入します。他に考慮すべきことはありますか? Hブリッジの設計に進みましょう。私のMCUは5Vで動作するため、PチャネルMOSFETをオフにすると問題が発生します。Vgsを完全にオフにするには12V +にする必要があるためです。NPNトランジスタを使用してPチャネルFETを駆動することにより、多くのWebサイトがこの問題を解決していることがわかります。これは機能するはずですが、BJTの低速スイッチング速度が高速スイッチングFETを支配します。 それでは、この設計のように、NチャンネルFETを使用してPチャンネルFETを駆動してみませんか? これは悪いか間違った設計ですか?表示されない問題はありますか? また、これらのFETに組み込まれた逆ダイオードは、モーターの誘導負荷を停止する(または逆にする)ことによって生じるノイズを処理するのに十分ですか?または、回路を保護するために実際のフライバックダイオードが必要ですか? 回路図を説明するには: Q3およびQ6は、ローサイドNチャネルトランジスタです。 Q1とQ4はハイサイドPチャネルトランジスタ、Q2とQ5はそれらのPチャネルを駆動する(電圧をGNDにプルダウンする)Nチャネルトランジスタです。 R2とR4は、Pチャネルをオフに保つためのプルアップ抵抗です。 R1とR3はMCUを保護するための電流リミッターです(MOSFETに必要なのかどうかは、あまり電流を流さないためわかりません!) PWM 1と2は5V MCUから来ています。 V ccは12V

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