前言

前几次我们一起完成了那个小小开发板的设计,并且成功运行自己移植的Linux系统,但是,那个小板并没有什么用,接下来这几篇我们一起来做点有意思的事情吧。

首先改变一下电路设计,随着小板的完成,我需要添加各种功能,但是因为每种功能设计的时候都心里没底,需要做专门的验证板来进行实验,那我就不得不将soc以及电源相关的容阻器件进行重新焊接,不但费时费力,还容易造成相关元件损坏(别问我怎么知道的)。所以这里依然借(bai)鉴(piao)大佬们的思路,分为核心板和底板两部分。

核心板主要承载soc以及核心供电相关的一些元件,通过M.2接口引出除了TV部分codec之外的大部分引脚,原理图如下:

小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP

核心板的pcb使用4层设计,尺寸大概是2.2mm*4mm,效果图如下:

小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP 小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP

为啥起名叫SnailCard的呢,因为这个板子用的核心确实很慢就像蜗牛一样,还因为我们家那个小祖宗喜欢蜗牛^_^

底板的原理图如下

小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP

 底板使用两层设计,我们看到底板的资源十分丰富,除了本篇讲的ESP-12F(esp8266的模组)无线网卡,还有TFT屏幕、使用FE8.1扩展的usb接口、音频接口等,后续的文章会以此进行说明,另外供电与串口部分改为了Type-C 口,与时俱进嘛。

效果如如下:

小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP

 需要注意的是,ESP12-F的铁皮外壳和里面的Flash芯片我们到时候会去掉,这里的WIFI天线部分处理并不符合要求,所以信号会有影响。

实物如下:

 小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP

小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP

 核心板、底板硬件资料下载:

https://files.cnblogs.com/files/twzy/SnailCard%E7%A1%AC%E4%BB%B6.zip

需要注意一下:

1. 核心板中各两个json文件分别对应原理图和pcb图,底板因为原来的PCB图改动过,所以只给出了原理图;
2. zip文件为最终生成的Gerber文件,该文件可以直接提供给厂家生产pcb;
3. 核心板打样一定选择厚度为0.8mm

测试镜像文件:

链接:https://pan.baidu.com/s/1qTTgBndBvmssCdeqXHI3Pg
提取码:fw52

 现在嘉立创、捷配等一系列PCB厂商都开启了免费打样并且包邮的活动,所以还在等什么。

1. 硬件设计

1.1 接线表

1. 如果是用是Exp8266芯片,请参考第一列和第二列,使用ESP-12F模块请参考第一列和第三例
2. 如果使用ESP-12F模块,请务必去掉模块中的Flash芯片

1.2 电位

小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP

该图来源于驱动参考文档,另外不同于nodeMCU模组,这里的GPIO15 需要拉高,GPIO2需要拉低

1.3 个人接线图

F1c100s/F1c200s 引脚图(注意此图中元件为自制的核心板,所以引脚标号与原始标号不一致,使用对应元件名称即可。)
SOC引脚
小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP

核心板引脚
小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP

使用SPI0作为通信接口
使用PE7引脚作为复位引脚
使用PE8引脚作为中断引脚

ESP12-F引脚
小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP

这里使用ESP-12F 重置使用使能引脚(EN)来控制(官网推荐)。

这是其中某次的成品图(后来这部分无论核心板还底板都有过调整,但是软件部分都是一样的)
小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP

2. 驱动配置

esp8089-spi的驱动代码地址
https://github.com/notabucketofspam/ESP8089-SPI/

如果无法现在可以通过这个网址下载:

https://whycan.cn/files/members/3907/ESP8089-SPI_20200509.7z

【注意:这部分代码是编译成独立的驱动文件,手动加载才能运行,如果想直接集成在内核可以直接下载 3节的代码】

项目说明文档中说,可以使用ESP8266或者ESP8089都是可以的。只不过ESP8266需要把SPI flash拆掉

2.1 编译配置

接下来修改驱动项目的KBUILD,指向 Linux-5.7.1内核源码目录。

小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡-LMLPHP

2.2 处理内核不支持警告

使用

make ARCH=arm CROSS_COMPILE=arm-linux-
10-16 23:38