三 天空星筑基学习板
天空星筑基学习板是一款专为STM32天空星核心板(其他天空星也支持,只是暂不提供教程和例程支持)设计的全能型扩展平台,旨在提供从初学者到工程师开发的硬件支持。在电源架构上,它具备8V~24V宽压输入、5V/5A大功率输出(持续工作需要加强散热)及双路隔离电源,集成电压电流监控。通信方面,板载以太网PHY、隔离CAN与RS485接口,支持从TCP/IP到工业总线的全方位连接。针对运动控制与感知,底板集成了双路直流电机、静音步进电机驱动及外部步进电机接口(共阳极光耦),配合六轴IMU、温湿度传感器及高精度RTC,完美适配各类场景的评估测试。此外,还板载了音频编解码芯片(ES8388)、RGB灯及丰富的IO扩展资源,通过巧妙的拨码开关冲突管理,实现了在有限引脚下的极致资源复用,是嵌入式全栈开发的理想演练场。
IMPORTANT
这个学习底板无法独立使用,如果用来学习的话,必须搭配上面的STM32天空星核心板来一起使用,否则无法编写程序来控制外设。我们首批教程只适配STM32系列的天空星,其他芯片版本的天空星目前还没有计划,本系列教程受限于人力,同时我们自己也希望能做到能同时适合初学者和工程师,会尽力将教程文档写得更有意义,更有用一些,所以在底板上线时无法提供全部外设的资料,相关文档和例程会持续更新的。

IMPORTANT
本底板只适用于两个40P排针向下焊接的天空星,如果你以前买的天空星核心板不小心把排针焊接到正面了,那是无法兼容本底板的。不过我们首批推出的筑基学习板会搭配焊接好排针的天空星,所以这个问题也不是问题了。
天空星·筑基学习板-硬件资源罗列及简介:
| 类别 | 功能 | 核心元件/芯片 | 接口/规格 | 备注 |
|---|---|---|---|---|
| 电源系统 | 电源输入 | - | DC 头 (5.5*2.5mm) / 2P接线端子(3.81mm间距) | 8V~24V 输入, 带防反接、过流保护 |
| | | DC-DC 降压 | XL4015E1 | 输出 5V / 5A (MAX) | 主供电,采用两个低 ESR 固态电容 |
| | | 排针电源输出 | - | 5V/5A, 5V/2A(限流), 3.3V/0.7A(限流) | 带输出防过流保护 5V/5A输出口带防过压保护(约超过5.3V时自动关断) |
| | | 电源监控 | INA226 | I2C1 | 可实时监测电压、电流、功率 |
| | | 隔离电源 | - | 5V 隔离电源 x2 | 用于 CAN、 RS485 总线,继电器,外部步进电机接口及其光耦和隔离芯片供电 |
| | | 3路LDO | SCJA1117B-3.3-A | - | 分别提供给天空星核心板,板载3.3V设备,3.3V对外输出供电 |
| └ | RTC 备用电源 | - | RTC 电池座 CR1220 | 为 SD3078(高精度外部时钟) 和天空星核心板主芯片的内部RTC供电 |
| 核心与扩展 | 核心板接口 | - | 2 个40P 2.54mm间距排母 | 用于连接 天空星 核心板,可对插接入,只适用于向下焊接排针的天空星 |
| └ | 通用扩展接口 | - | 2 个 40P 2.54mm间距排针 | 可连接示波器、逻辑分析仪,或者用其他开发板来驱动本筑基学习板上的外设等 |
| 传感器 | 惯性测量单元 | ICM-42688 (IMU) | SPI2 | 提供 6 轴姿态数据,避震孤岛结构设计。 |
| | | 高精度时钟 | SD3078 (RTC) | I2C1 | 外部实时时钟,内置集成温度补偿晶体振荡器,3.8PPM |
| | | 温湿度 | AHT20-F | I2C1 | |
| | | 称重 | HX711 (24-Bit ADC) | 称重传感器接口 4P-3.81mm可插拔接口 | |
| └ | 音频采集 | 板载麦克风 (MIC) | - | 连接至ES8388音频芯片 |
| 电机驱动 | 板载直流电机驱动 | AT8236 x2 | 2x 电机接口, 2x 编码器接口。 均为3.81mm可插拔接口。 | 两个电机接口共用一个4P可插拔接口, 两个编码器接口各用一个4P可插拔接口, 直流电机驱动最大输出电流约2.2A。 |
| | | 板载步进电机驱动 | TMC2209 | 1X步进电机对外输出, 有1路编码器接口。 均为3.81mm可插拔接口。 | 静音驱动芯片 电流、细分、工作模式可自行设置。 |
| | | 外部步进电机接口 | DIR和ENA为低速光耦 PUL为高速光耦 | 均为3.81mm可插拔接口。 | 使用共阳极级接法,COM+为隔离电源1的5V对外输出。 |
| └ | 舵机 | - | 2x 舵机接口-3P排针输出 已用MOS管转为5V电平输出 | 与 电机2 PWM 引脚复用 |
| 通信接口 | 以太网 | LAN8720A (PHY) | RJ45 网口 | 引脚无冲突复用,可放心使用,有了这个再配合TCP/IP 协议栈 (LwIP),天空星就能上网了 |
| | | CAN 总线 | TJA1042T | 隔离 CAN 接口 3.81mm可插拔接口。 | 带 120Ω 终端电阻,可通过排针跳帽来选择,有电源和信号隔离。 |
| | | RS485 | SP485EEN | 隔离 RS485 接口 3.81mm可插拔接口。 | 带 120Ω 终端电阻,可通过排针跳帽来选择,有电源和信号隔离。 |
| | | I2C1 | PCA9517 (I2C1缓冲器) | 2.54x4P排针 | 连接至板载的所有I2C设备(六个),配有I2C缓冲器来增加带载能力。 |
| | | I2C1-IO扩展 | PCA9555PW (IO 扩展) | 2.54mm排针 | IO0端口:连接至八路拨码开关,可通过I2C1控制PCA9555PW软件配置来切换冲突功能;IO1端口:连接至WS2812四周的8个LED灯 和 排针引出口 |
| | | I2C2 | - | 2.54x4P排针和排母 | 排针可外接其他外设,排母可接OLED屏幕,I2C2默认作为外扩屏幕的触摸使用。 |
| | | SPI 接口 | - | SPI2 2.54mm排针引出 | 有3.3V和5.0V输出,配有3个CS引脚。 |
| | | SDIO 接口 | - | 2.54mm排针引出 | 有LED红灯指示,天空星的TF卡插入后自动亮起,提示用户不可用该接口。 可复用为SPI3或UART4和UART5。 |
| └ | 单总线 | - | DS18B20 / DHT11 接口 | 圆孔排母,方便插芯片针脚 |
| 音频系统 | 音频编解码 | ES8388 | I2C1 & I2S2 | 与板载SPI2无法同时使用,音频和SPI无法同时使用 |
| | | 音频功放 | HT6872 x2 | MX1.25接口x2 | 功放默认失能,预防上电时的POP声,可通过8路拨码开关的BIT1来使能。 |
| └ | 音频输出 | - | 3.5mm 耳机接口 | CTIA-美标接口 |
| 人机交互 | 屏幕&触摸接口 | - | FPC-18P 接口 | 可连接至 SPI-LCD 屏幕(SPI1)和 电容触摸(I2C2) |
| | | 绿色LED灯 | - | 1个 | 可做呼吸灯,该IO和LCD屏幕的背光是同一个IO,连接至硬件PWM通道 |
| | | 白色LED灯 | - | 8个 | 连接至IO扩展芯片(PCA9555PW)IO1端口的八个IO。 |
| | | 用户按键 | - | 用户按键 x2 | 其中PA0和天空星核心板上的按键用同一个 |
| | | 旋转编码器 | EC11 | - | 带按下功能,可作为按键3 |
| | | 板载RGB LED | WS2812 x3 | 灯条接口 | 可编程全彩 LED |
| | | 蜂鸣器 | 一个有源蜂鸣器 一个无源蜂鸣器 | - | 可以分时复用,但无法同时使用 |
| | | 冲突功能选择 | 八路拨码开关,亦连接至I2C1下的IO扩展芯片-PCA9555PW的IO0端口上。 | 可手动拨动拨码开关,也可通过程序控制。 | 用于配合单刀双掷模拟开关实现对复用引脚的功能切换 |
| | | 旋转可调电位器 | - | 10KΩ | |
| | | ADC 输入 | - | 2.54mm 排针接口 两个ADC输入通道 | 带TVS和保护电阻 |
| └ | 继电器 | - | 3P 带盖板栅栏式接线端子 | 带光耦隔离和LED灯指示 |
| 存储 | - | TF 卡座 | SDIO 接口 在天空星核心板上面,底板上没有,此处写出来主要是方便各位评估。 | |
| | | EEPROM | AT24C02 | I2C1 | 该器件的I2C地址可通过拨码开关设置 |
| └ | SPI FLASH | W25Q128 | SPI2 | 与天空星高配版所用的是同一型号,用了这个底板,天空星上的SPI FLASH 就不能用了。 |
注:上述部分功能无法同时使用(只能二选一或分时复用),冲突的功能可以手动通过拨动开关切换,亦可软件控制PCA9555PW的端口0的八个IO来切换,软件控制的优先级高于手动拨动拨码开关:
- 两个ADC输入排针口 和 HX711无法同时使用,可通过8路拨码开关的BIT2来切换。
- SPI2 和 音频I2S2无法同时使用,可通过8路拨码开关的BIT3来切换。
- 有源蜂鸣器 和 无源蜂鸣器无法同时使用,可通过8路拨码开关的BIT4来切换。
- 两个舵机通道 和 直流电机2无法同时使用,可通过8路拨码开关的BIT5来切换。
- 旋转编码器EC11 和 直流电机编码器2无法同时使用,可通过8路拨码开关的BIT6来切换。
- 板载RGB灯(WS2812x3)和 外部灯条(可用来接外部的RGB灯板或者灯条)无法同时使用,可通过8路拨码开关的BIT7来切换。
- 板载步进电机驱动(TMC2209) 和 外部步进电机接口 无法同时使用,可通过8路拨码开关的BIT8来切换。
NOTE
天空星核心板在设计时并没有考虑到后续会有配套屏幕,所以天空星STM32F4高配版上面的 SPI FLASH 分配IO时将其分配在了 SPI1总线上(最高42Mhz),SPI2和SPI3最高都只能是21Mhz。为了确保配套的SPI屏幕获得最佳刷新率,且我们天空星青春版本来也不贴FLASH,所以本学习底板将 STM32F4 上唯一支持 42MHz 高速通信的 SPI1 总线更改分配用于屏幕驱动;鉴于共用总线会导致软件逻辑复杂且影响性能,决定放弃复用板载 Flash,改为在底板的SPI2上外挂独立的 SPI Flash 以存储资源。
3.1 八路拨码开关【重点介绍】
受限于天空星开发板的80P排针引出口(除去电源、地等乱七八糟的引脚,也就70个IO可用),对于一个大板来说就这些可用的IO是极其有限的,为了尽量能满足学生和工程师用户的需求,也为了提高我们板子的性价比和适用性,我们通过加入多个(20个)单刀双掷模拟开关,让同一个IO可以连接到两个通道上,然后通过这个八路拨码开关来控制这些模拟开关实现IO功能的复用。

