рдИрдПрд╕рдкреА 32 рдкрд░ рдбреАрдУрдПрдо рд╡реЙрдЪред рднрд╛рдЧ 1

рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП ESP32 рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдХреБрдЫ рдЫреЛрдЯрд╛ рдФрд░ рджреЗрд╢реА рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореИрдВрдиреЗ рдПрдХ рдШрдбрд╝реА рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ ESP32-PICO-D4 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ ред рдЪреВрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 4Mb рдлреНрд▓реИрд╢ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ 16Mb рдлреНрд▓реИрд╢ рдФрд░ 8Mb SRAM рддрдХ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЬреЛ рднреА рдШрдбрд╝реА рдЖрдк рдкрд╣рд▓реЗ рдХрдпрд╛рдордд рдХреЛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╕рдм рдкреВрд░реА рднрд░рд╛рдИ рдкрд░ рдерд╛!



рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рд╕реБрдзрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  1. рдмреИрдЯрд░реА рд╕реВрдЪрдХ
  2. Schottky рдбрд╛рдпреЛрдб рдкрд░ рдЪрд╛рд░реНрдЬрд┐рдВрдЧ рдмреИрд░рд┐рдпрд░ рд╕рд░реНрдХрд┐рдЯ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛
  3. рдПрдВрдЯреАрдирд╛ ESP32 рд╕реЗ рдПрдХ рдФрд░ рдкрд░рдд рдкрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ

рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдирд╣реАрдВ!



рдкреНрд░рджрд░реНрд╢рди рджреНрд╡рд╛рд░рд╛




рдореИрдВрдиреЗ 240x240 рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреЗ рд╕рд╛рде ST7789 рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдПрдХ рд░рдВрдЧ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдпрд╣ рдХрд╛рдлреА рдХреЙрдореНрдкреИрдХреНрдЯ рдФрд░ рд╕рд╕реНрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рдкреЛрд░реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд┐рдЯрд┐рд▓рд╡реАрдЬреАрдПрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЛрд░реНрдЯ рд╣реИ , рд▓реЗрдХрд┐рди рдЗрд╕ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдХреЛрдИ рд╡реНрд╣реАрд▓рдмреНрд░реЛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЦрд░реАрджрд╛ рдФрд░ рдЪрд┐рдкрдХрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЕрдиреБрднрд╡ рд╣реИ? рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред

рдореИрдВрдиреЗ ST7789 рдкрд░ рдПрдХ рдмреЛрд░реНрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╢реБрд░реВ рд╣реБрдЖред



LittlevGL esp32


рдкреНрд░реЛрдЧреНрд░рд╛рдо рдФрд░ рдбрд┐рдмрдЧ рднрд░ рдХрд░


рдореИрдВрдиреЗ CP2102 USB-TO-UART BRIDGE рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реИ рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ рдФрд░ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рднрд╛рдЧреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╡рд┐рдХрд▓реНрдк 2: рдПрдХ 4.7 ╬╝F рд╕рдВрдзрд╛рд░рд┐рддреНрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдСрди-рдЪрд┐рдк рд░реЗрдЧреБрд▓реЗрдЯрд░ рд╕реЗ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╢рдХреНрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк REGIN рдФрд░ VBUS рдХреЛ USB 5V рдкрд╛рд╡рд░ рд╕рдкреНрд▓рд╛рдИ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрдирдкреБрдЯ рдкрд░ рдХреЗрд╡рд▓ рдПрдХ рд╢рдВрдЯ рдХреИрдкреЗрд╕рд┐рдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдЪрд┐рдк рдкрд░ рд╡реАрдбреАрдбреА рдмрд╛рд╣рд░ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИ! рдореИрдВрдиреЗ рдПрдХ рдЧрд▓рддреА рдХреА рдФрд░ рдЗрд╕реЗ 3.3V рдмрд┐рдЬрд▓реА рдЖрдкреВрд░реНрддрд┐ рд╕рд░реНрдХрд┐рдЯ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдФрд░ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ 4.65V рдХреНрдпреЛрдВ рд╣реИ?

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд▓рд┐рдВрдХ рдореЗрдВ 3.3V рдкрд╛рд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ CP2102 рдХреЛ рдкрд╛рд╡рд░ рджреЗрдиреЗ рдХреА рдХреЛрдИ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдЬрдм рд╣рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЕрдкрд▓реЛрдб рдпрд╛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ



рдореЛрдбреБрд▓реЛ рдмреИрдЯрд░реА рдЪрд╛рд░реНрдЬрд┐рдВрдЧ


