ラベル ESP32 の投稿を表示しています。 すべての投稿を表示
ラベル ESP32 の投稿を表示しています。 すべての投稿を表示

2024年4月24日水曜日

ESP32が届きました......

中華通販からESP32が届きました.¥546

中華ですが技適マークがついてるんですね.技適マークがついてりゃ技適なのでしょう.

↓左からBlackpill/Bluepill/ESP32です.ESP32を一目見て「でかい!」と声を出してしまいました.クワガタとカブトムシぐらいの違いです.縦寸法は3者同じですけど、WIFI moduleが幅広いため巨大になっています.
いつ火入れするかは未定です.

もうひとつの話題.
↓4chオシロ基板が届きました.紫色のPCBは吐きそうなくらいキモいです.もう紫はやめます.
4ch オシロ基板で使うためにSTM32F103基板を調達したのですが、CPUが中華パチモンらしく、STLINKがCPUを認識せず、それに加えてRTOSが動かないというカタワモンで使えやしない.

かしこ

2024年4月20日土曜日

ESP WROOM-02(ESP8266) I2SとDMA(4)

なぜか持ってたWROOM-02を動かしています.
ESP8266にはI2Sが載っているので、DACを接続してみようかと思って調べています.

I2Sを使うからには、サンプリング周波数に同期してdataを出してやらなくちゃいけません.いちいちI2S statusをpollingしていたら他の仕事が出来なくなってしまって困ります.なのでこんな願望があります.
 1)DMAとI2Sを組み合わせてhardwareの自動でdata出力してもらいたい
 2)DMAがbufferの半分ぐらいまで消化したら割り込みしてもらいたい

開発toolはArduinoIDEを使っています.
ArduinoIDEでESP8266を使うために「Generic ESP8266 module library」をimportします.
同libraryのI2S exampleを見るとI2S.hというのをincludeしていて、main loop()の中で、
 I2S.write(data);
を永久にやってます.CPUを喰うやり方でなんだかなぁです.ちょっと使えん.

I2S.hに宣言されている関数を調べましたら、使えそうなのが2つありました.
 I2S.write(&buffer, size);
これはbuffer一括で引き渡します.中でDMAを起動しています.→上記1を実現か?
 onTransmit(void(*)(void))
これはwrite用のcallback関数を登録します.→上記2を実現か?

期待できそうなので試してみます.

↓それじゃぁI2S portにDACをつけるかと、I2Sのpin assignを調べたらなんと、丸印のpinが別件で使用中です.IO15,IO2はreprogramming用、RX0はUART用、やる気失せたぜ.

ESP32が中華通販から届くのを待ちましょうかね?
ESP32には8bit DACが載っているらしい.

かしこ

2024年4月4日木曜日

ESP WROOM-02(ESP8266) APに繋いだよ(3)

なぜか持ってたWROOM-02を動かしています.

前回はArduinoIDEから焼いてみました.

今回はWIFI APに接続するのと、WIFI APを踏み台にしてgoogle.comの応答を得ます.

WROOM-02は802.11 b/g/nに対応しています.(2.4GHz)
ここで使ったAPはAterm WG1200HS2です.WG1200HS2は802.11 b/g/a/n/ac対応なのでWROOMから接続できるはずです.

つまり、
 シリアルモニタ<----WROOM---->WG1200HS---->光回線---->google
という接続を試みるわけですね.

↓やってみたらこんな動きをしました.ArduinoIDEのシリアルモニタの表示.
connection wait to hiraAP
connection wait to hiraAP
connection wait to hiraAP
connection wait to hiraAP
connection wait to hiraAP
Connected to wifi AP    APに繋がるまでに6秒かかります
192.168.11.114   ローカルIP
server connected  google.comに繋がった


↓以下はarduinoIDEのソースです.
#include <ESP8266WiFi.h>   WROOM-02を使うための.h

↓ここのssid,pass,serverはただの文字列でアバウトなもんです.serverをIP Addressにする例をよく見かけますが、わたしの環境ではダメでした.dns使えと?
const char ssid[] = "hiraAP";
const char pass[] = "passwd";
const char server[] = "google.com";

WiFiClient client;
int status = WL_IDLE_STATUS;

void setup() {
  Serial.begin( 74880 );  WROOM-02起動時の半端なbaudrateに合わせた

  WiFi.mode(WIFI_STA);  なくてもよいかも
  WiFi.begin(ssid, pass);  AP接続
  while (WiFi.status() != WL_CONNECTED) { 接続待ち
    Serial.print("connection wait to ");
    Serial.println(ssid);
    delay(1000);  1秒待ち(わたしの環境では6loopかかる)
  }
  Serial.println("Connected to wifi AP");
  Serial.println(WiFi.localIP());     WROOMのIPアドレス
  if (client.connect(server, 80)) {  google.comへ接続
    Serial.println("server connected");  繋いだだけでおしまい
  }
}

void loop() {}


というわけで、WROOM-02の無線機能の動作を確認できました.最初はうまく動かなくて、AP接続待ちをwait loopにしたら繋がりました.認証に6秒もかかってるのはなんでだろ?

でもまだ何の役にも立ちません.ロガーぐらいやってくれよなWROOM君.

かしこ

2024年4月2日火曜日

ESP WROOM-02(ESP8266) うごいたよ(Lチカ)(2)

さきほど部品箱から発掘したWROOM-02というESP8266の電波moduleを動かしました.
LEDチカですけど.

秋月で買ったものです.

