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

GPIOは、汎用入出力の頭字語です。この用語は通常、ソフトウェアの制御下で入力と出力の間で変更される可能性のあるマイクロコントローラー(または他のデバイス)のピンに適用されます。指定された単一の機能に制限されるのではなく、アプリケーションで定義された目的に使用できます。

3
プッシュプル/オープンドレイン; プルアップ/プルダウン
ARM Cortexチップのデータシート、特にGPIOの章を読んでいます。最終的に、SRAMへの読み取り/書き込みアクセスのために「代替機能」モードで使用するために、さまざまなGPIOピンを構成したいと思います。 :すべてのGPIOが利用できるレジスタの、私は2つを理解していないGPIO_PUPDRとGPIO_OTYPE、それぞれ「プルアップ/プルダウンレジスタ」と「出力タイプレジスタ」です。 以下のためにGPIO_PUPDR私は3つの選択肢があります: プルアップまたはプルダウンなし プルアップ 引き下げる 以下のためにGPIO_0TYPE私は2つの選択肢があります。 出力プッシュプル 出力オープンドレイン すべての異なる構成の違いは何ですか?また、SRAM通信に最適な構成はどれですか? 私が取り組んでいるボードのドキュメントはここから入手できます(SRAM回路図については24ページを参照)。ARMチップのリファレンスマニュアルは、こちらから入手できます(GPIOレジスタについては、145および146ページを参照してください)。

2
STM32 GPIO設定について
STM32 Standard Peripheralライブラリでは、GPIOを構成する必要があります。 しかし、3つの機能がありますが、それらの設定方法がわかりません。 GPIO_InitStructure.GPIO_Speed GPIO_InitStructure.GPIO_OType GPIO_InitStructure.GPIO_PuPd でGPIO_Speed、から選択する4つの設定があります GPIO_Speed_2MHz /*!< Low speed */ GPIO_Speed_25MHz /*!< Medium speed */ GPIO_Speed_50MHz /*!< Fast speed */ GPIO_Speed_100MHz どの速度から選択するかを知るにはどうすればよいですか?高速または低速を使用する利点または欠点はありますか?(例:消費電力?) でGPIO_OType、から選択する2つの設定があります GPIO_OType_PP // Push pull GPIO_OType_OD // Open drain どちらを選択するかを知る方法は?そして、オープンドレインとプッシュプルとは何ですか? でGPIO_PuPd、から選択する3つの設定があります GPIO_PuPd_NOPULL // No pull GPIO_PuPd_UP // Pull up GPIO_PuPd_DOWN // Pull down この設定はプッシュプルの初期設定に関連していると思います。