LTC4054 рдкрд░ рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ рдЪрд╛рд░реНрдЬрд┐рдВрдЧ рдХрд░рдВрдЯ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ:



рдкреЛрд╖рдг


рд╕реНрдЯреЗрдмрд▓рд╛рдЗрдЬрд░ HT7833 рдХреЗ рд╕рд╛рде 3.7V рдмреИрдЯрд░реА рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рддред рдЖрдЙрдЯрдкреБрдЯ рд╡рд░реНрддрдорд╛рди 500mAред рдЗрд╕рдореЗрдВ рдПрдХ рдЫреЛрдЯреА ~ 300mV рд╡реЛрд▓реНрдЯреЗрдЬ рдбреНрд░реЙрдк рд╣реИред LD1117-3.3 рдореЗрдВ "рдереЛрдбрд╝рд╛" рдЕрдзрд┐рдХ рд╣реИред

VDD_SDIO рдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдиреЛрдЯред рдпрд╣ рдкрд┐рди рдмрд┐рдЬрд▓реА рдЖрдкреВрд░реНрддрд┐ рдЖрдЙрдЯрдкреБрдЯ 1.8V рдпрд╛ 3.3V рд╣реИ, рдЬреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ IO12 рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ ред 3.3V GPIO12 0 рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ)
VDD_SDIO works as the power supply for the related IO, and also for an external device.

When VDD_SDIO operates at 1.8 V, it can be generated from ESP32тАЩs internal LDO. The maximum currentthis LDO can offer is 40 mA, and the output voltage range is 1.65 V~2.0 V.

When the VDD_SDIO outputs 1.8 V, the value of GPIO12 should be set to 1 when the chip boots and it is recommended that users add a2 kтДж ground resistor and a 4.7 mF filter capacitor close to VDD_SDIO.

When VDD_SDIO operates at 3.3 V, it is driven directly by VDD3P3_RTC through a 6тДжresistor, therefore,there will be some voltage drop from VDD3P3_RTC.

When the VDD_SDIO outputs 3.3 V, the value of GPIO12 is 0 (default) when the chip boots and it is recommended that users add a 1mF capacitor close to VDD_SDIO

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ 1.8V рдлреНрд▓реИрд╢ рд╣реИ рддреЛ рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдФрд░ рдЕрдкрдиреЗ 3V3 рдлрд╝реНрд▓реИрд╢ рдФрд░ PSRAM рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рд╕реЗ

рдЬреЛрдбрд╝рд╛ ред рдХреБрдЫ ESP32 рдореЙрдбреНрдпреВрд▓ VDD_SDIO рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ IO12 рдкрд░ рдмрд╛рд╣реНрдп рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рдХреБрдЫ рднреА рд▓рдЯрдХрд╛ рдирд╣реАрдВ рд╕рдХрддрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдмрдЯрди рд▓рдЯрдХрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░реЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдореЗрдВ, рдореИрдВрдиреЗ IO12 рдкрд░ рдПрдХ рдПрд╕рдкреАрдЖрдИ рдкреИрд░ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдФрд░ рдореЙрдбреНрдпреВрд▓ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ IO12 рдХреЛ рдЗрд╕ SPI рдкреЛрд░реНрдЯ рд╕реЗ рдПрдХ рдЗрдХрд╛рдИ рдорд┐рд▓реА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ 0 рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП!

рд╕рднреА рдПрдХ рд╕рд╛рде:

рдЫрд╡рд┐

8MB PSRAM


рдмрд╛рд╣рд░реА рд░реИрдо рдХреЗ рд▓рд┐рдП 8MB PSRAM рдЕрдкрдЧреНрд░реЗрдб рдореЙрдб
рд╕рдкреЛрд░реНрдЯ
PSRAM / CE (рдкрд┐рди 1)> ESP32 GPIO 16
PSRAM SO (рдкрд┐рди 2)> рдлрд╝реНрд▓реИрд╢ DO
PSRAM SIO [2] (рдкрд┐рди 3)> рдлрд╝реНрд▓реИрд╢ WP
PSRAM SI (рдкрд┐рди 5)> рдлрд╝реНрд▓реИрд╢ DI
PSRAM SLK (рдкрд┐рди 6)> ESP32 GPIO 17
PSRAM SIO [3] (рдкрд┐рди 7)> рдлреНрд▓реИрд╢ рд╣реЛрд▓реНрдб
PSRAM Vcc (рдкрд┐рди 8)> ESP32 VCC-SDIO


Pcb рдПрдВрдЯреАрдирд╛


