ESP32をチップで使う方法

# 概要

https://ja.aliexpress.com/item/32864722159.html?spm=a2g0s.9042311.0.0.dcd44c4dJlOWv6

で買ったチップESP32を使う方法を説明します。

参考にしたサイト

https://blog.goediy.com/?p=897

ピンアサイン

https://ht-deko.com/arduino/esp-wroom-32.html

# 書き込み装置について
PNPトランジスタが手持ちになかったので、NANDロジックIC：74HC00APで代用しました。
ただ、74HCシリーズのTTLタイプは3.3Vで動作しないので、3.3Vで動作するか確認してください。
74HC00APは動作します。

回路図
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/624d6428-26c6-e2b0-c804-882933c5b3a0.png)

ENのプルアップは、HIGHでないとesp32が動作しないため、書き込みが終わった後に必要になります。
書き込み装置にはいりませんが、チップ単体で動作させる場合、ENをプルアップする必要があります。
単純なシリアル-USB変換では書き込めず、DTR,RTS端子が必要になります。

作った書き込み装置
![IMG_20220119_000151190.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/ca3ce645-7325-35d1-9ce9-b1b92d7ca1bb.jpeg)

# チップ単体での動作
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/92de4202-5d95-6265-bafe-d6fc14870b50.png)

これだけで動きます。
書き込み装置をつなげるためには
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/d741b40c-428d-0851-1c83-5e9ee89b92a3.png)
こんな感じで4本さらに引き出せば行けます。

3.3VはNJM2845DL1-33 というレギュレータで作って渡しました。

https://akizukidenshi.com/catalog/g/gI-11299/

作ったもの
![IMG_20220119_000259977.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/56c66e26-0f2e-a64e-2351-00c27e113894.jpeg)

直接線をつなぐのは疲れますが、ピン数が少なければ現実的ではあります。


# (追記2023/3/19)書き込みが不安定な原因
esp32でドローンを作ろうと本体を作ったが、書き込みが不安定になってしまった。

```
esptool.py v3.1
Serial port COM15
Connecting....
Chip is ESP32-D0WD-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: b8:d6:1a:5f:17:28
Uploading stub...
Running stub...
Stub running...
Configuring flash size...

A fatal error occurred: Invalid head of packet (0x46)
A fatal error occurred: Invalid head of packet (0x46)
```
書き込み中に止まる。
原因追求をしようと思う。

```
esptool.py v3.1
Serial port COM15
Connecting........_
Chip is ESP32-D0WD-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: b8:d6:1a:5f:17:28
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00001000 to 0x00005fff...
Flash will be erased from 0x00010000 to 0x000cefff...
Flash will be erased from 0x00008000 to 0x00008fff...
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 508.9 kbit/s)...
Hash of data verified.
Compressed 17968 bytes to 12323...
Writing at 0x00001000... (100 %)
Wrote 17968 bytes (12323 compressed) at 0x00001000 in 1.4 seconds (effective 101.0 kbit/s)...
Hash of data verified.
Compressed 781840 bytes to 513946...
Writing at 0x00010000... (3 %)
Writing at 0x0001b2c2... (6 %)
Writing at 0x00027b8d... (9 %)
Writing at 0x0003002a... (12 %)
Writing at 0x00035af5... (15 %)
Writing at 0x0003b3d0... (18 %)
Writing at 0x000408be... (21 %)
Writing at 0x000460c6... (25 %)
Writing at 0x0004b671... (28 %)
Writing at 0x000508eb... (31 %)
Writing at 0x00055b83... (34 %)
Writing at 0x0005ab5e... (37 %)
Writing at 0x00060364... (40 %)
Writing at 0x00065bad... (43 %)
Writing at 0x0006b07a... (46 %)
Writing at 0x0007060c... (50 %)
Writing at 0x00075961... (53 %)

A fatal error occurred: Failed to write compressed data to flash after seq 16 (result was C100)
A fatal error occurred: Failed to write compressed data to flash after seq 16 (result was C100)
```
途中で書き込みエラーが起こる。UPLOAD速度を上げるとすぐ止まる。
たまに書き込みが正常に終わる。10%ぐらいの確率


## 電源系？
3.3V 電源電圧ピン直下を計測すると
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/a019a866-9060-fce4-3f66-11b92ac4802a.png)
±0.2Vほどの電圧降下が見られる。

安定化電源側の電圧降下は殆どないドローンまでの給電線20cmの抵抗
3.3Vレギュレータを本体に乗せてみるか？
0.3gのレギュレータ

https://akizukidenshi.com/catalog/g/gI-11299/

を付けてみた

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/405484/4c9baf77-3b03-d92c-ec4e-ed17a777ab87.png)

あまりかわらず。

電源ラインのエラーではない？

わからなくなってきた。5回に一回はちゃんと書ける＋OTAを使えばいいので、この問題はこれ以上追いかけないことにする