一、概要
CSK6011A通过外加ESP32-C3实现wifi联网功能,ESP32-C3作为ESP-HOSTED,需要烧录特定的固件,CSK6011A与ESP32-C3通过SPI总线通信,协议架构如下:
像 802.11、Supplicant、hostapd等协议是运行在ESP32-C3上,减少了CSK6的运行开销,减轻了CSK6的运行负荷。WIFI和蓝牙的通信均通过SPI接口,这样也节省了一些IO。
具体方案讲解可参考:基于Zephyr网络功能构建的WIFI&BLE无线芯片集成方案_zephyr 蓝牙开发-CSDN博客
二、电路
1、WIFI部分原理图
2、WIFI部分PCB
留有六个间距1.0mm的测试点用于烧录固件,需要使用1.0mm间距的探针接触测试点,然后烧录,支持一键自动烧录。
三、环境
1、软件工具
使用乐鑫官方提供的flash_download_tool工具:
下载地址:https://www.espressif.com.cn/sites/default/files/tools/flash_download_tool_3.9.7_1.zip
2、烧录器
ESP32 自动下载固件烧录模块。
此烧录模块相对普通USB转串口多了EN、BOOT信号,支持一键烧录。
四、烧录
1、ESP32固件
2、连接烧录器
先将烧录器使用杜邦线连接到烧录探针:
再使用USB线将烧录器连接到windows电脑,然后打开设备管理器查看串口号,这里是COM11。
注意: 烧录器的TX接测试点RX,烧录器的RX接测试点TX,由于设计时没仔细核对,导致这里需要交叉一下。
3、启动烧录工具
双击flash_download_tool启动工具,选择模式:
然后点击OK。
选择之前下载好的hosted固件,地址为0x0,COM选择相应的串口号:
4、执行烧录
将探针连接到ESP32-C3的烧录测试点:
然后点击烧录工具的START,等待烧写完成:
6、ESP32-C3日志
烧录成功后ESP32-C3会输出如下日志:
ESP-ROM:esp32c3-api1-20210207
Build:Feb 7 2021
rst:0x1 (POWERON),boot:0xd (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fcd5810,len:0x1800
load:0x403cc710,len:0xc18
load:0x403ce710,len:0x2e48
entry 0x403cc710
[0;32mI (30) boot: ESP-IDF v4.4.5-355-g1f00708c84 2nd stage bootloader[0m
[0;32mI (30) boot: compile time 02:59:05[0m
[0;32mI (30) boot: chip revision: v0.4[0m
[0;32mI (33) qio_mode: Enabling default flash chip QIO[0m
[0;32mI (39) boot.esp32c3: SPI Speed : 80MHz[0m
[0;32mI (44) boot.esp32c3: SPI Mode : QIO[0m
[0;32mI (48) boot.esp32c3: SPI Flash Size : 4MB[0m
[0;32mI (53) boot: Enabling RNG early entropy source...[0m
[0;32mI (58) boot: Partition Table:[0m
[0;32mI (62) boot: ## Label Usage Type ST Offset Length[0m
[0;32mI (69) boot: 0 nvs WiFi data 01 02 00009000 00004000[0m
[0;32mI (77) boot: 1 otadata OTA data 01 00 0000d000 00002000[0m
[0;32mI (84) boot: 2 phy_init RF data 01 01 0000f000 00001000[0m
[0;32mI (92) boot: 3 factory factory app 00 00 00010000 00100000[0m
[0;32mI (99) boot: 4 ota_0 OTA app 00 10 00110000 00100000[0m
[0;32mI (107) boot: 5 ota_1 OTA app 00 11 00210000 00100000[0m
[0;32mI (114) boot: End of partition table[0m
[0;32mI (118) boot: Defaulting to factory image[0m
[0;32mI (123) esp_image: segment 0: paddr=00010020 vaddr=3c0a
0020 size=1eab8h (125624) map[0m
[0;32mI (149) esp_image: segment 1: paddr=0002eae0 vaddr=3fc93e00 size=01538h ( 5432) load[0m
[0;32mI (150) esp_image: segment 2: paddr=00030020 vaddr=42000020 size=994b4h (627892) map[0m
[0;32mI (238) esp_image: segment 3: paddr=000c94dc vaddr=3fc95338 size=01668h ( 5736) load[0m
[0;32mI (240) esp_image: segment 4: paddr=000cab4c vaddr=40380000 size=13d28h ( 81192) load[0m
[0;32mI (264) boot: Loaded app from partition at offset 0x10000[0m
[0;32mI (264) boot: Disabling RNG early entropy source...[0m
[0;32mI (275) cpu_start: Unicore app[0m
[0;32mI (275) cpu_start: Pro cpu up.[0m
[0;32mI (284) cpu_start: Pro cpu start user code[0m
[0;32mI (284) cpu_start: cpu freq: 160000000[0m
[0;32mI (284) cpu_start: Application information:[0m
[0;32mI (287) cpu_start: Project name: network_adapter[0m
[0;32mI (292) cpu_start: App version: 77c953e[0m
[0;32mI (297) cpu_start: Compile time: Sep 7 2023 02:58:56[0m
[0;32mI (303) cpu_start: ELF file SHA256: 8235fded4b3dfac7...[0m
[0;32mI (309) cpu_start: ESP-IDF: v4.4.5-355-g1f00708c84[0m
[0;32mI (315) cpu_start: Min chip rev: v0.3[0m
[0;32mI (320) cpu_start: Max chip rev: v0.99 [0m
[0;32mI (325) cpu_start: Chip rev: v0.4[0m
[0;32mI (330) heap_init: Initializing. RAM available for dynamic allocation:[0m
[0;32mI (337) heap_init: At 3FC9BCF0 len 00040A20 (258 KiB): DRAM[0m
[0;32mI (343) heap_init: At 3FCDC710 len 00002950 (10 KiB): STACK/DRAM[0m
[0;32mI (350) heap_init: At 50000020 len 00001FE0 (7 KiB): RTCRAM[0m
[0;32mI (356) spi_flash: detected chip: generic[0m
[0;32mI (361) spi_flash: flash io: qio[0m
[0;32mI (365) sleep:
Configure to isolate all GPIO pins in sleep state[0m
[0;32mI (371) sleep: Enable automatic switching of GPIO sleep configuration[0m
[0;32mI (379) coexist: coexist rom version 9387209[0m
[0;32mI (384) cpu_start: Starting scheduler.[0m
[0;32mI (388) NETWORK_ADAPTER: *********************************************************************[0m
[0;32mI (388) NETWORK_ADAPTER: ESP-Hosted Firmware version :: 0.4 [0m
[0;32mI (398) NETWORK_ADAPTER: Project git version :: 77c953e[0m
[0;32mI (408) NETWORK_ADAPTER: Transport used :: SPI [0m
[0;32mI (418) NETWORK_ADAPTER: *********************************************************************[0m
[0;32mI (428) NETWORK_ADAPTER: Supported features are:[0m
[0;32mI (428) NETWORK_ADAPTER: - WLAN over SPI[0m
[0;32mI (438) ESP_BT: - BT/BLE[0m
[0;32mI (438) ESP_BT: - HCI Over SPI[0m
[0;32mI (448) ESP_BT: - BLE only[0m
[0;32mI (448) NETWORK_ADAPTER: capabilities: 0x68[0m
[0;32mI (458) BLE_INIT: BT controller compile version [963cad4][0m
[0;32mI (458) phy_init: phy_version 970,1856f88,May 10 2023,17:44:12[0m
[0;32mI (498) system_api: Base MAC address is not set[0m
[0;32mI (498) system_api: read default base MAC address from EFUSE[0m
[0;32mI (498) BLE_INIT: Bluetooth MAC: 34:cd:b0:d3:31:be
[0m
[0;32mI (508) NETWORK_ADAPTER: ESP Bluetooth MAC addr: 34:cd:b0:d3:31:be[0m
[0;32mI (518) SPI_DRIVER:
Using SPI interface[0m
[0;32mI (518) gpio: GPIO[5]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 [0m
[0;32mI (528) gpio: GPIO[4]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 [0m
[0;32mI (1538) pp: pp rom version: 9387209[0m
[0;32mI (1538) net80211: net80211 rom version: 9387209[0m
[0;32mI (1548) NETWORK_ADAPTER: Initial set up done[0m
[0;32mI (2548) slave_ctrl: event ESPInit[0m
[0;32mI (2558) slave_ctrl: Get station mac address[0m
[0;32mI (2558) slave_ctrl: mac [34:cd:b0:d3:31:bc] [0m