moduleに外付けた回路はこれです.
IO15,IO2,IO0がBOOT制御をするピン.
IO0をGNDに落とすと、UART経由の焼きモードになる.
IO0をHIGHに吊ると、FLASH起動になる.
IO0をGNDにしてresetすると、UART焼きをwaitしつづける.

ENピンはHIGHにしないとpower saveになってしまうみたいよ.

RST SWをつけるかどうかは好き好きですが、焼く時にresetが必要でしょう.

moduleの電源は3.3Vです.
FT232内蔵のLDOで足りるかなと思ったのですが、ダメみたい.
moduleの最大消費が170mAあるとdatasheetに書いてありますが、FT232の3.3Vはmax 50mAなので足りません.残念です.

IDEはArduinoIDEを使えますが、ArduinoIDEにES8266用の設定をしないといけません.
 http://arduino.esp8266.com/stable/package_esp8266com_index.json
のところをやる必要があります.
その後にBoardを「generic ESP8266 module」にしてやればあとは通常の使い方です.

LEDチカのsourceです.GPIO04にLEDをつけます.
#define LED 4

void setup() {
  pinMode(LED, OUTPUT);
  digitalWrite(LED, HIGH);

  Serial.begin( 115200 );
  Serial.print( "\nWROOM-02 LED blink\n");
}

void loop() {
  digitalWrite(LED, LOW);
  delay(500);
  digitalWrite(LED, HIGH);
  delay(500);
}

このmoduleは起動時にSerialに何らかのバイナリを撃つようで、文字化けして読めません.
でもバイナリ化けを通過すると”WROOM-02 LED blink”の文字が表示されるようになります.
バイナリではなくて、74880bpsという風変わりなbaud rateで起動messageを出すのが真相でした.

ArduinoIDEから焼くときのmessageはこんなです.
esptool.py v3.0
Serial port COM5
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 18:fe:34:ee:84:85
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0340
Compressed 270256 bytes to 198778...
Writing at 0x00000000... (7 %)
Writing at 0x00004000... (15 %)
Writing at 0x00008000... (23 %)
Writing at 0x0000c000... (30 %)
Writing at 0x00010000... (38 %)
Writing at 0x00014000... (46 %)
Writing at 0x00018000... (53 %)
Writing at 0x0001c000... (61 %)
Writing at 0x00020000... (69 %)
Writing at 0x00024000... (76 %)
Writing at 0x00028000... (84 %)
Writing at 0x0002c000... (92 %)
Writing at 0x00030000... (100 %)
Wrote 270256 bytes (198778 compressed) at 0x00000000 in 17.6 seconds (effective 122.5 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

WiFiで接続する方法はまだわかりません.
なにか進展があったらレポします.

かしこ

2024年3月29日金曜日

ESP32いじってもよかですか(1)

おはようございます.PCとマイコンの接続はいつもUSBなヒラサカです.

根が保守的なので新しい物には決して手を触れない.さんざ雑誌とかで目にして世の中に溢れかえった頃になってようやく触ってみる.そんなわたくしですが、そろそろESP32を使ってみましょうか?

CPUはATMEGA328よりも高性能なんでしょ?

しかし基板の実態がさっぱりわからんー

たとえば秋月で売られています.
これは¥1600で、CP2102というUSB COMが載ってるみたいよ.
これは¥800で、安いなりにUSB COM無し.焼くのどうするんだろ? 横に出たpinheaderにFT232を自分でつけるのかな?

Aliexpressに目を転ずると、、、
末尾UとDがあって、アンテナの有無のようです.買うの間違えないようにしないとあぶねー
というか、外付けアンテナは日本だと技適が通らないとかないのかな?
Aliでのお値段は送料込みで¥700~800ぐらい.あでもどのみち技適がねー

IDEはどうなってるのかしら?
ArduinoIDEでやれるらしい.
ESP32をIDEに追加したら、ESP32 boardが山のように選択肢に出てくるようになったけど、どれを使ったらいいのかさっぱり...

つぎに、CPUはどんな素性なのか?

CPU: Xtensa® 32-bit LX6 microprocessors
RAM: 520 KB of on-chip SRAM
RAMは多けりゃ多いほどいい.信号処理にはRAMだよRAM.
Arduino-Unoなどを使っていると「こいつパワー負けしてるぞ、うわぁぁ」と思ってしまうことがありますけど、このCPU+RAMならばけっこうイケイケでしょう.

ADC: 12-bit up to 18 channels
DAC: 2 × 8-bit DAC
よろしい.けれどmoduleのpinに出てるのだろうか?

シリアルIF: 4×SPI、2×I2S、2×I2C.3×UART
これは充実.よかよか.あとDMAがこいつらの面倒を見てくれるか次第で使い勝手は大きく左右される.32bit CPUならDMAも載ってるだろうけど.
Arduino UnoのシリアルはDMAできないでしょ.あれは仕事の邪魔なんだよなぁ.

Timer: 4× 64bit GP-Timer
タイマはたくさん載ってるのが嬉しいが、4つは最低限というところか.

他のIF: Cript、CAN、RTC、Touch Sensor、infrared など
てんこ盛りだけど使わないと思います.

外部ピン
IFのピンアサインは、GPIOに柔軟に割り当てできるみたいです.

ESP32-C3という小型versionもあるらしく、このmoduleが秋月で¥310税込みという価格はこれは安い.STM32を使うのがバカバカしくなってしまう.

開発社は誰なのか?
Espressif Systemsという会社で、中華様です.
やはりこのハイコスパは中華様でしたか.

動かしたらレポします.

かしこ