рдореИрдВрдиреЗ рд╕реНрдореЙрд▓ рд╕рд╛рдЗрдЬрд╝ 2.4 GHz PCB рдПрдВрдЯреАрдирд╛ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ ред рдпрд╣ рдИрдЧрд▓ рдСрдЯреЛрдбреЗрд╕реНрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╣реИ рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реИред рдЖрдк рд╢рд╛рдпрдж CERAMIC DIELECTRIC ANTENNA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕реЗ рдЦрд░реАрджрдирд╛ рд╣реЛрдЧрд╛, рдФрд░ PCB рдПрдВрдЯреАрдирд╛ рдХреА рдХреАрдордд рдереЛрдбрд╝реА рдмрдбрд╝реА рд╣реЛрдЧреАред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╕рд┐рд░реЗрдорд┐рдХ рдПрдВрдЯреАрдирд╛ рдХрдо рдкреНрд░рднрд╛рд╡реА рд╣реИред рдХреЛрдИ рднреА рд╡рд┐рдХрд▓реНрдк

рдПрдВрдЯреАрдирд╛ рдЪрдпрди рддреНрд╡рд░рд┐рдд рдЧрд╛рдЗрдб рдПрдВрдЯреАрдирд╛ рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдЖрд░рдПрдл рд▓реЗрдЖрдЙрдЯ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред

рдЫрд╡рд┐



рдПрдВрдЯреАрдирд╛ рдХреЗ рдорд┐рд▓рд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛




