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

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

7
Arduinoの暗号化ライブラリ
Arduinoを使用してキーパッドを読み取り、キーパッドのPIN入力時に電気ストライクを開きます。このスケッチでは、PROMをEEPromに保存するために、ある種の軽量の暗号化を使用したいと思いました。そのようなライブラリを知っている人はいますか?TwoFishを使用することで可能になると聞いています。


2
PIC12F675 GP4が機能しない
プロジェクトにPIC12F675を使用していますが、1つの点を除いてすべて正常に動作します。GP4はデジタルIOとして機能しません。設定とコードをよく見てきましたが、何も見つかりませんでした。 構成: #pragma config FOSC = INTRCCLK #pragma config WDTE = OFF #pragma config PWRTE = OFF #pragma config MCLRE = OFF #pragma config BOREN = ON #pragma config CP = OFF #pragma config CPD = OFF コード: #include <xc.h> #include <math.h> #include "config.h" #define _XTAL_FREQ 4000000 void delay(unsigned int …
9 pic  c  embedded  programming  audio  oscillator  spark  dc-dc-converter  boost  charge-pump  eagle  analog  battery-charging  failure  humidity  hard-drive  power-supply  battery-charging  charger  solar-energy  solar-charge-controller  pcb  eagle  arduino  voltage  power-supply  usb  charger  power-delivery  resistors  led-strip  series  usb  bootloader  transceiver  digital-logic  integrated-circuit  ram  transistors  led  raspberry-pi  driver  altium  usb  transceiver  piezoelectricity  adc  psoc  arduino  analog  pwm  raspberry-pi  converter  transformer  switch-mode-power-supply  power-electronics  dc-dc-converter  phase-shift  analog  comparator  phototransistor  safety  grounding  current  circuit-protection  rcd  batteries  current  battery-operated  power-consumption  power-electronics  bridge-rectifier  full-bridge  ethernet  resistance  mosfet  ltspice  mosfet-driver  ftdi  synchronous  fifo  microcontroller  avr  atmega  atmega328p  verilog  error  modelsim  power-supply  solar-cell  usb-pd  i2c  uart 

6
組み込みCの観点からの静的キーワードの概念
static volatile unsigned char PORTB @ 0x06; これは、PICマイクロコントローラーヘッダーファイルのコード行です。@オペレータは、アドレスの内部PORTB値を格納するために使用される0x06PORTBを表すPICコントローラ内部のレジスタです。この時点までに、私は明確な考えを持っています。 この行は、ヘッダーファイル(.h)内でグローバル変数として宣言されています。したがって、私がC言語について知ったことから、「静的グローバル変数」は他のファイルからは見えません-または、単純に、静的グローバル変数/関数は現在のファイルの外では使用できません。 次に、このキーワードをPORTBメインのソースファイルや手動で作成した他の多くのヘッダーファイルに表示するにはどうすればよいですか? メインのソースファイルでは、ヘッダーファイルのみを追加しました#include pic.h。これは私の質問と関係がありますか?

5
超低消費電力デバイスの消費電力を測定する方法は?
これは半年か2年で古いニュースかもしれませんが、今日の手段では、私はμA(uA)とnAの範囲の電流さえ引き込む電子プロトタイプと設計について言及しています。 atmを使用しているSAMD21などの一部の最近のMCUは、常にオンの125nAのみを消費する超低電力内部32kHz RCオシレーターなどの内部クロックで武装しており、マイクロコントローラー全体がSTANDBYモードで消費できるのは6.2μAのみです。ライブRTCで。 これらのタイプの静止電流および電力消費レベルでは、マルチメーターやオシロスコープなどのベンチ測定デバイスの内部機構の最小の制限により、測定全体にかなりの誤差が追加されるか、別のような状況でフラットアウトの間違った値が測定される可能性があります分解能を小数点以下6桁から8桁に変更するとリレーが作動し、マルチメータの精度が向上します。 そのようなアプリケーションの全体的な静止電流/消費電力を測定する最も正確な方法は何ですか? 更新: 回答の1つで述べたように、低電流を測定することは困難ですが非常に可能ですが、統合された電流消費量について結論を出すと、すべての電力消費の現実的な数値を考え出すことが、私が考えていた以上のものになります。 私は、広範囲の電流-周波数コンバーターなどのいくつかのソリューションにぶつかりましたが、このアプリケーションノートの広範囲は最大200uAに制限されており、私の場合、私の無線が送信しているときに最大電流がミリアンペアに上昇し、システム全体がスリープ状態になると、3uAまで低下します。