6
シリアルプロトコルの区切り/同期技術
非同期シリアル通信は今日でも電子機器に広く普及しているため、私たちの多くはそのような質問に時々出くわしたと思います。電子デバイスDと、PCシリアル回線(RS-232または同様のもの)で接続され、継続的に情報を交換する必要があるコンピューターを検討してください。すなわち、PCそれぞれコマンドフレームを送信しており、それぞれステータスレポート/テレメトリーフレームで応答しています(レポートはリクエストへの応答として、または独立して送信できます-ここでは実際には関係ありません)。通信フレームには、任意のバイナリデータを含めることができます。通信フレームが固定長パケットであると仮定します。X msDY ms 問題: プロトコルは継続的であるため、受信側は同期を失ったり、進行中の送信フレームの途中で「結合」したりする可能性があるため、フレームの開始(SOF)がどこにあるかはわかりません。Aデータは、SOFに対する相対的な位置に基づいて異なる意味を持ち、受信したデータは破損する可能性があり、永久に破損する可能性があります。 必要なソリューション 短い回復時間でSOFを検出するための信頼性の高い区切り/同期スキーム(つまり、再同期に1フレーム以上かかることはありません)。 私が知っている(そして使用している)既存のテクニック: 1)ヘッダー/チェックサム -事前定義されたバイト値としてのSOF。フレームの最後のチェックサム。 長所:シンプル。 短所:信頼できません。不明な回復時間。 2)バイトスタッフィング: 長所:信頼性が高く高速な回復で、どのハードウェアでも使用可能 短所:固定サイズのフレームベースの通信には適していません 3)9番目のビットマーキング -各バイトに追加ビットを追加します。SOFでマークされたSOF 1とデータバイトには次のマークが付けられ0ます。 長所:信頼性が高く、高速な回復 短所:ハードウェアサポートが必要です。ほとんどのPCハードウェアおよびソフトウェアでは直接サポートされていません。 4)8番目のビットマーキング -上記の一種のエミュレーション。9番目ではなく8番目のビットを使用し、各データワードに7ビットのみを残します。 長所:信頼性の高い高速リカバリは、どのハードウェアでも使用できます。 短所:従来の8ビット表現と7ビット表現の間のエンコード/デコードスキームが必要です。やや無駄だ。 5)タイムアウトベース -定義されたアイドル時間の後に来る最初のバイトとしてSOFを想定します。 長所:データオーバーヘッドなし、シンプル。 短所:それほど信頼できません。Windows PCなどのタイミングの悪いシステムではうまく動作しません。潜在的なスループットのオーバーヘッド。 質問: 問題に対処するために存在する他の可能な技術/解決策は何ですか?上記のリストで簡単に回避できる短所を指摘できますか?システムプロトコルをどのように設計しますか(または設計しますか)?
24 serial  communication  protocol  brushless-dc-motor  hall-effect  hdd  scr  flipflop  state-machines  pic  c  uart  gps  arduino  gsm  microcontroller  can  resonance  memory  microprocessor  verilog  modelsim  transistors  relay  voltage-regulator  switch-mode-power-supply  resistance  bluetooth  emc  fcc  microcontroller  atmel  flash  microcontroller  pic  c  stm32  interrupts  freertos  oscilloscope  arduino  esp8266  pcb-assembly  microcontroller  uart  level  arduino  transistors  amplifier  audio  transistors  diodes  spice  ltspice  schmitt-trigger  voltage  digital-logic  microprocessor  clock-speed  overclocking  filter  passive-networks  arduino  mosfet  control  12v  switching  temperature  light  luminous-flux  photometry  circuit-analysis  integrated-circuit  memory  pwm  simulation  behavioral-source  usb  serial  rs232  converter  diy  energia  diodes  7segmentdisplay  keypad  pcb-design  schematics  fuses  fuse-holders  radio  transmitter  power-supply  voltage  multimeter  tools  control  servo  avr  adc  uc3  identification  wire  port  not-gate  dc-motor  microcontroller  c  spi  voltage-regulator  microcontroller  sensor  c  i2c  conversion  microcontroller  low-battery  arduino  resistors  voltage-divider  lipo  pic  microchip  gpio  remappable-pins  peripheral-pin-select  soldering  flux  cleaning  sampling  filter  noise  computers  interference  power-supply  switch-mode-power-supply  efficiency  lm78xx 

1
Arduinoから多数(〜100)のデジタル出力信号を取得する
Arduinoを使用して約100個の独立したLEDを制御できるようにしたいと思います。問題は、Arduinoにはこのために設定できるピンがほとんどないことです。この問題を解決する方法は何でしょうか?Arduinoからのより複雑な信号を分離してLEDを制御できるチップはありますか?それとも別の解決策がありますか?

5
入力または出力MCUピンでのプルアップおよびプルダウン抵抗の使用
プルアップ/ダウン抵抗(内部または外部)はMCUのINPUTピンにのみ必要ですか?対照的に、出力として設定されたMCUピンは駆動を行うため、「レベルを認識します」-別の回路の入力に接続された「フローティング」MCU出力ピンは、MCUピンの状態が理由で意味をなさない高くても低くてもかまいません...この権利はありますか?現在、MCUの起動時または障害時に、この「MCU出力からIC入力」ラインにプルアップ/プルダウンを接続して、一部のICへの入力がフローティングしないようにすることが有益な場合があります。 ここで自分の質問に答えたばかりかもしれません...アプリケーションによっては、プルアップ/ダウン抵抗を入力ピンと出力ピンの両方で使用できますか?