这些拨码开关也实际连接到了PCA9555PW这个IIC扩展IO的IO0端口,也就是说既可以手动通过拨码开关来切换(前期学习不涉及I2C控制时),也可以通过IIC来控制这些模拟开关的功能切换(后期),根据电阻设置,软件设置的优先级会高于手动波动拨码,同时我们也可以软件配置PCA9555PW这些接口为输入模式来检测这些模拟开关的当前状态。
3.1.1 什么是单刀双掷模拟开关?
在开始介绍单刀双指模拟开关之前前,大家先低头先看一下你的筑基学习板右上角的电源开关:

1和3是选择端,2是公共端,2可以连接到3也可以连接到1,但就像是单选题,只能二选一。
拨动开关(电源开关)向上拨动时,1和2导通,此时可以用上面的2P插拔式接线端子来供电;
拨动开关(电源开关)向下拨动时,2和3导通,此时可以用下面的DC座来供电;上面这个图里就是用DC座来供电的,也是我们首推的方式,需要断电的时候只要把拨动开关拨到上面就可以了。【上面的实物图就是当前这个状态,可以用圆DC头来给板子供电】
后续介绍的单刀双掷模拟开关的功能和这个电源开关类似,只不过它不是用外力去切换,而是用高低电平(数字信号)来切换当前IO与哪个通道相连。
单刀双掷模拟开关,故名思意,就是指拥有一个公共端(单刀)和两个选择端(双掷)的电子开关器件。
刀 与 掷 的对应关系
单刀:这是公共端,就像是火车的入口轨道。在我们的天空星筑基学习板中,这个引脚一般连接到 天空星核心板上需要进行功能复用的某个功能引脚(比如有源和无源蜂鸣器,他们用的是同一个引脚)。
双掷 :这是两个出口轨道。COM 端在同一时间只能连接其中一个。
- 通道 1:对应物理开关拨上去的状态。(比如这里就通向了无源蜂鸣器)
- 通道 2:对应物理开关拨下去的状态。(比如这里就通向了有源蜂鸣器)
控制引脚
物理开关靠手拨,模拟开关靠什么?靠电压。
模拟开关多出来一个非常关键的引脚,叫做 控制引脚(Select, S, 或 IN)。它接收来自 MCU 的数字信号(高电平或低电平),就像一只看不见的手在帮你拨动开关,而且速度极快(纳秒级)。
- 给 S 引脚输入低电平 (Logic 0):内部电路导通 通道 1。
- 给 S 引脚输入高电平 (Logic 1):内部电路导通 通道 2。
我们可以用下面的逻辑图来表示这个过程:
graph LR
%% Author: LCKFB-YZH
subgraph SPDT_Logic [单刀双掷逻辑]
direction LR
COM((COM 公共端))
CH1((通道 1))
CH2((通道 2))
SEL[S 控制引脚]
COM -- S=0 --> CH1
COM -- S=1 --> CH2
SEL -.->|决定导通路径| COM
end
style COM fill:#FFD54F,stroke:#FBC02D
style SEL fill:#64B5F6,stroke:#1976D2,color:white
WARNING
注意,这些模拟开关并不能直接等效为实际生活中的单刀双掷开关,这种芯片必须在正常供电时使用,没有供电就无法使用,所以请不要在断电状态下进行通断测量。
NOTE
为什么这个开关要加个 模拟 两个字?
初学者容易把 模拟开关 和 数字逻辑门(如与门、非门) 搞混。这里有一个本质的区别,也是工程应用中容易踩坑的地方:
- 数字逻辑门:输出的是【重新生成】的 0 或 1。输入 3V,输出也是标准的 3.3V(有驱动能力)。
- 模拟开关:它等效于一根电阻很小的导线。
- 双向性:信号既可以从 COM 流向通道 1,也可以从通道 1 流向 COM。这使得它既可以用于输出控制(如切换 PWM 到不同电机),也可以用于输入采集(如切换不同传感器到同一个 ADC)。
- 无损传输(理想情况下):它能通过模拟信号。比如音频信号、正弦波、变化的电压值,它都能原封不动地传过去(只要在电压范围内)。
3.1.2 八路拨码开关是如何控制这些模拟开关进行IO切换的?
上一节中,我们了解了模拟开关的 单刀双掷 原理,那么在筑基学习板上,控制信号 S 究竟是谁在控制呢?
有两种控制方式,第一种就是我们这个八路拨码开关,由用户手动拨码进行复用功能的选择;第二种就是PCA9555PW的的控制IO也可以对模拟开关进行控制。这里我们采用了 硬件默认 + 软件可控 的双重控制设计。
这些模拟开关的控制端(Select引脚),连接到了一个巧妙的混合控制电路中:
- 硬件层: 板载的 8路拨码开关 的八个脚都连接到了
PCA9555PW(I2C IO扩展芯片)的引脚,同时也连接到模拟开关的控制脚。 - 软件层:
PCA9555PW不仅可以读取当前拨码开关的状态(BIT1有可能读取不到,因其高电平只有1.6V),其输出端也可以直接驱动模拟开关的控制脚。
优先级逻辑:
- 默认状态: 功能由拨码开关的物理位置决定。
- 软件控制状态: 我们可以通过软件向
PCA9555PW发送指令,强制改变模拟开关的状态。软件控制的优先级高于硬件拨码(通过电路上的电阻阻值匹配实现,扩展芯片PCA9555PW的驱动能力强于拨码开关的上拉/下拉电阻)。
结论:软件控制优先级 > 硬件拨码优先级。 这意味着,我们既可以通过手动拨动开关来直观地切换功能,也可以编写初始化代码,在程序运行时自动配置硬件路由,实现全自动化的功能切换。
以我们板子上的有源蜂鸣器和无源蜂鸣器做举例,他们在物理上共用了同一个 MCU 引脚【PA6-TIM13-CH1】,如果我们用两个IO来分别控制有源和无源蜂鸣器,我们的引脚是不够这么挥霍的。如果简单粗暴地将两者直接并在 PA6 上,当我们尝试输出 PWM 波驱动无源蜂鸣器时,有源蜂鸣器也会随之发出杂音;反之,当输出恒定电平驱动有源蜂鸣器时,无源蜂鸣器可能会产生不必要的电流消耗或微弱异响。这会导致初学者无法独立、纯粹地学习这两种器件的驱动特性。有了单刀双掷模拟开关,就能进行路径的切换了。
接下来看一眼我们的原理图:

1是用到的单刀双掷模拟开关,2是有源蜂鸣器,3是无源蜂鸣器。
先看U67这个单刀双掷模拟开关:
- 输入信号源头 (
BUZZER_PWM): 看左上侧的引脚分配框(Pin 4 A脚输入),信号源来自 天空星核心板 的PA6引脚,可复用为TIM13_CH1。 - 控制逻辑 (
S引脚): Pin 6 (Select) 是选择控制端,信号名为ACTIVE-BUZZER_OR_PASSIVE-BUZZER_SWITCH。- 逻辑真值: 原理图下中有标注关键逻辑——S低电平时->A和B1导通。
- S = Low (0):A脚与 B1脚导通 -> 信号流向
ACTIVE-BUZZER_PWM-> 驱动有源蜂鸣器。 - S = High (1):A脚与 B2脚导通 -> 信号流向
PASSIVE-BUZZER_PWM-> 驱动无源蜂鸣器。
- S = Low (0):A脚与 B1脚导通 -> 信号流向
- 逻辑真值: 原理图下中有标注关键逻辑——S低电平时->A和B1导通。
接下来我们找找信号名为 ACTIVE-BUZZER_OR_PASSIVE-BUZZER_SWITCH 的信号究竟接在了哪里:

其中左边虚线框里面的IO0_X这些连接在IIC扩展IO(PCA9555PW)的端口0(八个引脚)上;中间的SW7就是我们前面提到的八路拨码开关,细心的读者可能观察到了,BIT1有点不同与其他通道,它采用了1K的下拉电阻。这部分电路设计的非常有意思,不只是一个简单的开关电阻,他是集成了逻辑电平复用、芯片端口保护以及特定器件阈值适配的综合解决方案(其实我是被PCA9555PW的引脚默认的100K弱上拉电阻给坑了)。
左侧的 IO0_0 到 IO0_7,它们连接到 I2C IO 扩展芯片 PCA9555PW。
在这个设计中,拨码开关并不只是简单的 通断 ,它实际上构成了 线与 逻辑的物理层实现 。
- 普通状态(默认): 当拨码开关断开时,线路状态由下拉电阻(R162-R169)和
PCA9555PW的内部状态(有100K的弱上拉电阻)共同决定。 - 强制状态(手动): 当拨码开关拨到 ON 位置时,3.3V 电源经过限流电阻(R154-R161)强行介入网络,拉高电平。
🤔PCA9555PW的IO内部有100K欧姆的上拉电阻会导致什么问题?
对于大多数数字逻辑芯片(如模拟开关的 S 脚),低电平阈值(就是低于这个阈值就认为是低电平)通常是 0.3×VCC(约 0.99V),VCC是芯片的供电电压,也就是3.3V。
- 当拨码开关断开(OFF)时(默认状态): 电路实际上形成了一个分压器:上方是芯片内部的 100kΩ 上拉,下方是外部的 10kΩ 下拉(R162 等)。
结论: 0.3V 远小于 0.99V 的逻辑翻转阈值,所以对于普通模拟开关,它会被正确识别为 低电平 。同时引出了一个新问题:为什么其他几路使用 10kΩ 就足够了,但是BIT1这一路不行,他为什么要用1KΩ的下拉电阻呢?
❓BIT1这一路为什么要用1KΩ的下拉电阻?
天空星筑基学习板在ES8388的输出通道2上面,接了两个功放芯片(左声道和右声道),也就是两个HT6872,为了防止在音频没有初始化,或者上电时意外出现POP声,我们要能控制这个功放的使能,且要让这个功放处于默认关闭状态,翻一下他的数据手册,可以看到他对使能引脚的电平阈值要求:

