目录

引言

开发板和底板的原理图

如果查看I/O地址

NFC传感器开发板

底板原理图

WS63核心板

结束语


引言

在使用润和 WS63 开发板(星闪派物联网套件)进行项目开发时,由于其采用 Hi3861 开发板的底板,常常会遇到查找 I/O 管脚困难的问题。这一问题给开发者带来诸多不便。今天分享一下如何通过阅读星闪WS63的开发板原理图,高效地查找设备的I/O控制管脚,方便将hi3861的程序移植到星闪派来。

开发板和底板的原理图

有关开发板和底板的原理图可以参考:fbb_ws63: fbb_ws63仓是星闪ws63和ws63e解决方案代码仓,搭载LiteOS系统,主要用于智慧家居、IoT网关、电子消费类等应用场景。技术论坛:https://developers.hisilicon.com/forum/0133146886267870001 - Gitee.com

 

为了降低成本,润和的星闪派套件除了核心板之外,都是和hi3861共用底板和外设子板,以上资料不全,其实最全的hi3861的资料参见:src/vendor/hihope/hispark_pegasus/docs/HiSpark_WiFi_IoT智能开发套件_原理图硬件资料.rar · HiSpark/hi3861_hdu_iot_application - Gitee.com

如果查看I/O地址

星闪的WS63核心板虽然可以插入hi3861的底板进行工作,但是它不是和hi3861的核心板完全兼容的,需要修改程序里面的I/O地址才能工作(都让星闪WS63的API和hi3861也不一样,实际需要修改的地方还是比较多的)。不能像hi3861那样看底板上的丝印就能知道GPIO管脚是哪个。现在以NFC传感器为例说明如何看丝印和查找对应的WS63管脚。

NFC传感器开发板

下面是NFC传感器开发板原理图中J1部分:

NFC传感器的J1部分是插在底板的J3上面的。

底板原理图

下面是底板J3的原理图:

我们很容易看到,NFC的I2C接口的SCL、SDA和底板的I2C0SCL、I2C0SDA是对应的,NFC的CSN、IRQ和底板的GPIO09、GPIO10对应的。这些丝印都是针对hi3861的,如果使用hi3861芯片直接从丝印上就可以读到这些信息,使用起来比较方便。但是WS63中不能直接使用这些信息,需要查额外的资料才能知道WS63内部对应的I/O资源是什么。

我们还需要看看底板的J1,它是hi3861和WS63模块共用的底座:

 从这里可以看出,I2C0的SCL/SDA对应着J1的RX/TX,而GPIO09和GPIO10对应着J1的A9和D10。

WS63核心板

WS63核心板原理图中和底板J1插座对应的部分是这样的:

如果我们希望在WS63中控制NFC开发板,I2C的两个管脚对应的是UART1_RX和UART1_TX,而CSN对应的是GPIO09,而IRQ对应的是GPIO07。

我们再看看WS63的I/O复用表(docs/zh-CN/software/IO复用关系.md · HiSpark/fbb_ws63 - Gitee.com

IO/MODE 0 1 2 3 4 5 6 7
GPIO_00 GPIO_00 PWM0 DIAG[0] SPI1_CSN JTAG_TDI
GPIO_01 GPIO_01 PWM1 DIAG[1] SPI1_IO0 JTAG_MODE BT_SAMPLE
GPIO_02 GPIO_02 PWM2 DIAG[2] SPI1_IO3 WIFI_TSF_SYNC WL_GLP_SYNC_PULSE BGLE_GLP_SYNC_PULSE
GPIO_03 GPIO_03 PWM3 PMU_32K_TEST SPI1_IO1 HW_ID[0] DIAG[3]
GPIO_04 SSI_CLK PWM4 GPIO_04 SPI1_IO1 JTAG_ENABLE DFT_JTAG_TMS
GPIO_05 SSI_DATA PWM5 UART2_CTS SPI1_IO2 GPIO_05 SPI0_IN DFT_JTAG_TCK
GPIO_06 GPIO_06 PWM6 UART2_RTS SPI1_SCK REFCLK_FREQ_STATUS DIAG[4] SPIO0_OUT DFT_JTAG_TDI
GPIO_07 GPIO_07 PWM7 UART2_RXD SPI0_SCK I2S_MCLK DIAG[5]
GPIO_08 GPIO_08 PWM0 UART2_TXD SPI0_CS1_N DIAG[6]
GPIO_09 GPIO_09 PWM1 RADAR_ANT0_SW SPI0_OUT I2S_DO HW_ID[1] DIAG[7] JTAG_TD0
GPIO_10 GPIO_10 PWM2 ANT0_SW SPI0_CS0_N I2S_SCLK DIAG[0]
GPIO_11 GPIO_11 PWM3 RADAR_ANT1_SW SPI0_IN I2S_LRCLK DIAG[1] HW_ID[2]
GPIO_12 GPIO_12 PWM4 ANT1_SW I2S_DI HW_ID[3]
GPIO_13 GPIO_13 UART1_CTS RADAR_ANT0_SW DFT_JTAG_TD0 JTAG_TMS
GPIO_14 GPIO_14 UART1_RTS RADAR_ANT1_SW DFT_JTAG_TRSTN JTAG_TCK
UART1_TXD GPIO_15 UART1_TXD I2C1_SDA
UART1_RXD GPIO_16 UART1_RXD I2C1_SCL
UART0_TXD GPIO_17 UART0_TXD I2C0_SDA
UART0_RXD GPIO_18 UART0_RXD I2C0_SCL

 从上表可以看出,UART1_RX和UART1_TX对应的是WS63的I2C1而不是I2C0,所以在移植程序时要讲hi3861访问的I2C的bus id修改一下。

结束语

以上就是通过原理图查找星闪 WS63 开发板 I/O 控制管脚的方法啦。按照这个思路,无论是 NFC 传感器还是其他外设,都能高效定位对应的管脚信息,为 hi3861 程序向星闪派的移植扫清障碍。如果在实际操作中还有其他疑问,欢迎在评论区交流,也可以去文中提到的技术论坛或代码仓获取更多细节。希望这份分享能帮到正在开发的你,祝项目顺利!

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