5
BJTはレベルシフターに適していますか?FETはより一般的であるようですが、どのように比較しますか?
私は趣味で、FETトランジスタのデータシート/チュートリアルを一度も通過していません。私はBJTの男です。FETとBJT、およびそれぞれのタイプに最も適した特定のアプリケーションを扱った議論は見つかりませんでした。私のプロジェクトは、非常に単純なスイッチングおよび論理ゲートスタイルの回路です。そのため、プロジェクトの要件を満たすためにBJTを取得した後は、機能しているものにとどまりました。私は午後、EE-SEでこれを研究し、たくさんの良いものを見つけました。レベルシフターには、FETがより一般的な選択肢のように思えました。いくつかの一般的なアプリケーションでのFETとBJTに伴う長所/短所とトレードオフについて、「ダミー」の説明を誰かが提供できることを望んでいました。 プロジェクトにこのレベルシフターを選択しました。3.3VGPIOを備えたESP8266を使用して5Vリレーを駆動したいです。リレーのコイル電流を測定すると、約100mAになります。S8050と最小限の部品を使用したいのですが、要件は高くありません。ESP8266を使用してPIRセンサーのピンを読み取り、トグルスイッチを読み取ってリレーを使用してライトを制御しています。上記の回路は良い選択ですか?独自の回路を設計しましたが、使用しません。それでも、誰かが私のデザインの分析を親切に提供してくれれば、それは私の理解に役立ちます。これは、いくつかの勘、推測、そしておそらく少しのブードゥー教に基づいていました。 簡単に言えば、ベース電流(GPIO出力3.3V-Q1の0.7Vベース)/ R2の1Kオーム= 2.6mAは、分圧器R1 / R3の電流(5である)の影響をあまり受けないと推論しました。 /(100K + 100K)= 25uA。R1、R2、R3、およびU1のベースのジャンクションがどのように機能するかわかりません。U1のベースが分圧器の2.5Vを0.7Vに引き下げると推測しましたが、GPIOがソースする2.6mAにどのように影響するかはわかりませんでした。それが私がリンクした回路で行った理由です。

3
組み込みプロセッサで最初に値を設定してからGPIOの方向を設定する必要があるのはなぜですか?
ファームウェアエンジニアとしてフルタイムの仕事をしています。最近、GPIO構成を確認し、必要に応じて設定を変更するタスクを与えられました。間違って設定されたピンがいくつか見つかったので、当然のことながらそれらを再設定しましたが、間違った順序で行ったと言われました。私が話していることは次のとおりです。 変更前:GPIO1.direction = INPUT; 後:GPIO1.direction = OUTPUT; GPIO1.value = 0; ただし、コードのレビュー中に、初期化の順序を次のように変更する必要があると言われました。 GPIO1.value = 0; GPIO1.direction = OUTPUT; つまり、最初に値を設定してから、ピンの方向を設定します。入力用と出力用に2つのレジスタを使用するため、これが最新のプロセッサ上で必要であると言われましたが、古いプロセッサは1つのレジスタしか使用しないため、操作の順序は重要ではありません。 (注:Modern = ARM Cortex M3以降、Old = Intel 8051) 私は職場でより良い説明を求めましたが、良い答えを得ることができませんでした。それが私がここで尋ねることにした理由です。 だからここに私の質問があります: 新しいプロセッサで初期化の順序が重要なのはなぜですか? 古いプロセッサで初期化の順序が重要でないのはなぜですか? 最新のプロセッサでは、2つのレジスタについて何を語っていますか? 古いプロセッサでどのレジスタについて話しているのですか? 誰かが図のようなものを提供できるなら、それはさらに良いでしょう。
16 embedded  gpio 

4
4mA最大GPIOピンから20mA LEDを駆動する方法
LEDを駆動したいGPIOを備えたICがあります。 デバイスはバッテリーで動作するため、LEDがオフになっている間は、電力使用量を低く抑える(多分ゼロにする)ことを優先してください。 GPIOは、オンにすると3.3Vを供給し、オフにすると0.0Vの票を供給します。 また、最大4mAの制限があります。 LEDの順方向電流は20mAで、望ましい順方向電圧は2.0Vです。 LEDがオンになると、低キロヘルツの範囲で(PWMを使用して)点滅する可能性が高くなります。 いろいろ調べてみると、これが私が必要とするタイプの回路かもしれないと思う。 質問1:私は正しい軌道に乗っていることさえありますか。 質問2:アイテム(5)(トランジスタまたはMosfet)に使用する正しいコンポーネントは何ですか?(ローカルのFrys、RadioShack、Onlineで)見つけるにはどうすればよいですか? 質問3:項目(5)の選択は、抵抗器項目(3)のオーム値に影響しますか?3.0V電源と2.0V LEDの通常のオームの法則とは別に。 質問4:抵抗器アイテム(2)のオーム値(必要な場合)
16 led  transistors  gpio 