如果BIT1也用 10K下拉 会发生什么?如上计算,拨码开关关断时的电压会停留在 0.3V左右。0.3V 大于 0.2V 的关断阈值!这会导致功放处于一种 半死不活 的状态,可能没有完全关断,导致漏电或者微弱的底噪,甚至处于功放上电就开启,无法关闭的状态。 在我们将BIT1那里的下拉电阻R169改为1KΩ电阻后,分压比例发生了剧烈变化:
- 状态 1:拨码开关断开(OFF)
Voff=3.3V×(1kΩ/(100kΩ+1kΩ))≈0.032V, 0.032V 远小于 0.2V。完美满足功放的关断要求。 - 状态 2:拨码开关接通(ON) 此时,3.3V 通过上方的限流电阻 R155 (1kΩ) 进场,与下方的下拉电阻 R169 (1kΩ) 分压。(忽略内部微弱的 100k 上拉)。
Von≈3.3V×1kΩ1kΩ+1kΩ=1.65V, 1.65V 大于 1.2V。完美满足功放的开启要求!
❓保护机制:顶部那排 1kΩ 电阻(R154-R161)是干嘛的?
假设没有这排电阻,拨码开关直接接 3.3V:
- 用户手误把拨码开关拨到了 ON(线路直接连 3.3V)。
- 同时,软件里不小心把 PCA9555PW 的对应引脚配置成了 输出低电平。
- 后果: 3.3V 电源直接对地短路(通过芯片内部的 MOSFET)。瞬间的大电流会直接烧毁 PCA9555PW 的端口。
加上 1kΩ 电阻后: 即使发生上述冲突,电流也被限制在: I=3.3V/1000Ω=3.3mA ,但是 3.3mA 完全在芯片的安全承受范围内。虽然此时逻辑状态是错误的(外部拨码想拉高,芯片却强制把它拉低了),但硬件是安全的,不会冒烟。
同时,这排 1kΩ 电阻也允许了 软件覆写 功能:
- 当拨码开关 ON 时,线路被弱拉高(通过 1kΩ)。
- 如果 PCA9555PW 强力输出低电平(推挽能力强),它可以克服这 1kΩ 的拉升,强制把线拉低,实现软件对硬件开关状态的 反向接管 ,从而不管拨码开关的当前状态是什么,我们都可以通过软件来控制这些拨码开关的电平。
3.1.3 资源冲突对照表
由于复用关系,以下功能组无法同时工作(物理上共用了 MCU 引脚)。这是在开始给天空星写程序或者开始学习前必须要知道的东西。
每一位拨码开关对应一组冲突功能(除了BIT1,它是作为音频功放的开关使用)。ON 和 OFF 代表拨码开关的两种导通状态。

上图实物图这里的BIT1到BIT8都是OFF状态,这些拨码总共有八个,有1到8的数字标识,分别对应了下面表格里面的拨码位,默认都是OFF状态,你把它往上推就是ON状态了。
| 拨码位 | 功能 A (OFF/默认) | 功能 B (ON) | 设计思路 |
|---|---|---|---|
| BIT 1 | 音频功放静音 | 音频功放开启 | 防止上电瞬间的电流冲击产生爆破音(POP声),默认静音。 |
| BIT 2 | HX711 (24bit电子称芯片) | ADC 输入排针 | 高精度 ADC 与普通 ADC 接口复用,一般项目不会同时用到。 |
| BIT 3 | SPI2 接口 (底板上的Flash/IMU) | I2S2 音频 (ES8388) | 音频芯片的数据流(I2S)和SPI接口共用了引脚。做录音播放实验时,不能同时读取外部 Flash,但可以用天空星板载的TF卡座+TF卡来作为数据存储。 |
| BIT 4 | 有源蜂鸣器 | 无源蜂鸣器 | 有源只需高低电平,无源需要PWM。两者物理结构不同,分时复用节省一个 IO。 |
| BIT 5 | 舵机接口 x2 | 直流电机 2 | 两个舵机和电机2的 PWM 引脚冲突。做PWM舵机实验用舵机接口,做小车项目用电机功能。 |
| BIT 6 | EC11 旋转编码器 | 直流电机编码器 2 | 均使用定时器的正交解码接口。用于调节参数的旋钮(EC11)和测量电机速度不能同时进行。 |
| BIT 7 | 板载 RGB 灯 | 外部灯条接口 | 避免板载灯珠干扰外部灯条的数据信号,板载只有3个灯,想要控制更多的RGB灯可以通过外接接口来控制。 |
| BIT 8 | 板载步进 (TMC2209) | 外部步进接口 | 都是控制步进电机,只是驱动器位置不同(板载 vs 外挂工业驱动器)。用外部步进电机接口(带光耦隔离),可以外接更大功率的步进电机。 |
NOTE
关于 SPI Flash 的特殊说明: 细心的同学会发现,筑基学习板上贴了一颗 W25Q128 (SPI Flash),而天空星高配版核心板上也有一颗。
- 核心板 Flash: 接在 SPI1 (高速, 42MHz)。
- 底板 Flash: 接在 SPI2 (低速, 21MHz)。
为什么这么做? 屏幕驱动需要巨大的数据吞吐量,时钟越高,单位时间内能传输的数据也就越多,因此我们将最快的 SPI1 独占给了屏幕接口。但是学习的时候偶尔也需要使用SPI FLASH来存储数据,于是我们将存储用的 Flash 移到了底板的 SPI2 上。如果你使用的是天空星高配版,插上底板后,核心板上的 Flash 将无法使用(因为引脚被屏幕占用了),请统一使用底板上的 Flash。如果你用的是天空星青春板,那么是没有影响的,本来青春板也没有焊接SPI FLASH。当然,我们首批筑基学习板是搭配焊接好排针得天空星来使用的,先做说这个只是我们后续可能会推出纯筑基学习板的版本。
3.2 电源路径介绍