1
これらのマイクロコントローラーのピン入出力モードとはどういう意味ですか?
stm32f103ret6を購入しました。リファレンスマニュアルを見たとき、いくつかのI / Oモードがあることがわかりました。 入力用:フローティング、プルアップ、プルダウン 出力用:アナログ、オープンドレイン、プッシュプル 私はすでにトライステートとプルアップを備えたAVR MCUで作業しました。プルアップとプルダウンは理解できますが、フローティング、アナログ、オープンドレイン、プッシュプルのモードは理解できません。これらのモードの意味と、いつ使用するのですか?

3
PORTとPINの読み取りの違い
PORTAとPINAの違いは何ですか?ポートとそのピンの関係は何ですか?私は本当に混乱しています!!! PORTの読み取りの例:(読み取りピンはここでは役に立ちません) アセンブリf = 1MHZ ATmega8 1msごとにPORTBを補完する必要があります。(Dutycycle = 50%) LDI R16,$FF OUT DDRB,R16 MAIN: LDI R16,00 DELAY:CPI R16,200 BREQ LOOP INC R16 RJMP DELAY loop:IN R17,PORTB COM R17 OUT PORTB,R17 OUT R17,PORTB RJMP MAIN

2
トランジスタ:なぜ抵抗器が必要なのですか?
起動に少なくとも3Vを必要とするソリッドステートリレーがあり、マイクロコントローラーからの2.3V出力でトグルする必要があります。リレーに電力を供給するために使用できる6V 1A電源もあります。 どういうわけかトランジスタを使用する必要があることと、基本を理解したことはわかっていますが、トランジスタを動作させるために回路に抵抗が必要な理由がわかりません。 だから私の質問は:なぜ抵抗器が必要なのか、どの抵抗器を使用するのか、そしてどのトランジスタが私のニーズに適しているのかをどうやって知るのですか? (ソリッドステートリレーはCrouzet 84 134 900です)

4
誘導性負荷(ACモーター)を制御するとき、トライアックのゲートをいつ点火すればよいですか?
私はオプトトライアック+トライアックの組み合わせを使用して、マイクロコントローラーで230V ACモーターを制御しています。電圧のゼロ交差を検出するために、別のフォトカプラを使用しています。 ACモーターは誘導性負荷であるため、電圧のゼロ交差が電流のゼロ交差の前に来ることを知っています。私の回路は電圧のゼロ交差を感知しますが、電流がゼロになるとトライアックはオフになります。トライアックのゲートを起動して任意のモーター速度(通常の速度の半分としましょう)を取得する必要があるのはいつですか?トライアックがオフになるタイミングを知るにはどうすればよいですか?

5
クロック速度のない、または1.705 MHzを超える発振器がないマイクロコントローラ/ DSPを知っている人はいますか?
シンプルな電子機器を作るつもりです。うまくいけば、いつかは市場に出そうと思うかもしれませんが、思い切って大量生産する前に、まずインターネットで何台か売って、誰かが望んでいるかどうか確かめてみます。 。 ただし、米国で何かを販売するには、FCCテストに合格するか、免除の基準を満たす必要があることがわかります。FCCのテストには$ 10,000以上の費用がかかると聞いていますが、これは今は我慢できません。公式FCCドキュメント(ほとんど見つけるのは不可能でした)をオンラインで検索したところ、回路内に1.705 MHzを超える発振器または周波数がない場合、FCCテストから免除されるという条件の1つに思われます(これが間違っている場合はお知らせください。ドキュメントを見つける前にここで質問しましたが、誰もが9 kHzだと言ってスレッドを閉じました)。 ここに規制へのリンクがあります: Title 47:Telecommunication PART 15—RADIO FREQUENCY DEVICES Subpart B—Unintentional Radiators§15.103 Exempted devices。 以下のデバイスは、§15.5と15.29の一般的な動作条件のみが適用され、この部分に含まれる特定の技術基準およびその他の要件から除外されます。免除されたデバイスのオペレーターは、デバイスが有害な干渉を引き起こしていると委員会またはその代理人が発見した場合、デバイスの操作を停止する必要があります。有害な干渉を引き起こす状態が修正されるまで、操作を再開してはなりません。必須ではありませんが、免除されたデバイスの製造元は、デバイスがこの部分の特定の技術基準を満たすように努力することを強くお勧めします。 ... (h)生成される最高周波数と最高周波数の両方が1.705 MHz未満であり、AC電力線からは動作しない、またはAC電力線に接続されている間は動作するための設備を備えているデジタルデバイス。充電中の操作を可能にする、またはAC電源ラインに間接的に接続し、AC電源ラインに接続されている別のデバイスを介して電力を取得するバッテリーエリミネーター、ACアダプターまたはバッテリー充電器を含む、または使用のための準備をするデジタルデバイス、この免除に該当しないでください。 クロック速度とすべての発振器が1.705 MHz未満のマイクロを知っている人はいますか?1 MHzのクロック速度を持ついくつかのマイクロを見つけましたが、発振器は4 MHzです。500 kHzを超えるクロック速度はおそらく機能しますが、1 MHzが最適です。