1
オープンドレインとオープンコレクター
Open DrainとOpen Collectorの出力に実際的な違いはありますか、それとも用語は互換的に使用されていますか?それらが実際に異なる場合、それぞれが有利なコンテキストは何ですか?私の勘では、彼らは機能的に同等であるということですが、オープンコレクタがBJT技術で実装されている間、オープンドレインは、FET技術で実装されています。


2
USB to GPIOモジュール
私は、サーバーがGPIO信号の形式でマイクロコントローラーに送信する必要があるWebページのボタンをユーザーに押すことを含むプロジェクトに取り組んでいます。サーバーで使用できるポートはUSBのみです。 私はいくつかの考えがありました: USBからGPIOへのインターフェースとしてArduinoボードを使用するだけです。 http://numato.com/8-channel-usb-gpio-moduleなどの専用モジュールを使用します(これは、Googleのクイック検索で見つかった唯一のものです。 この質問で説明されているようなものを使用してください。USBからドライブLED この分野での経験がある人なら誰でも推薦できますか?
15 usb  gpio 

3
3.3 V GPIOの12 V入力、TVSプルダウンまたはショットキープルアップ?
最大30 V DCの恒久的な入力を3.3 V入力のSTM32Fに受け入れなければならない独自のPLCを構築しています。 切り替えられた入力は8〜30 Vで動作する必要がありますが、入力電圧が12 Vまたは24 Vに固定されるのは90%です。入力はリミットスイッチなどのスイッチのみであるため、入力が8 V未満、またはセンサーなどからの入力でも、スイッチが移動する最速は1秒ごとであるため、速度については心配していません。マイクロコントローラが保護されていることを確認するだけです。 類似のタイプの複数の製品/プロジェクトで使用できる汎用回路が必要なので、コンポーネント数、コスト、PCBスペースを最小限にする必要があるため、フォトカプラを使用したくありません。 2人の電子技術者が次のことを推奨していますが、どの方法が最適かはわかりません。 上部のものを使用するか、下部のものを使用する必要がありますか?なんで?

1
LDRをRaspberry PiのGPIOピンに接続する
RDRをRaspberry PiのGPIOピンに接続したいのですが、Raspberry Piにはアナログ-デジタルコンバーターがないため、GPIOでHIGH信号(3.3v)を通知することを知りたいLDRの抵抗が低い場合(200オーム未満)、LDRの抵抗が高い場合(たとえば2k以上)LOW信号。ドキュメントによると、Raspberry PiのGPIOピンから安全に引き出せる最大電流は50mAです。必要な抵抗を計算するにはどうすればよいですか、プルアップ/ダウン抵抗も追加する必要がありますか?プロセッサを焼かずに安全な方法でそれを行う方法について明確な考えがありません。 LDRが非常に低い抵抗状態にあるときに、常に抵抗があることを確認するために、回路に抵抗を接続する必要があると思います。 更新:それはうまくいきました、私は回路を構築しました、そしてそれはこの投稿に示されています、助けてくれてありがとう。

4
GPIOとトランジスタを使用したリモートコントロールプッシュボタンの短絡
Raspberry PiのGPIOピンを使用して、ガレージのドアをリモートで制御しようとしています。リレーを駆動する代わりに、リモートのプッシュボタンを短くする方がはるかに簡単です。これはどうすればいいですか?保護ダイオードが必要ですか?必要な場合、どこに行くべきですか? 3.3V GPIOピンがリモートグランドとは異なるグランド(Raspberry Piグラウンド)を基準にしていることは重要ですか? また、使用するトランジスタと抵抗値に関するガイダンスをいただければ幸いです。 更新; OPによるコメントからの詳細:チェックした後、あなたは正しいです、プッシュボタンは単に回路を9Vバッテリーのリターンパスに短絡します。私の主な関心事は、リモートのすべてがフローティングしている間、GNDを基準とする3.3Vです。

3
GPIOアナログとデジタルについて
私はGPIOを理解しようと試みており、さまざまなブログ投稿をたくさん読んでいます。私はそれを理解するのに近づいていると思いますが、それでもいくつかのことに苦労しています。 私はGPIOへのいくつかの参照がバイナリ値でのみ機能することを確認しましたが、他の投稿では、値は0〜255であると述べています。これがアナログGPIOとデジタルGPIOの違いだと思います。あれは正しいですか?1つのGPIOピンがアナログとデジタルの両方として機能することは可能ですか?
11 gpio 

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