• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ESP32の”Any GPIO Pins”の意味)

ESP32の”Any GPIO Pins”の意味

このQ&Aのポイント
  • ESP32のデータシートを読んでいるのですが、このデータシートの35ページ目のPINに関する表のUARTの項目を見ていた時、”Pins”の部分に”Any GPIO Pins”という表示が出てくるのですが、これはどういう意味なのでしょうか?
  • 例えば、ESP32の現在のPIN配置を自由に変えることも可能ということでしょうか?
  • どうぞ、ご教示の程よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

このチップは使ったことはありませんが。 この手のマイクロチップは、ほぼすべて、CPU側でGPIOを 制御しているため、 ”Any GPIO Pins” これは、直訳すると「任意のGPIOピン」=つまり好きなのを使える。 という意味ととらえてOKです。 また、ひとつのピンに複数の機能がついていることもあり、 設定をして余ったものなどが、通常はGPIOとして使われます。 この辺は、このチップじゃなくても、 PICやAVRやH8系など、多くのチップで共通の考え方なので。 覚えても損はないかと。 なので、小さいチップも大きいチップも機能的にはほとんど同じことがあり、 違いはこのピンが外に出てるか?だけ。。の違いということも 割とあります。なので、実験などをしたいときには、 同じシリーズでのピン数が多い方で、開発をして、 最適なピン数を導いた後に小型基盤でやる方が、 楽ですよ!。ではでは

techhouse
質問者

お礼