3
やや複雑なセンサーネットワーク
私は最近プロジェクトに取り組んでおり、センサーネットワークを複雑にするのに十分に関与した最初のプロジェクトでした。結局のところ、コミュニケーションが全体的なパフォーマンスのボトルネックになっていると思います。経験豊富な人々がこの問題をどのように解決していたのだろうと思います。長い読みですが、なかなか面白いと思いますので、こだわってください。問題は、障害物コースをナビゲートし、ピンポンボールを茶色のボックスターゲットにドロップできる自律型飛行船を設計することでした。ここに行く: センサー 4D Systems uCAM-TTLカメラモジュール-UARTインターフェイス HMC6352デジタルコンパス-I2Cインターフェイス Maxbotix Sonar ez4-1ピンアナログインターフェイス アクチュエーター 2x L293Dモータードライバー(シンプルなホビーモーターに接続)-これらは、6つのモーターを双方向で駆動するために使用されました。速度を変えるためにPWM入力が必要でした。現在、3つのモーターは常に同じこと(上下の動きを制御するモーター)を使用していたため、3つのモーターすべてを制御するためにコントローラーから2つのPWM出力のみが必要でした。横方向の動きを制御する他の3つのモーターはすべて個別の制御(全方向移動)を必要としていたため、コントローラーからはさらに6つのPWM出力が必要でした。 サーボモーター-PWMインターフェース コントローラー 後で明らかになる理由により、2倍のATmega328Pを使用することになりました。プログラミングにはArduino Unoを使用しましたが(ISPにアクセスできませんでした)、カスタムPCBを製造したので、飛行船に不要な重量が加わるため、Arduinoボードを使用する必要がありませんでした。私たちがATmega328Pを選んだ理由については、私はarduino環境に非常に精通しており、それによってコード開発がはるかに迅速かつ簡単になったと思います。 通信と処理 2x Xbee Basic 2x ATmega328P C ++とopenCVを実行しているデスクトップコンピューター カメラモジュールからわかるように、私たちのプロジェクトのほとんどはコンピュータービジョンに依存していました。飛行船はそれほどの重量しか運ぶことができず、マイクロコントローラーにコンピュータービジョンを実装するのは快適でした。そのため、XBeeを使用して画像データをデスクトップコンピューターに中継しました。サーバー側では、画像データを受け取り、openCVを使用して画像と図を処理しました。今度はサーバー側も高さ情報(ソナーから)とコンパス情報を知る必要がありました。 最初のしわは、いくつかの理由でマイクロコントローラーでカメラを制御できなかったことでした。主な問題は、uPの内部メモリがフレーム全体の格納を処理できないことでした。巧妙なコーディングによってこれを回避する方法があったかもしれませんが、この質問の目的のために、それが不可能であったとしましょう。この問題を解決するために、サーバー側でXBeeトランシーバーを介してカメラコマンドを送信し、XBeeレシーバー(飛行船に搭載)の出力をカメラの入力に配線しました。 次のしわは、I2CインターフェースがPWMピンの1つを使用しているため(それらをくそ...)、すべてのモーターを制御するのに十分なPWMが1つのATmega328Pにないということでした。そのため、2番目のものを使用することにしました。高さ制御は横方向の移動制御とは完全に独立しているため、コードは実際には並列処理に完全に対応しています(したがって、2マイクロはおそらくPWMコントローラーに接続されたものよりも優れていました)。したがって、U1は2つのPWM出力(アップ/ダウン)とソナーの読み取りを担当していました。U2は、コンパスの読み取り、6つのPWM出力(横方向モーター)の制御、およびソナーの読み取りを担当しました。U2は、XBeeを介してサーバーからコマンドを受信することも担当していました。 それが最初のコミュニケーションの問題につながりました。XBee DOUTラインは、マイクロコントローラーとカメラの両方に接続されていました。もちろん、プロトコルを設計して、マイクロコマンドがカメラコマンドを無視し、カメラコマンドがマイクロコマンドを無視するようにしたので、問題はありませんでした。ただし、カメラがマイクロコマンドを無視すると、出力ラインにNAKデータが返されます。このコマンドはマイクロを対象としているため、XBeeへのカメラ出力をオフにする必要があります。これを解決するために、カメラとXBee(最初のFET)の間、およびU2とXBee(2番目のFET)の間にあるマイクロ制御2 FETを作成しました。したがって、カメラがサーバーに情報を返そうとしたとき、最初のFETは「オン」で、2番目のFETは「オフ」でした。 したがって、これがどのように機能するかを理解するために、いくつかの例を示します。 サーバーは画像を要求します-PIC_REQUESTはXBeeを通過し、U2とカメラに到着します。U2はそれを無視し、カメラは画像データを送り返します。 サーバーは画像の処理を終了し、モーターデータを送信して飛行船に右折するように指示しています-MOTOR_ANGLE(70)はXBeeを通り抜け、U2とカメラに到着します。U2はマイクロコマンドとして認識し、カメラのFETをオフにします(ただし、カメラはすでにNAKで応答していますか?次に、U2はモーターのPWM出力を変更することでコマンドに応答します。次に、カメラのFETをオンに戻します(画像データが最も重要だったため、これがデフォルト設定でした)。 サーバーは、デフォルトのホバー高さが50インチではなく90インチである必要がある障害物コースのポイントに到達したことを認識しています。SET_HEIGHTはXBeeを通過し、例2と同じことが起こります。U2はSET_HEIGHTコマンドを認識し、U1で割り込みをトリガーします。U1は高さ制御ループから出て、U2からのシリアルデータの受信を待ちます。そうです、より多くのシリアルデータ。この時点でU2のFETはオン(そしてカメラのFETはオフ)なので、サーバーはU2がU1にも送信している高さを受け取ります。これは確認のためでした。U1は、height2HoverAtの内部変数をリセットします。U2はFETをオフにし、カメラFETをオンに戻します。 私は間違いなくかなりの量の情報を省きましたが、いくつかの複雑さを理解するにはそれで十分だと思います。結局のところ、私たちの問題は単にすべてを同期させることでした。バッファにデータが残っていることがありますが、3バイトしかありません(すべてのコマンドは6バイトシーケンスでした)。時々、カメラとの接続を失い、それを再同期する必要があります。 だから私の質問は:これらのすべてのコンポーネント間の通信をより信頼性の高い/堅牢な/単純な/より良いものにするために、どのようなテクニックを提案するでしょうか? たとえば、オンボードXBeeアウトとカメラの間に遅延回路を追加して、マイクロがNAKのマイクロコマンドに応答する前にカメラのトークラインをオフにする機会があったことを知っています。そのような他のアイデアはありますか? おかげで、これには多くの編集が必要になると確信していますので、しばらくお待ちください。 Edit1:マイクロの1つを介してカメラのUARTデータを接続することは、私たちには不可能であるように思われました。カメラデータには、生のビットマップ、またはJPEGの2つのオプションがありました。生のビットマップの場合、カメラはデータをできるだけ早く送信します。ATmega328Pはシリアルバッファ用に128バイトしかありません(技術的にはこれは設定可能ですが、どうすればいいのかわかりません)、私たちはそれをバッファから取り出してXBeeに十分速く到達できるとは思いませんでした。これにより、JPEGメソッドは各パッケージを送信し、コントローラーがACKを受信するまで待機します(小さなハンドシェークプロトコル)。これが最も速いのは115200ボーでした。何らかの理由で、XBeeを介して大量のデータを確実に送信できる最速は57600ボーでした(これは、自動再送機能を許可するためにノードとネットワークのペアリングを行った後でも同じです)。マイクロ用にネットワークに追加のストップ(カメラからXBeeへのカメラではなく、カメラからマイクロへのXBee)を追加すると、画像の転送に時間がかかりすぎます。モーター制御アルゴリズムを機能させるには、画像に特定のリフレッシュレートが必要でした。


2
SPIスレーブは全二重モードで送信を開始できますか?
私の知る限り、SPIスレーブのSPI送信は以下のように機能します。 マスターはSSピンを使用してスレーブを選択します マスターとスレーブが同時にデータを互いに送信する マスターはクロックとデータ送信を同時に開始します(書き込み操作の前にクロックはありません) スレーブは送信するデータがまだある場合でも、マスターは必要に応じていつでも(書き込み操作とクロック生成を停止することにより)送信を停止します。 スレーブがマスターの許可なしにデータを送信できるようにするSPIスレーブ構成はありますか? 大声で考えているだけです。スレーブが1つだけあり、マスターなどから連続クロックが提供されていると仮定します。 SPIのスタートストップビットがないため、想定されたステートメントがtrueであっても、マスターとスレーブはバイト同期を失いません(つまり、ビットストリームを受信しません)。 このドキュメントの次のセクションを読んだので、私はそのような質問をしています。 2.2 SPIの例 添付のSPIの例は、同期モードでのUSARTの使用を示しています。USART2がマスターであるのに対し、USART1はスレーブとして構成されています。以下のトランザクションが行われます。 マスターからスレーブへのデータ送信。 スレーブからマスターへのデータ送信。 マスターからスレーブへのデータ送信とスレーブからマスターへのデータ送信を同時に行います。 このドキュメントではSPIの例を示していますが、USARTデバイスを使用して例を実現しています。そして私は、USARTスレーブがマスターの許可なしに送信を開始できることを理解しています。 ドキュメントで参照されているソースコードが見つかりませんでした。

1
3.3 V電源のMCU状態インジケーターとして青緑色のLEDを使用できますか?
現代のエレクトロニクス業界は、InGaNテクノロジーなどに基づいて、素敵で派手な色(「トゥルーグリーン」、「シアン」、「ブルー」)を備えた非常に効率的なLEDを開発しています。これらのLEDの一部は、3.2〜4.2 Vの順方向電圧を持つものとして指定されています。ここでは、そのようなLED、Kingbright WP7104PR51C / A、または表面実装APT3216VBCの例を示します。 しかし、通常のMCUは3.3 V電源から給電され、GPIO出力は通常3.1〜3.2 Vであり、これらのLEDを駆動するのにかろうじて十分です。これらのLEDを一部の信号ステータスまたは電源レールステータスのインジケータとして使用するにはどうすればよいですか?ここに直列抵抗R1が必要ですか? はいの場合、その値をどのように選択しますか? 免責事項:この「質問と回答」は、元の質問「このLED回路に1オームの抵抗を追加することに意味はありますか?」、ロジック状態インジケータとしてのLEDの特定の使用例に対処します。

4
オプトカプラーに接続するためのデジタルマイクロコントローラー信号のバッファリング
回路の残りの部分から(たとえば、マイクロコントローラーからの)デジタル+ 5VDC制御信号を絶縁するためにオプトカプラーを使用するプロジェクトで頻繁に作業しています。ただし、これらはデバイス内部のLEDを照らすことによって機能するため、マイクロコントローラーのピンに数十ミリアンペアの負荷がかかる可能性があります。この制御信号を追加ステージでバッファリングして、マイクロコントローラが高インピーダンスを効果的に認識し、必要な電流を削減するためのベストプラクティスについてアドバイスを探していますか? 単純に頭のてっぺんから離れて、私はうまくいくかもしれないいくつかのことを考えることができます: 1)オペアンプをユニティゲインバッファーアンプとして使用するだけです。 2)専用のコンパレータチップを使用して、入力信号を+ 2.5VDCなどと比較します。 3)信号増幅器の一種としてMOSFETを使用します。 しかし、少し読んでみると、今まで使ったことのないたくさんのチップに出くわしましたが、この種類のチップ用に設計されているようです。例えば: 差動ラインドライバー(MC3487) 差動ラインレシーバー(DC90C032) ライントランシーバー(SN65MLVD040) バッファゲートとドライバ(SN74LS07、SN74ABT126) 私はこれらのどれも実際に経験がなく、利用できるものの量に少し圧倒されています!したがって、これらのデバイスの違い、およびこの場合に適している/適切でないデバイスの違いを知るのを手伝ってくれる人はいますか?私が説明することを達成するための最良/標準的な方法はありますか? 編集: 最大x30の出力まで切り替えられる可能性があるため、マイクロコントローラーの読み込みについてまったく気にしたくないので、DIOピンに直接接続することは考慮しません。なので、ロジックバッファICにしようかなと思います。各入力にSN74LVC1G125「3ステート出力のシングルバスバッファゲート」を使用してみて、その動作を確認します。

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