ESP32 를 제외하고, ESP8266 계열에 대해 작업해본 포스트들은 다음과 같습니다.
* Hardware | ESP-12 사용기
- https://chocoball.tistory.com/entry/Hardware-ESP12-using
* Hardware | ESP-07 사용기
- https://chocoball.tistory.com/entry/Hardware-ESP07-using
* Hardware | ESP-03 사용기
- https://chocoball.tistory.com/entry/Hardware-ESP03-using
* Hardware | ESP-01 or ESP8266 사용기 - 5
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-5
* Hardware | ESP-01 or ESP8266 사용기 - 4
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-4
* Hardware | ESP-01 or ESP8266 사용기 - 3
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-3
* Hardware | ESP-01 or ESP8266 사용기 - 2
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-2
* Hardware | ESP-01 or ESP8266 사용기 - 1
- https://chocoball.tistory.com/entry/Hardware-ESP01-or-ESP8266-using-1
많이도 해봤네요.
오늘은 ESP-12 와 동일한 ESP8266MOD 에 CH340G USB controller 를 달아놓은 WeMos D1 Mini 를 직장 동료로 부터 공수받은 것으로 놀아 보겠습니다.
1. WeMos D1 mini
아래 사진은 정식 WeMos D1 mini 와 Pro 제품 사진 입니다.
Pro 버전은 세라믹 안테나가 구비되어 있고, USB controller 로 Sillicon 회사의 칩셋으로 보입니다. 메모리도 외부로 노출되어 있네요.
Pro 버전은 한쪽 면에 부품이 모두 실장되어 있어서 제품 개발 시, 간섭을 최소화 할 수 있는 구조 입니다.
제가 공여받은 WeMos D1 mini 는 정품과 차이는 없는 것 같고, AI-Thinker 로고가 아닌 ESPRESSIF 로고 입니다.
밑면 실장 부분에 CH340G USB controller 가 얹어져 있습니다.
2. USB problem
PC 에 USB port 를 연결하면, CH340 이 인식 되었다가 안되었다가를 반복합니다. 계속 연결해 놓으면 PC 가 다운되더군요. CH340 chip 자체가 문제되는 경우는 드물 듯 하여, 물리적인 고장을 의심해 봅니다.
눈에 보이지는 않지만, 일단 USB port 가 문제라고 생각하고 교체해 줍니다. Arduino DIY 를 많이 했던지라 USB port 부품은 여러가지 가지고 있었습니다.
USB port 교체 후, 확인해 보니, 문제 현상은 해결되지 않았습니다. 혹시 몰라 breakout board 전체를 열풍기로 구우면서 접점이나 short 부분을 해결해 보려 합니다.
만, 열풍기 가열 시 보드를 살짝 건들어 버려, SMD 부품들이 서로 엉켜버렸습니다. 망했습니다.
3. ESP-12
어떻게 할까... 하다가 드는 생각. ESP8266 와 안테나 PCB 부분만 분리하여 ESP-12 로 재탄생 시키기로 합니다. 마침, pin header 용 breakout board 들을 가지고 있었네요.
문제 없이 분리 됩니다.
ESP-12 로 만든 후, serial 연결을 해 보았으나, 정상 동작하지 않았습니다. 부팅 되다가 문제를 발생 하더군요.
boot mode: (3,7) 및 로드를 하다가 멈춰 버립니다. CH340G 와 연동되게 만든 firmware 라서 그러는 것일까요? 이 상태로는 ESP-12 로 사용할 수가 없어, 검증된 firmware 를 입혀 봅니다.
Firmware update 는, 이미 아래 포스트에서 검증했던 방식 입니다.
* Hardware | ESP-12 사용기
- https://chocoball.tistory.com/entry/Hardware-ESP12-using
4. Flash Memory
Firmware 는 잘 올라가나, 동작이 안되는 것은 Flash Memory 자체 문제 가능성이 있어서, 쉴드 철판 뚜껑을 따 봅니다. 이쪽 계열 철판은 처음 따 보네요.
실장되어 있는 Flash Memory 는, XMC 라는 회사의 XM25QH32BHIG 라는 32Mbit 의 Flash Memory 였습니다.
* XM25QH32BHIG
- Memory Type : Non-Volatile
- Memory Format : FLASH
- Memory Size : 32Mb (256 Bytes x 16384 pages)
- Memory Interface : SPI - Dual/Quad I/O, QPI
- Voltage - Supply : 2.7V ~ 3.6V
- XM25QH32B-XMC.pdf
일전에 구입해 놨던, Winbond W25Q32BVSIG 로 바꿔 줍니다. W25Q32BVSIG 의 성능은 다음과 같습니다. Dual/Quad SPI 속도까지 커버 가능합니다.
Chip 교환은 꽤 도전적인 작업이었는데, 열풍기가 있으니 쉽게 됩니다.
뚜껑도 열풍기로 지져서 잘 안착하도록 하면 됩니다. 마지막으로 breakout board 에 얹히면 끝. 이식이 이걸로 완료 됩니다.
5. Firmware update
Firmware update 관련한 pin 연결 및 작업 과정은 아래 글에서 작업한 내용과 동일합니다.
* Hardware | ESP-12 사용기
- https://chocoball.tistory.com/entry/Hardware-ESP12-using
사용된 Firmware 파일 및 instruction 정보 입니다.
* ESP8266_NONOS_SDK-version_3.0.4.zip
- https://drive.google.com/file/d/1gj-fIO1WWM0TzHFxYQ2usKrv6RKd88gi/view?usp=sharing
* ESP8266 - AT Instruction Set
- https://drive.google.com/file/d/1U81KlG9cqrstqZIRjBmCyHaUE2qJSCLt/view?usp=sharing
아래 사지는 처음 XMC Flash Memory 였을 때의 firmware update 정보 입니다. vender 정보가 N/A 로 미확인 회사로 표시됩니다.
예전에 성공한 방법과 동일하게 해도 동작하지 않아, Flash Memory 자체를 바꿔 봤었죠.
Firmware update 시에도 특별히 에러 없이 잘 입혀 졌습니다.
혹시 몰라, Flash Memory 모듈의 정보도 확인해 봅니다.
Arduino IDE > File > Examples > ESP8266 > CheckFlashConfig
특별히 문제 없어 보이는군요. 하나만 제외하구요. 바로 Flash ide mode: DOUT 이라는 부분입니다.
6. SPI MODE
Quad 모드는 안되고, 이 보드는 Dual 모드만 가능한 것인가? DIO 로 설정하고 firmware update 를 진행해 봅니다.
OMG. 문제 없이 booting 에 성공 했습니다. 동일한 ESP-12 용이라 하더라도, 중국 제조사들에 따라 지원되는 spec. 이 달라지는 군요.
아래는 32Mbit-C1 놓고 firmware 를 입히면, 메모리를 1024KB+1024KB 로 크게 사용합니다.
32Mbit 로 놓고 firmware 를 입이면, 메모리를 512KB+512KB 로 좁게 사용합니다.
FIN
비록 WeMos D1 mini 로 출발했으나, ESP-12 로 소생시킨 후기 였습니다. 제품을 공여해 주신 직장 동료이신 채** 님께 이 자리를 빌어 감사의 말씀 드립니다.
댓글
댓글 쓰기