电源是开发板的 心脏 ,是能量来源,读懂电源框图是理解整个硬件架构的第一步。这张框图设计涵盖了输入保护、降压转换、隔离供电、多级稳压等关键环节,大家也能通过看这个图来初步了解板子上的外设。
筑基学习板提供了两种常见的接口,8V-24V的两种供电方式框图中也是和实物对应的:DC圆孔插座(5.5*2.5mm) 和 2P绿色螺钉端子。你可以用标准的DC电源适配器,也可以用实验室电源通过接线来供电。宽压输入意味着常见的 12V 和 24V 适配器都能用,如果你做普通直流电机驱动的话那建议用12V,如果要驱动步进电机,那用24V的话步进电机的性能会更强一些。
通过拨动开关来选择用从哪来的电源之后,会经过一个防反接 + 过流保护 (单向TVS + 自恢复保险丝)电路,初学者最容易犯的错就是正负极接反。防反接设计能保证用户把电源接反了也不会烧板子。单向 TVS (瞬态电压抑制二极管) 在这里不仅防反接,还能吸收瞬间的高压浪涌,这里的过流保护是靠一个5A的自恢复保险丝来实现的,如果板子上有短路,电流激增,自恢复保险丝会变热断开电路;故障排除冷却后,它又会自动恢复导通。
这里共模滤波器的作用是滤除 共模干扰 (比如直流电机和步进电机引起的干扰、外部电源线引入的高频噪声等)。
这里串联了一个极小的电阻(15毫欧)。配套的 INA226 芯片(是图中下方的绿色区域里面的设备)通过测量这个电阻两端的微小压差,就能算出总输入电流,还能测量输入电压。
接下来就到了8V~24V电源这个主供电了,他有两个去向:
一 给大功率电机驱动供电:
- TMC2209 (静音步进电机驱动芯片): 3D打印机常用的驱动。
- AT8236 x 2 (直流电机驱动芯片): 两路直流电机驱动。
二:到了DCDC降压芯片 (XL4015E1):
- 将输入的 8~24V 高压,转换成 5V,供给后续用电器。
经过DCDC后的电压就降成了5V,接下来需要再经过一个过压保护电路(TL431 + PMOS管组成的 ):如果前面的 XL4015E1 坏了(比如被击穿),输出了超过 5.3V 的电压,这个电路会迅速切断后级供电。添加这个主要是考虑到大家在学习的时候有可能会外接其他更加昂贵的设备,比如说给庐山派供电或者接其他AI模块,或者直接用筑基学习板上的5V给其他各种传感器和开发板供电,防止高压直接灌入后级昂贵的设备,这也是为了提高我们开发板的可靠性和稳定性。
从 5V电源 左边第一条路径开始说吧,它的直接供电对象有功放(HT6872)、RGB灯(WS2812)、有源蜂鸣器、24位ADC(HX711)。这些器件对电压要求是 5V,且对电流有一定要求。两路隔离的5V电源也是从这里获取电流的。
如果你不驱动电机的话也可以直接把TYPE-C线插入天空星核心板上面的TYPE-C座子上,就可以让筑基学习板上的所有5V设备和3.3V设备来供电了,为了保护电脑 USB 口不被烧坏,这里加了限流芯片(MT9700)。如果板子索取电流超过 2A,它会掐断,保护你的电脑主板。
两个 5V隔离电源 能把地线(GND)和电源线完全隔离开。用来供给 CAN总线、RS485总线、继电器、光耦等设备。
板子上绝大部分设备工作在3.3V,为了互不干扰,框图里设计了三路独立的 3.3V 转换。
有三路 LDO (SCJA1117B-3.3)
- SKYSTAR_+3V3: 专门给 天空星核心板 供电。保证 核心板运行最稳定。
- ONBOARD_+3V3: 给 板载传感器(如陀螺仪、温湿度计、EEPROM、Flash等)供电。
- EXT_+3V3_OUT: 专门给 外接排针 供电。如果你外接的模块短路了,只会影响这一路,不会导致 单片机 复位或传感器掉电。
以上的三路LDO,每一路都有MT9700限流,避免该路异常时影响其他路。具体的板载设备在本小节就不过多介绍了,大家可以继续往下看。
3.3 原理图介绍
本筑基学习板,总共有二十页原理图,想要更清晰的看具体选型和电路,请直接访问我们的开源链接,直接用嘉立创EDA专业版来打开查看。
【TODO】放筑基学习板的开源链接
3.3.1 PIN_OUT

本页原理图主要负责将天空星核心板的引脚引出,并分配给筑基学习板上的各个功能模块。页面上方两个大的连接器 H1 和 H2 是用来插 天空星 核心板的排母。原理图中的网络标签(如 PA0, PB5 等)代表了 STM32 芯片的具体引脚。需要注意有些是电源引脚。
左边是一个LDO和一个MT9700的限流开关,是底板专门用来给天空星核心板来供电的。
3.3.2 MAIN POWER SUPPLY

这一页是筑基学习板的主电源系统,负责将输入的电能转换为系统各部分所需的电压。基本都有详细的注释。
DC头&螺钉供电-7-24V转5V电路涉及两个输入口,DC1是DC 头 (5.5*2.5mm) ,P3是2P接线端子(3.81mm间距),SW1是大电流拨动开关,只有一个电源口输入时,这个开关可以作为开关使用,同时两个口供电时可以作为电源选择。U4和D3分别是自恢复保险丝和单项TVS,组合实现了过流过压防反接功能。L2是5A的共模滤波器。
采样电阻R3是给后面的I2C设备,INA226用来检测电流使用的,这里先跳过。
再往右边看,就到了我们的DCDC降压-XL4015E1,U3,负责将输入的 8-24V 降至 5V (DCDC_OUT_VCC_5V),可以看到我们这里用料毫不吝啬,输入输出的U5和U6都用的低ESR的固态电容,电感也用的是一体成型的金属电感。
R6和R10是DCDC的反馈电阻,这里为了精度用的是千分之一的,计算公式是这样的:VOUT=1.25*(1+R6/R10)=1.25*(1+10k/3.3K)=1.25*4.303≈5.0379。
后半段虚线框里面的是过压保护电路,由TL431(U7)和PMOS管(Q1)组成,TL431内部基准为2.495V左右。 U(shut)=2.495*(1+(R4/R9))=2.495*(1+(1.69k/1.5k))≈5.306V超过约5.3V,Q1就会自动关闭输出。小于5.3V,则DCDC输出的5V会顺利导通到DCDC_OUT_VCC_5V,一旦超压,这个MOS管就会自动关断,DCDC_OUT_VCC_5V自然也就和DCDC的输出断开了。上面的R2就是个0欧电阻,如果你不需要这个过压保护电路,可以把这个R2给焊接上去或者用烙铁+焊锡丝把他两端连起来。
下面就是一些LOD和限流保护,右下角是三个2x5P的排针电源输出口,可以分别输出3.3V和5V,方便各位给其他设备供电,需要注意备注里面的最大电流。
3.3.3 ISOLATED POWER SUPPLY