回答頂きありがとうございます。助かります。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ESP32開発基板のUART1,2信号

    ESP32 Dev Board PINMAPを見ていて思ったのですが、 https://scrapbox.io/hada/ESP32_DEVKIT_%E3%83%94%E3%83%B3%E9%85%8D%E7%BD%AE UART0の信号はPINMAP表では TX0(GPIO1) RX0(GPIO3) にアサインと表示されていますが、 UART1、UART2のアサインが表示されていません。 このESP32開発基板ではUART1、UART2の信号は使用できないということでしょうか? 下記のESP32のデータシートを読んでみたところ、 https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf UARTの信号のPINは”Any GPIO Pins”と表記されているのですが、 何かプログラミングでUART1,UART2の信号を好きなGPIOのPINに割り当てることがかのうということでしょうか? その方法など、ご教示の程よろしくお願い致します。

  • 電子回路 コンパレーター LM311N

    周期14μs,peak to peak(high5V,low-5V)の正弦波のような波形をコンパレーターで0Vを境目にして矩形派にしようと思ったのですがうまくいかなく,困っているので良い意見があればお聞きしたいです. この入力波形はAM変調を復調後,簡単なトランジスタ回路で増幅したもので,オシロスコープで波形を見ていると一瞬左右にぶれている時があり,この影響かとも思い,その事についてもぶれないように検討はしています. 何か思い当たる意見などがございましたらぜひ聞かせていただきたいです. またコンパレーターの各ピンは, 1pin ground(ground) 2pin ground(input +) 3pin 上記の波形を入力(input -) 4pin -12V(V-) 5pin 何もつなげず(balance) 6pin 何もつなげず(balance/strobe) 7pin output 8pin +12V(V+) のように使用しました. ()内はデータシートの記入内容 データシート http://pdf1.alldatasheet.com/datasheet-pdf/view/22752/STMICROELECTRONICS/LM311N.html

  • H8SマイコンでUARTを115.2kに設定したい

    現在、H8S2368マイコンとwifi通信モジュールであるESP-WROOM-02をUART通信で接続するためにプログラムを作成しています。 H8S2368のSCI0のUARTでESP-WROOM-02とをつなぎました。 とりあえずSCI0から”AT”というコマンドを出したのですが、wifiモジュールから”OK”という回答が戻ってきません。 原因を調べてみると、H8S2368のSCI0は38.4kbpsで出力していて、ESP-WROOM-02は初期通信速度が115.2kで速度があっていないことが判りました。 とりあえずH8S2368のSCI0を115.2k変更したいのですが、どのようにすれば115.2kbpsに変更できるのか教えていただきますよう、よろしくお願い致します。 現在のSCI0のUARTに関する設置はこちらです。 (hwsetup.c) SCI0.SCR.BYTE = 0x00; SCI0.SMR.BYTE = 0x00; SCI0.BRR = 15; for(i=0;i<30000L;i++); /* Async, 8-data, odd-parity, 1-stop, N-multi, CLK */ SCI0.SCR.BIT.TE = 1; /* Transmit Enable */ SCI0.SCR.BIT.RE = 0; /* Receive Enable */ SCI0.SCR.BIT.RIE = 1; /* Receive Interrupt */ SCI0.SCR.BIT.TIE = 0; /* Transmit-data-empty Interrupt */ SCI0.SCR.BIT.TEIE = 0; /* Transmit End Interrupt */ SCI0.SSR.BIT.TDRE = 0; /* Clear TDR Empty flag */ H8S2368のデータシートを見ていると、 SCI0.BRR = 15; このBBRレジスタに代入する値をもう少し下げていけば115.2kHzに近づいていくのかなぁ、と感じるのですが、正確な計算方法など教えていただけると助かります。

  • 簡易のTCPサーバのフリーソフト

    現在、ESP-WROOM-02というwifiモジュール基板とPCとをUART通信で接続しました。 jumpwire.io http://ja.docs.jumpwire.io/ESP8266Reference/ATCommands/ 現在事務所内で使用しているサーバーソフトが起動しているPCのIPアドレスへwifiモジュールを使用して通信を行おうと思い、上記のサイトを参考に、 ”透過送信モード”というモードにATコマンドを送信して設定してサーバーと接続を試みているのですが、 AT+CIPSTART="TCP","192.168.1.158",5000 このコマンドで192.168.1.158:5000で動作させているサーバと接続コマンドを送って”CONNECT”と応答が返ってくるのですが、、5秒程度経過すると”CLOSED”という応答が来てしまいます。 現在この自動でCLOSEDされてしまう問題を調べているのですが、 私は”このサーバ特有の仕様”と現在考えています。 この問題の切り分けとして、別のサーバソフトで接続してみても同様に自動切断されてしまうのかを調べたいと思っているのですが、 このような時に便利な簡易サーバのフリーソフトツールなど、ご教示頂きますよう、よろしくお願い致します。 (透過送信モード時の送信・応答内容) ready WIFI CONNECTED WIFI GOT IP (PC送信)AT (ESP応答)OK (PC送信)AT+CWMODE=3 (ESP応答)OK (PC送信)AT+CWJAP="Buffalo-G-884C","h3htu788pwh3u" (ESP応答)WIFI DISCONNECT (ESP応答)WIFI CONNECTED (ESP応答)WIFI GOT IP (ESP応答)OK (PC送信)AT+CIFSR (ESP応答)+CIFSR:APIP,"192.168.4.1" (ESP応答)+CIFSR:APMAC,"5e:cf:7f:09:c8:76" (ESP応答)+CIFSR:STAIP,"192.168.1.90" (ESP応答)+CIFSR:STAMAC,"5c:cf:7f:09:c8:76" (ESP応答)OK (PC送信)AT+CIPSTART="TCP","192.168.1.158",5000 (ESP応答)CONNECT (ESP応答)OK (ESP応答)CLOSED (PC送信)AT+CIPSTART="TCP","192.168.1.158",5000 (ESP応答)CONNECT (ESP応答)OK (PC送信)fefe (ESP応答)ERROR (ESP応答)CLOSED (PC送信)AT+CIPMODE=1 (ESP応答)OK

  • 74HC595から出力が出ない

    ICの置き換えを依頼されました。 以前の物は、ルネサスの16BIT LED DRIVER(シフトレジスタとラッチ付き)の 物でM66310を使っていた。すでにM66310は、生産中止品でした。その後継の R8A661600を見っけたのですが、こちらも入手困難であったため、東芝の TC74HC595APを2個と、トランジスタアレー(ソースドライバ)使う回路を製作 しました。 先日、部品を組み立て、お客さんに渡したところ、従来の基板と今回製作 した基板を入れ替えてもらったのですが、同じ入力信号(データとシフト クロックとラッチ信号を入れても、LEDが一つも点灯しないと言われ困っております。 ・74HC595とM66310(R8A661600)の入力は、データシートを見る限り  どちらも正論理 ・74HC595の出力イネーブルは、0Vに入れている。 ・74HC595のリセットは、+5Vを入れている。 何度も、回路図とデータシートを見比べたのですが納得がいきません 何か見落としていることなどがあれば教えてもらえないでしょうか。 参考) ルネサスのR8A661600DD/SPのデータシート http://documentation.renesas.com/jpn/products/assp/rjj03f0221_r8a66160ds.pdf#search='R8A66160' 東芝のTC74HC595データシート http://www.semicon.toshiba.co.jp/docs/datasheet/ja/LogicIC/TC74HC595AF_TC74HC595AP_ja_datasheet_071001.pdf

  • PIC12F675、HC-SR04のプログラム

    PIC12F675にプログラムをMPLABX IPEで書き込んで、超音波センサ HC-SR04の距離が5cm以下の時にブザーが鳴る(出力が5Vになる)ようにしたいです。 以下のプログラムで出力は、距離に関わらず5Vか0Vで一定になっています。 プログラムに間違いがあれば、教えていただけないでしょうか。 #include <xc.h> #include <stdio.h> //12F675 #include <stdlib.h> #pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = ON // Power-Up Timer Enable bit (PWRT enabled) #pragma config MCLRE = OFF // GP3/MCLR pin function select (GP3/MCLR pin function is digital I/O, MCLR internally tied to VDD) #pragma config BOREN = OFF // Brown-out Detect Enable bit (BOD disabled) #pragma config CP = OFF // Code Protection bit (Program Memory code protection is disabled) #pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled) #define _XTAL_FREQ 32000000 #define TX_UART_SIZE 3 #define SONIC_TRIG GPIO5 #define SONIC_ECHO GPIO4 #define SONIC_TEMP GPIO2 #define SONIC_BUZZ GPIO1 #define IO_OFF 0 #define IO_ON 1 #define TIME_OFF -1 #define TIME_UP 0 #define TIME_START_H 0xD8 #define TIME_START_L 0xF0 #define TIME_LED_CNT_MAX 5 #define TIME_LED_CNT2_MAX 15 unsigned char cnt10ms; char TimerLed1; char TimerLed2; int main(int argc, char** argv) { long echo_time; long dist; OSCCAL = 0b00110000 ; // 内部クロック8MHz ANSEL = 0x00 ; // AN未使用、デジタルI/Oに割当てる CMCON = 0x07; // コンパレータ未使用 TRISIO = 0b00011100 ; // RA2,3,4を入力にし、他は出力に割当てる GPIO = 0b00000000 ; // 出力ピンの初期化(全てLOWにする) T1CON = 0b01110000 ; // ゲート有効、Hiでカウント、単一パルス、T1Gピン TMR1ON = 1; // タイマー1開始 while(1) { // タイマ1のカウンタ準備 TMR1 = 0; // カウンタの初期化TMR1 = 0; // トリガ送信 SONIC_TRIG = IO_ON; __delay_us( 10 ); SONIC_TRIG = IO_OFF; // エコー信号のON待ち while( SONIC_ECHO == IO_OFF ) { } // エコー信号のOFF待ち while( SONIC_ECHO == IO_ON ) { } // 超音波の往復時間を取得 echo_time = TMR1; // 往復時間から片道の時間にする echo_time /= 2; // パルス時間から距離(cm)に変更 dist = echo_time * 34 / 1000; if( dist <= 5 ) //距離5cm以下でブザー出力 { (SONIC_BUZZ = 1); } else { (SONIC_BUZZ = 0); } __delay_ms( 1000 ); } return (EXIT_SUCCESS); }

  • 超音波センサについて教えてください

    超音波センサについてなのですが、パラレルポートを使って制御しようとしているのですがなかなかうまくいきません。 浅草ギ研さんからでているPING)))を使っているのですが、サンプルプログラムがPICを使用してのもので、 トリガをうってやれば、350マイクロ秒ホールドオフした後、音波を出して帰ってきた時の時間で距離を出すというものです。 プログラム全文 #include <12F675.h> #fuses INTRC_IO,NOWDT,NOPROTECT,NOMCLR,BROWNOUT //内部4MHzクロック指定 #use delay(clock=4000000) //delayを使えるようにする #use rs232(baud=9600,xmit=PIN_A5,rcv=PIN_A3,parity=N,bits=8) //シリアル設定 //(上の行説明)GP5を送信、GP3を受信に設定。 //12F675の場合は初期値がADCモードになっているので、デジタル入力を使う場合は事前にADCなどを切る必要がある。 //16F84などのPICはこの処理は不要。(初期値がデジタルIOだったり、ADCが無かったりする。) //コンパレータとADCを切るために特殊レジスタを操作します。とりあえずアドレスを割り当て。(アドレスはデータシートに書いてある) #byte CMCON=0x19 #byte GPIO=0x05 #byte ANSEL=0x9F void main(void){  set_tris_a(0x00); output_low(PIN_A0); //GP0をLowに(とりあえず。) //コンパレータなどを切って、デジタルIOピンにする処理 GPIO=0x00; //以下3行はデジタルIOに切り替える手順 CMCON=0x07; ANSEL=0x00; //タイマ0を設定(内部クロック使用の場合は4クロックで1カウントなので注意) setup_timer_0(RTCC_INTERNAL | RTCC_DIV_128); delay_ms(1000); //PINGが正常に立ち上がるまで待つ printf("START\r\n"); while(1){ set_tris_a(0x00); //GP0を出力に //トリガパルス出力 output_high(PIN_A0); //トリガパルス立ち上げ delay_us(5); output_low(PIN_A0); //トリガパルス立ち下げ //GP0を入力に切り替え set_tris_a(0x01); //GP0を入力に //パルス幅測定 while (!(input(PIN_A0))); //パルス立ち上がりまで待つ set_timer0(0); //タイマーをリセット(カウント開始) while (input(PIN_A0)); //パルスの立下りまで待つ printf("Dist=%u\r\n\r\n",get_timer0()); //結果出力 delay_ms(500); //0.5mSウェイト } } こんな感じです。 全体的にわからないんですが、 特に while (!(input(PIN_A0))); //パルス立ち上がりまで待つ set_timer0(0); //タイマーをリセット(カウント開始) while (input(PIN_A0)); //パルスの立下りまで待つ この部分のlinuxのC言語への書き換え方がわからなくて苦労しています。 どなたか教えてもらえないでしょうか? OSはVine linuxです。言語はC言語です。

  • LTC2435のサンプリング周波数

    LTC2435のサンプリング周波数が見つかりません。 ------------------------- Linear Technology社のA/DコンバータICに「LTC2435」というのがあります。 分解能はデータシート (http://cds.linear.com/docs/Japanese%20Datasheet/j24351fa.pdf) では量子化ビット数20Bitです。 サンプリング周波数の表示はどれを見たらよいのでしょうか? 10ページに記載のFo(14pin)はノッチ周波数設定用ですし、サンプリング周波数の表示が探せなくて困っています。 このタイプにお詳しい方、ご教示お願いいたします。

  • 理想のオーディオ選びについて

    一軒家、防音室、Win11PC内部に保存した、J-POP、FUSION、ROCKなどの煩い音楽を好みます。ハイレゾやロスレス音源をPCオーディオとして再生したのです。TuneBrowserという高音質なASIO、WASAPI対応ソフトを使用しています。理想のシステムはどれでしょうか?無責任な回答や質問とは違う回答はお控えください。 ①Fiio K9 Pro ESS(ESS ES9038PROを搭載)+Marantz PM8006アナログアンプ+B&W 606 AEかワンランクサイズが小さいB&W 607 AE。 (FiiO K9 Pro ESSはUSBDAC兼用ヘッドホンアンプだが、販売店の回答によると、ヘッドホン回路を高音質にしている。RCAアンバランス出力だと音質はヘッドホン端子よりも下がる可能性があるとの回答で、悩んでいます。) https://www.mouser.jp/datasheet/2/1082/ES9038PRO_Datasheet_v3_7-2933558.pdf ESS3098PRO DACデータシート ②S.M.S.L SU-9n(ESS ES9038PROを搭載した単体DAC)+Marantz PM8006アナログアンプ+B&W 606S AEかB&W 607S AE。 (SMSLのSU-9nはヘッドホン端子が無い単体DAC。音質は優れているそうな。SU-9nのカタログスペック通りノイズレス、低歪みであれば、問題無いが、ノイズが多く、歪率も多ければ問題。中華オーディオを信頼できるかどうかが壁。) https://www.mouser.jp/datasheet/2/1082/ES9038PRO_Datasheet_v3_7-2933558.pdf ESS ES3090PRO データシート。 ③DENON PMA-1700NE(USBDAC付プリメインアンプ)+B&W 606S AEかB&W 607 AE。 (DENONはTIのバーブラウンのDSD1794から1795だと思う) https://www.ti.com/product/ja-jp/DSD1794A#params DENONのUSBDAC部分はPCオーディオに特化している。ノイズ対策やアシンクロナスモード、44.1kHz、48kHzの独立系クロックを搭載。 またUSBDAC部分も含めた、チューニングをDENONが施しており、 ノイズ、や音の歪みについても、解消し、はずれの無い音に仕上げていると思われるので安心感がある。ESSのDACではないが仕方が無い。) ④Marantz HD-DAC1(USBDAC付ヘッドホンアンプ。DACチップはシーラスロジックのCS4398。生産完了在庫限り)+Marantz PM8006アナログプリメインアンプ+B&W 606S AEもしくはB&W 607S AE。 https://www.phileweb.com/news/audio/201409/03/14853.html HD-DAC1はMarantzの有名なサウンドマネージャーの力作。ただし、ヘッドホンアンプに力を入れていることは間違いない。RCAアナログアウトもMarantzなので音質に妥協している事は無いと思われるが、不安。またシーラスロジックの音はESSと比べると解像度が落ちる。 マランツトーンを楽しめるシステム。 どの選択が相応しいのでしょうか?全体的な音作り、安心感が得られるのは①と④のD&Mホールディングスの機器で固めることでしょうが、解像度はESSのES9038PROが一番高いです。 アドバイスください。これ以外の機種は考えておりません。長文となりましたが、質問を良くお読みになってご回答頂けたら幸いです。

  • デュアルモニタの異なる解像度の設定

    Windows XP Pro SP3 Intel Core2Duo E8500 nVIDIA GeForce 8800GT の環境で IO DATA LCD-AD222X 22型(1680×1050)と、BenQ Fp71G 17型(1280x1024)でデュアルモニタにしたいと思っています。 現在はIO DATAのモニタはDVIで接続して、BenQのモニタはDVI-VGA変換ケーブル使って接続しています。 各モニタ別に解像度の設定をしたいと思っています。 調べてみると"互いに独立して設定(Dualview)"にすると各モニタごとに異なった解像度を設定できるみたいですが、何故かその項目がなくて困ってます。 かといって、"1つの大きな横型デスクトップ(水平スパン"だとIO DATAのモニタの解像度が低くなってしまい文字が滲んでしまいます。 やはり片方のモニタがVGA接続だと不可能なのでしょうか? 何かアドバイスを頂けると幸いです。 nVIDIA GeForce 8800GT: ​http://www.nvidia.co.jp/object/product_geforce_8800_gt_jp.html​ IO DATA LCD-AD222X: ​http://www.iodata.jp/product/lcd/wide/lcd-ad222x/​ BenQ Fp71G: ​http://www.benq.co.jp/products/LCD/?product=126&page=specificat...​ ELECOM DVIケーブル(アナログ接続専用) D-Sub15pin(mini)オス-DVII-I29pinオス 1.5m CAC-DV15I: ​http://www.amazon.co.jp/gp/product/B00008B30B/ref=ox_ya_oh_product