ESP32 рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдбрд┐рдЬрд╛рдЗрди рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдкреГрд╖реНрда 7 рдкрд░ рдПрдХ рдЖрд░рдПрдл рдлрд┐рд▓реНрдЯрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд╢рд╛ рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рджрд╛рди:
ESP32 (QFN 6 * 6) рдФрд░ ESP32 (QFN 5 * 5) рдХреЗ RF рдкрд┐рди рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рддрд┐рдмрд╛рдзрд╛ рдХреНрд░рдорд╢рдГ (30 + j10) (рдФрд░ (35 + j10) of рд╣реИрдВред
рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдСрдирд▓рд╛рдЗрди рд╕реНрдорд┐рде рдЪрд╛рд░реНрдЯ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ред рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рд╕рд░реНрдХрд▓ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ (30 + j10) рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЧрдгрдирд╛ рдбреЗрдЯрд╛ рд╣реИ рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдкрдЯрд░рд┐рдпреЛрдВ рдФрд░ рдкреАрд╕реАрдмреА рдХреА рдореЛрдЯрд╛рдИ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реНрдерд╛рди рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред



рдпрд╣ рдХреЗрд╡рд▓ рдПрдВрдЯреАрдирд╛ рдорд┐рд▓рд╛рди рд╕рд░реНрдХрд┐рдЯ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, esp32-pic рдмреЛрд░реНрдб рдкрд░ рдорд┐рд▓рд╛рди рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИ:

esp32-pico-kit-v4_schematic

Smith рдЪрд╛рд░реНрдЯ рдФрд░ рдкреНрд░рддрд┐рдмрд╛рдзрд╛ рдорд┐рд▓рд╛рди

рдПрдВрдЯреАрдирд╛ рдХреЗ рд╕реНрдерд╛рди рдФрд░ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЗ рдореБрдХреНрдд рдХреНрд╖реЗрддреНрд░ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд▓рд┐рдЦрд╛ рдерд╛, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЪрдпрди рдЬрд╛рдирдмреВрдЭрдХрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдмреЛрд░реНрдб рдХреЗ рдкрд╣рд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдФрд░ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП,



рджреВрд╕рд░рд╛ рднрд╛рдЧ рдмреЛрд░реНрдб рдХреЛ рд╣реА рд╕рдорд░реНрдкрд┐рдд рд╣реЛрдЧрд╛ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреЗ рддреАрд╕рд░реЗ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЛред рд╢рд╛рдпрдж рд╕рдм рдХреБрдЫ рдПрдХ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред

рдореИрдВ рдПрд╕реНрдкреНрд░реЗрд╕рд┐рдл рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдбреВрдо рдкреЛрд░реНрдЯ рдкрд░ рдереЛрдбрд╝рд╛ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЬрд╛рдКрдВрдЧрд╛ред рдкреЛрд░реНрдЯ ILI9341 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ ST7789 рд╣реИред рд▓реЗрдХрд┐рди рдЪреВрдБрдХрд┐ рдмрдлрд░ рдХреЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рдореЗрдВ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рдмрдбрд╝реА рдореБрд╢реНрдХрд┐рд▓реЗрдВ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

  • Ili_init рдФрд░ displayTask рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ
  • рдбрд┐рд╕реНрдкреНрд▓реЗрдЯрд╕реНрдХ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

displayTask
void IRAM_ATTR displayTask(void *arg) {
	int x, i;
	int idx=0;
	int inProgress=0;
	static uint16_t *dmamem[NO_SIM_TRANS];
	spi_transaction_t trans[NO_SIM_TRANS];
	spi_transaction_t *rtrans;

    esp_err_t ret;
    spi_bus_config_t buscfg={
        .miso_io_num=-1,
        .mosi_io_num=PIN_NUM_MOSI,
        .sclk_io_num=PIN_NUM_CLK,
        .quadwp_io_num=-1,
        .quadhd_io_num=-1,
        .max_transfer_sz=(MEM_PER_TRANS*2)+16
    };
    spi_device_interface_config_t devcfg={
        .clock_speed_hz=26000000,               //Clock out at 26 MHz. Yes, that's heavily overclocked.
        .mode=0,                                //SPI mode 0
        .spics_io_num=PIN_NUM_CS,               //CS pin
        .queue_size=NO_SIM_TRANS,               //We want to be able to queue this many transfers
        .pre_cb=ili_spi_pre_transfer_callback,  //Specify pre-transfer callback to handle D/C line
    };

	printf("*** Display task starting.\n");

    //Initialize the SPI bus
    ret=spi_bus_initialize(HSPI_HOST, &buscfg, 1);
    assert(ret==ESP_OK);
    //Attach the LCD to the SPI bus
    ret=spi_bus_add_device(HSPI_HOST, &devcfg, &spi);
    assert(ret==ESP_OK);
    //Initialize the LCD
    ili_init(spi);

	//We're going to do a fair few transfers in parallel. Set them all up.
	for (x=0; x<NO_SIM_TRANS; x++) {
		dmamem[x]=pvPortMallocCaps(MEM_PER_TRANS*2, MALLOC_CAP_DMA);
		assert(dmamem[x]);
		memset(&trans[x], 0, sizeof(spi_transaction_t));
		trans[x].length=MEM_PER_TRANS*2;
		trans[x].user=(void*)1;
		trans[x].tx_buffer=&dmamem[x];
	}
	xSemaphoreGive(dispDoneSem);

	while(1) {
		xSemaphoreTake(dispSem, portMAX_DELAY);
//		printf("Display task: frame.\n");
#ifndef DOUBLE_BUFFER
		uint8_t *myData=(uint8_t*)currFbPtr;
#endif

		send_header_start(spi, 0, 0, 320, 240);
		send_header_cleanup(spi);
		for (x=0; x<320*240; x+=MEM_PER_TRANS) {
#ifdef DOUBLE_BUFFER
			for (i=0; i<MEM_PER_TRANS; i+=4) {
				uint32_t d=currFbPtr[(x+i)/4];
				dmamem[idx][i+0]=lcdpal[(d>>0)&0xff];
				dmamem[idx][i+1]=lcdpal[(d>>8)&0xff];
				dmamem[idx][i+2]=lcdpal[(d>>16)&0xff];
				dmamem[idx][i+3]=lcdpal[(d>>24)&0xff];
			}
#else
			for (i=0; i<MEM_PER_TRANS; i++) {
				dmamem[idx][i]=lcdpal[myData[i]];
			}
			myData+=MEM_PER_TRANS;
#endif
			trans[idx].length=MEM_PER_TRANS*16;
			trans[idx].user=(void*)1;
			trans[idx].tx_buffer=dmamem[idx];
			ret=spi_device_queue_trans(spi, &trans[idx], portMAX_DELAY);
			assert(ret==ESP_OK);

			idx++;
			if (idx>=NO_SIM_TRANS) idx=0;

			if (inProgress==NO_SIM_TRANS-1) {
				ret=spi_device_get_trans_result(spi, &rtrans, portMAX_DELAY);
				assert(ret==ESP_OK);
			} else {
				inProgress++;
			}
		}
#ifndef DOUBLE_BUFFER
		xSemaphoreGive(dispDoneSem);
#endif
		while(inProgress) {
			ret=spi_device_get_trans_result(spi, &rtrans, portMAX_DELAY);
			assert(ret==ESP_OK);
			inProgress--;
		}
	}
}


рд╡реАрдбрд┐рдпреЛ Esp32-Doom рддреНрд╡рд░рд┐рдд рдбреЗрдореЛ



рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ Jlcpcb рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЛ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЪреБрдиреМрддреА рд╢реБрд░реВ!

All Articles