左边的LED1是底板的供电指示灯,只要3.3V电源正常这个灯就会亮。
右边是两个隔离电源模块,用来供给 CAN总线、RS485总线、继电器、光耦等设备。具体哪些设备用到了可以看后续的原理图。
3.3.4 ETH

左上角是以太网功能的引脚分配,使用了RMII接发,这里使用的phy芯片是LAN8720A,他把单片机引脚的数字信号翻译为网线上的差分信号,HR911105A (J1) 是自带网络变压器的 RJ45 网口插座接口。
3.3.5 CAN-RS485

左上角是CAN和RS485的引脚分配情况。他俩都是半双工通信的,只不过CAN的接收和发送不需要单独的引脚来切换,RS485的转换芯片需要进行发送和接收切换的,我这里用一个下拉电阻让这个引脚默认处于低电平,也就是说让芯片默认处于接收状态。
CAN总线电路 (右上角)
- 收发器 (U19 - TJA1042T):
- 这是CAN总线的物理层接口芯片,负责把TTL电平(MCU能听懂的0和1)转换为差分信号(CANH/CANL,抗干扰能力强)。
- 数字隔离 (U18 - CA-IS3722CHS):
- 它将MCU侧的信号(
MCU_CAN_TX/RX)与总线侧的信号(CHIP_CAN_TX/RX)完全隔离开。注意看电源,左边是ONBOARD_3V3,右边是IPS1_VCC_5V(我们在前面提到的隔离电源)。这意味着即使外部CAN总线被误接了高压电,烧毁的也只是右边的收发器,天空星核心板会安然无恙。
- 它将MCU侧的信号(
- 终端电阻 (R38 & JUMP3):
- CAN总线要求在两端并联120Ω电阻以消除信号反射。这里通过跳线帽
JUMP3来选择是否接入这个电阻。为了满足更高的要求,这里采用了精度为百分之一的1206封装的电阻,避免总线故障时造成终端电阻烧毁问题。
- CAN总线要求在两端并联120Ω电阻以消除信号反射。这里通过跳线帽
- 保护器件 (D4 - PESD2CAN):
- 专门针对CAN总线的ESD(静电)保护二极管,防止插拔时的静电打坏芯片。
RS485电路 (中间)
- 收发器 (U22 - SP485):
- 负责RS485协议的物理层转换。其实RS485在程序里面就是串口,只不过经过了这个收发器转换之后就能外接多个设备了。
- 双隔离方案 (U20, U21):
- RS485不仅有TX/RX数据线,还有一个方向控制脚(RE/DE)。这里我为了彻底隔离,使用了两颗隔离芯片来同时隔离数据信号和控制信号。
- 保护与终端 (U23, R40):
CDSOT23-SM712(U23) 是一颗非常经典的RS485专用TVS管,能抗雷击浪涌。R40是120Ω终端匹配电阻,同样通过跳线选择。
初学者要注意原理图中地线符号的区别。
GND是系统地,IPS1_GND是隔离地。PCB布线时这两个地绝对不能连在一起,否则隔离就失效了。
左下角就是CAN和RS485的实际对外接口了,用的是3.81mm间距的插拔式接线端子。
3.3.6 EXT-SDIO-SPI-2xUART-INDEP-UART

还是老规矩,左上角的是具体的引脚分配,串口2是独立的,直接在筑基学习板上通过排针 引出来了。在天空星核心板上面,TF卡座用到的的信号也通过排针引出来了,但是平时对于STM32来说TF卡也不是必须的,只是需要用到大文件存储的时候才会用到,所以这里我想把SDIO引脚也引出来给各位用户使用,同时要做到TF卡插入后,不能影响TF卡数据的读取。
再重新回顾一下天空星核心板上关于TF卡座的原理图:

可以看到SD_CARD_DET这个连接到了TF卡座上面的9号引脚,当TF卡没有插入时,这个引脚被R20这个上拉电阻拉为高电平,TF卡插入后,卡座内部触点和GND导通,该引脚变为低电平,通过这个特性,我们就可以通过引脚来判断TF卡的插入状态了。
再看一下天空星核心板的层次总框图,具体引脚是哪些呢? 
可以看到这里的SDIO部分用到的引脚就是我们上面在筑基学习板中分配用到的D0到D3,CLK和CMD等。再重新看回筑基学习板的原理图EXT-SDIO-SPI-2xUART-INDEP-UART,中间的U24到U29是一堆单刀双掷模拟开关,控制它们切换的信号是TF_OR_EXT_IO_SWITCH,这个网络连接到了PD3引脚,也就是天空星核心板上面TF卡座的检测脚上,其在天空星核心板上被上拉,默认为高电平。也就是说不插入TF卡为高电平,插入TF卡为低电平,利用这个特性,就可以制作自动切换电路了,为了让用户在使用时更清楚的明白外扩的排针能否使用,加了一个LED灯作为提示,当TF卡插入时,这个LED2就会自动亮起,提示用户当前排针引出的信号是无法使用的。

上面的实物图标注里面的1就是上面说到的LED2了,没亮时说明上面标注为2的排针口我们可以正常使用,亮了则说明当前天空星核心板上面的卡座插入了TF卡,上面的排针口当前无法使用。
这个排针口本身可以作为SDIO信号口来使用,也可以复用为SPI3,或者两个串口(UART4和UART5)。
3.3.7 SPI DEVICE

左上角还是引脚分配,要注意每个SPI设备都需要一个独立的CS片选引脚。这里还有三个模拟开关,主要是因为我们SPI2用到的三个引脚同时也用于I2S2(音频用的)。STM32等MCU的SPI接口和I2S接口通常是共用同一个硬件外设模块的。也就是说,这一组引脚,你要么配置成SPI读写传感器,要么配置成I2S推音频数据。
最上面是对外引出的排针,大家可以用来接其他的SPI设备。
本页图里面总共有两个SPI设备:
SPI Flash (U30 - W25Q128)
- 这是一颗128Mbit(16MB)的外部存储芯片。可以用于存放图片、字库或者程序固件。
六轴传感器 (U32 - ICM-42688-P)
- 这是一颗高性能的IMU(惯性测量单元),包含3轴加速度计和3轴陀螺仪。是无人机、平衡车、运动手环的核心传感器。有了这个,我们就可以检测开发板的当前姿态状态了,做平衡车的硬件支持也有了。
3.3.8 AUDIO

左上角的引脚分配要结合上一页原理图的SPI部分来一起理解,这里只有MCLK和WS是独立的,其他信号只能和SPI2的信号复用,这里还有一路I2C1,主要是用来配置ES8388的寄存器(音量、采样率、通道选择等)。
左下角是音频信号相关的麦克风和耳机输出了,因为耳机口是用户经常手触碰的地方,极易引入静电。所以我在这里每个信号线上都加了TVS二极管,防止芯片被静电打坏。
3.3.9 POWER AMP

本页是从上面的音频芯片ES8388的通道2引出来的两路音频功放,外接两个喇叭就可以同时播放左声道和右声道的音频了。既可以通过MX1.25接口来外接两个喇叭,也可以通过座子背面的焊接口通过焊接的方式来连接喇叭。
上一页的3.5mm耳机接口输出的比较微弱的音频信号,只能用来驱动耳机。这页的两个HT6872属于D类功放,可以用来驱动喇叭,这样开发板接了喇叭后就能直接发出音频了。
3.3.10 I2C DEVICE

I2C 是一种非常省线的通信协议,只需要两根线(SDA数据,SCL时钟)就能挂很多设备(只要设备的地址不重复)。这一页都是关于I2C设备的,我们筑基学习板上总共有六个IIC设备,我们把这六个设备都挂在了I2C1总线上:
| 设备名称 | I2C地址 |
|---|---|
| 音频 ES8388 | 0x10 |
| 时钟 SD3078 | 0x32 |
| EEPROM AT24C02 | 0x50 |
| 温湿度 AHT20-F | 0x38 |
| 电压电流 INA226 | 0x40 |
| IO扩展 PCA9555 | 0x20 |
除了ES8388(在第八页原理图)和PCA9555PW(在下一页原理图)不在本页,其他的四个I2C设备都在这里了。
- AT24C02C (U40): EEPROM。相当于一个微型硬盘,断电后数据还在,可以用来存一些配置参数,相较于SPI FLASH,他不需要擦除后使用,当前缺点也比较明显:容量小+速度慢。为了后续更顺畅的学习I2C相关知识,这里增加了一个四位的拨码开关(SW2),连接到了AT24C02的,WP,A0,A1,A2上面,我们可以外部直接改变这个EEPROM的保护状态和自身的I2C地址。
- SD3078 (U41): RTC (实时时钟)。相当于手表的机芯,自带电池接口 (VBAT),即使主板断电,它也能靠纽扣电池继续走时(需要提前装好,筑基学习板标准版是没有赠送的)。
- INA226 (U42): 功率计。它可以测量电压和电流,算出一共消耗了多少功率。
- **AHT20-F(U43): ** 温湿度传感器。可以检测环境中的温度和湿度。
板子在第一版的时候是没有这两个PCA9517(U77和U78)中继器的,但是当时实际测试发现I2C的上升沿都超过2000ns了,板子太大了。所以为了保证通信速度,这里在V1.1版本的筑基学习板上的I2C1总线上面加了两个中继器,增加后,I2C的上升沿最低到了约600ns。分别给板内I2C设备和排针I2C1输出口加强驱动能力。
为什么加了中继器就能提高I2C的通讯速度呢?
I2C 协议限制总线电容不能超过 400pF。如果挂的设备太多或线太长,波形会变圆(上升沿变缓) ,导致通讯失败。PCA9517 把总线切分成两段,隔离了设备电容,增强了驱动能力。
3.3.11 I2C GPIO EXP

本页的核心器件就是这个GPIO扩展芯片,PCA9555PW (16路 I/O 扩展芯片)。它是通过I2C来进行扩展IO口的。总共扩展了16个IO口,其中IO0的八个IO接在了3.1章节介绍到的【八路拨码开关】上面,方便实现后面做综合历程时的冲突资源自动切换。IO1的八个IO外接了八个LED,也直接连通至一个2x5p的排针上面,可以外接其他设备做输入输出使用,那八个LED灯会直接体现当前的GPIO口的状态。
3.3.12 INT_STEP_MOTOR_DRIVE

左上角依旧是相关的引脚分配(三个IO,分别控制脉冲,使能和方向),下面是3个单刀双掷模拟开关(U48到U50),通过拨码开关的BIT8,也就是INT_OR_EXT_STEP_MOTOR_SWITCH这个信号的高低电平状态来控制用板载的步进电机驱动,还是通过光耦来外接外部的步进电机驱动。
本页是内部的步进电机驱动,TMC2209 (U47静音步进电机驱动),这个是之前DIY的3D打印机很火的驱动芯片。
RJ1是用来调节步进电机驱动的电流的,需要根据你选择的步进电机的额定电流参数来调节,根据器件手册,我们可以通过调节17脚(VREF)的电压来调节驱动器的电流,计算公式:I=(Vref/2.5)*1.92A,我这里选择的可调电阻的阻值范围是20K欧姆,上电阻是22K,下电阻是1.8K,可调电阻默认出厂时是处于中位的,所以我们板子出厂的步进电机驱动电流为(1.347/2.5)*1.92 = 1.034 A,最小电流为(0.21/2.5)*1.92 = 0.154 A 最大电流为 (2.49/2.5)*1.92 = 1.911 A,需要注意,如果要大电流长时间使用,需要增加散热片或者风扇,防止高温积热导致器件损坏。
SW3是一个3位的拨动开关,调节MS1和MS2可以控制该步进电机驱动的细分默认是8细分,SPREAD可以控制驱动芯片的驱动方式,默认是静音优先,可以更改为动态性能优先。

①:是前面介绍到的RJ1,顺时针旋转可以减小驱动电流,逆时针转可以增大驱动电流。
②:是专门引出来的VREF测试点,用万用表测量这个位置的电压,就能计算出当前板载步进电机驱动TMC2209的驱动电流,上面有详细介绍,这里不再赘述。
③:是SW3,拨动可以改变细分设置和驱动性能设置,详情看原理图SW3下面的那个表格。
3.3.13 EXT_STEP_MOTOR_CONNECTOR

本页是外部步进驱动器的光耦电路,用到了三个光耦(U51: TLP2362, U52/U53: EL357N),单片机(天空星核心板)发出的信号(STEP脉冲、ENN使能、DIR方向)点亮光耦内部的发光二极管,光照到次级侧的三极管导通,从而在输出侧产生信号。常见的步进电机驱动器都是使用光耦来通讯的,主要是为了实现电气隔离,防止驱动器的浪涌电流烧毁脆弱的单片机引脚(毕竟天空星核心板的排针引脚就是直连芯片脚的)。这里脉冲信号用的是高速光耦,专门用于传输高频的PWM脉冲,保证电机高速旋转时不丢信号。而 U52/U53 用的是普通的 EL357N,因为方向和使能信号变化频率很低,不需要高速光耦,主要也是为了节约成本。不过大家写程序时需要预留一下这个信号的传递时间。避免方向还没改变时就输出脉冲信号造成步进电机运转异常。
这里的对外接口采用的共阳极接法,PUL+, ENA+, DIR+ 全部连接到了 IPS2_VCC_5V(隔离电源2的5V输出)。一般常见的步进电机驱动器都是兼容5V供电的,需要你购买前向商家确认清楚。
接下来展示一下天空星·筑基学习板外接步进电机驱动器的实物图,外部步进电机驱动是需要额外供电的,这里也把另外一个步进电机接在板载步进电机驱动上面,不过由于板子在设计上就只能驱动一个步进电机,所以这俩电机是不能同时运行的。

3.3.14 DC_MOTOR_DRIVE

左上角是具体的引脚分配,本页是板载的两路 H桥直流电机驱动电路,可以用于直接驱动小功率直流减速电机。
这里用了两个 AT8236 (U54, U55) 芯片。通过内部四个MOS管的开关组合,既能控制电流方向(实现正反转),也能控制导通时间(PWM调速)。每个直流电机驱动都在ISEN脚外接了一个150mΩ的电阻,根据芯片手册里面的计算公式,这里设定的保护电流约为2.2A。避免电机堵转时造成驱动芯片的烧毁。
右下角还有两个模拟开关,可以控制这组PWM信号(PB14_TIM12_CH1和PB15_TIM12_CH2)是去控制 舵机 (SERVO) 还是 直流电机 (DC_MOTOR)。拨码开关在出厂时默认是去控制舵机的,所以大家如果要同时使用两个直流电机驱动的话,要记得进行那八路拨动开关的BIT5设置,或者通过软件I2C1来控制PCA9555PW的IO0端口来强制控制这两个PWM给直流电机2使用。
3.3.15 ENCODER

左上角的引脚分配标明这里总共有三个编码器接口,电机有了编码器,天空星核心板就能知道电机到底转了多少圈、转到了什么位置。由于这些脚都是直连芯片管脚的,这里都加入了ESD保护二极管。
右下角依旧是两个模拟开关,默认是通向板载的EC11编码器的,如果连接电机2的编码器,需要进行那八路拨动开关的BIT6设置,或者通过软件I2C1来控制PCA9555PW的IO0端口来强制控制这两个编码器通道给直流电机2使用。
两个直流电机都用的是AB相编码器接口,步进电机编码器接口在AB相的基础上又加了一个Z相信号(电机每转一圈给一个信号),不过STM32F4定时器的ENCODER模式并不支持ABZ模式,所以这里把Z相通道接到了一个外部中断引脚上,写程序时需要注意。
3.3.16 WS2812

天空星筑基学习板上面板载了三个WS2812,RGB灯,同时为了避免点亮时刺眼,我们会附送配套的3D打印挡光板+0.08mm白色均光片+1mm黑半透亚克力挡光板。
天空星核心板对外输出IO电平是3.3V,但市面上基本上所有WS2812的通讯电平都是5V的,所以这里用了两个SN74LVC1T45DBVR来把3.3V的电平转换为5.0V的电平。
依旧有一个模拟开关,既可以用单总线协议来驱动板载的三个灯,也可以通过八路拨码开关的BIT7改变模拟开关的通道,来驱动外部灯条,通过2P的排针接口外接灯条或者灯板就可以了。
3.3.17 BEEP ADC SERVO DS18B20

这一页是杂项外设,依旧左上角是引脚分配相关的,包含了有源/无源蜂鸣器、电位器ADC、舵机接口和温度传感器接口。
这里的有源蜂鸣器和无源蜂鸣器共用了一个IO,在蜂鸣器两端都增加了续流二极管,避免关断瞬间产生反向高压,保护驱动三极管不被击穿。
R123是一个阻值为10kΩ的旋转可调电位器,可以用来学习单片机的ADC采集。
舵机接口就是一个2x3p的排针,供电是5V的,和市面上常见的舵机引出线是一致的,信号输出又增加了两个三极管,将天空星引脚的3.3V电平转换为5V的电平。
左下角的U70其实就是个类似排母的座子,方便大家来接各种单总线的设备,比如DS18B20和DHT11。
3.3.18 HX711

本页的引脚是和上一页中的ADC对外的排针接口引脚是复用的,实际使用时只能二选一。
HX711支持3.3V供电和5V供电,但是手册介绍5V下的性能会更好,抗干扰能力更强,所以这里采用5V来供电,左上角用了两个 SN74LVC1T45DBVR (U71, U73)来进行电平转换,把3.3V转为5V或者把5V转为3.3V。
PD_SCK(时钟) 是 MCU 发给 HX711 的,方向 A->B。DOUT(数据) 是 HX711 发给 MCU 的,方向 B->A
有了这个芯片,本筑基学习板就可以接承重传感器来做一个电子秤了。
3.3.19 LED KEY EC11 RELAY LCD

本页主要包含了人机交互(屏幕、按键、旋钮)和强电控制(继电器)部分。
左上角依旧是引脚分配相关的,写程序的时候需要用到。
继电器用了一个光耦来进行光电隔离,控制信号 RELAY_CONTROL_PIN 先经过光耦 EL357N,再驱动继电器。这是双重保险:光耦隔离+继电器物理隔离,确保强电完全不会碰到MCU。这里继电器本身也是用隔离模块的电来供电的,对外接口是一个带盖板的7.62mm间距的栅栏式接线端子,因本开发板的定位是学习板,请各位在学习中只能连接36V以下的直流电。
右边是一个LCD的FPC接口,可以连接立创开发板的2.0寸屏幕扩展板,会和筑基学习板一起上线售卖的。
板载有三个按钮,SW5和SW6分别按钮1和2,按钮3的信号接在了EC11编码器上面,按下即可触发,同时EC11编码器也可以旋转,天空星捕捉EC11_ENCODER_A和EC11_ENCODER_B的个数和相位差就能计算出当前EC11编码器旋转了多少,是顺时针还是逆时针旋转。
这里的LED16用的GPIO和屏幕背光是同一个引脚,后续学习PWM章节时会用到,如果你使用了筑基学习板配套的
屏幕,那你可以把JUMP13上面的短接帽给拔掉。
3.3.20 FUNCTION SELECTION

这里的SW7就是我们在3.1章节中具体介绍的八路拨码开关,他主要是用来控制板子上众多冲突资源的模拟开关,可以返回去看一下3.1.3 资源冲突对照表章节。具体原理和电阻的选择看3.1.2 八路拨码开关是如何控制这些模拟开关进行IO切换的?章节。
3.4 如何给筑基学习板供电
供电前需要先确认一下你是否需要驱动板载的两个直流电机驱动和步进电机驱动。如果不需要驱动电机,那由5V供电就够了,如果要驱动电机相关外设,那么必须供电12V或者24V。
3.4.1 不需要驱动电机
- 【首推】用天空星核心板上面的TYPE-C来供电,至少需要500mA的电流。如果要外接功放的话,那建议用至少能供给1A的电源。【供5V】

- 通过天空星调试口的5V和GND给整个底板供电【供5V】

用电源旁边的5V0排针给板子供电【不建议,容易接反,这里可没有防反接保护哦,且只能外接5V】,另外的O3V3和O5V0都只能对外输出,无法对内供电,需要注意。

3.4.2 需要驱动电机
只有两个电源供电口,无法同时输入,要么用DC座来供电,把拨动开关向下拨动,要么用上面的接线端子来供电,把拨动开关向上拨动,只能二选一。建议用12V或者24V电源适配器来供电,具体要看你介入电机的额定电压。
