资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

接口介绍

板卡接口

edgeboard_dk1a接口.png

EdgeBoard DK-1配置接口丰富。提供40PIN扩展接口(含GPIO、UART、PWM、I2C、SPI)、RJ45网口、USB接口、全尺寸HDMI接口、3.5mm音频接口、MIPI接口的相机/显示屏接口等。

40PIN接口

接口简介

40PIN接口是EdgeBoard DK-1A为方便嵌入式系统项目开发、快速搭建原型机而提供的扩展接口,使用40PIN接口可以方便的接入各种传感器、模块。

40pin.png

40pin_1.png

WiringPi 编码 alt1 func default func 物理引脚BOARD编码 default func alt1 func WiringPi 编码
3.3V 1 2 5V
SDA0 3 4 5V
SCL0 5 6 GND
7 TXD3 GPIO42 7 8 TXD0 GPIO19
GND 9 10 RXD0 GPIO18
0 GPIO8 11 12 GPIO38 PWM1 1
2 GPIO9 13 14 GND
3 GPIO10 15 16 GPIO37 4
3.3V 17 18 GPIO36 5
SPI1_SDO 19 20 GND
SPI1_SDI 21 22 GPIO40 6
SPI1_SCLK 23 24 SPI1_CS0
GND 25 26 SPI1_CS1
SDA3 27 28 SCL3
21 RXD3 GPIO43 29 30 GND
22 GPIO12 31 32 PWM0 GPIO39 26
23 GPIO16 PWM2 33 34 GND
24 PWM3 GPIO15 35 36 GPIO41 27
25 GPIO13 37 38 GPIO21 28
GND 39 40 GPIO11 29

注意:
1.Pin19、Pin24作为GPIO时仅支持输出模式,不能作为输入接口;
2.Pin8、Pin10默认为系统debug接口,会打印输出相关log信息;

功能 引脚
UART UART0_Debug_TX:PIN8(GPIO19)
UART0_Debug_RX:PIN10(GPIO18)
UART3_TX:PIN7(GPIO42)
UART3_RX:PIN29(GPIO43)
PWM PMM0:PIN8(GPIO39)
PWM1:PIN12(GPIO38)
PWM2:PIN33(GPIO33)
PWM3:PIN35(GPIO35)
I2C I2C0_Data:PIN3
I2C0_Clock:PIN5
I2C3_EEPROM_Data:PIN27
I2C3_EEPROM_Clock:PIN28
SPI SPI1_MOSI:PIN21
SPI1_MISO:PIN19
SPI1_SCLK:PIN23
SPI1_CS0:PIN24
SPI1_CS1:PIN26

方案简介

WiringPi方案

EdgeBoard DK-1A默认预装WiringPi库 WiringPi是一个用C语言编写的接口(Raspberry Pi)软件包,它主要用于GPIO引脚控制、串口通信、SPI通信及I2C通信等功能。
WiringPi官方网站WiringPi官网,非官方python版本WiringPi-Python
为方便广大开发者快速使用,百度在EdgeBoard DK-1A上适配了WiringPi库,但由于底层硬件不完全一致,仍有部分差异,详细适配情况详见下表:

模块 API 是否支持 功能限制
Setup int wiringPiSetup(void) Y
int wiringPiSetupSys(void) Y
int wiringPiSetupGpio(void) Y
int wiringPiSetupPhys(void) Y
core functions void pinMode(int pin, int mode) Y IN(0), OUT(1), SOFT_PWM(4), SOFT_TONE_OUTPUT(5), PWM_OUTPUT(2)
void pullUpDnControl(int pin, int pud) ?
int digitalRead(int pin) Y
void digitalWrite(int pin, int value) Y
void pwmWrite(int pin, int value) Y
int analogRead(int pin, int value) *2
void analogWrite(int pin, int value) *2
Pi Specifics void digitalWriteByte(int value) ?
pwmSetMode(int mode) Y
pwmSetRange(unsigned int range) Y
pwmSetColck(int divisor) Y
piBoardRev(void) ?
wpiPinToGpio(int wPiPin) Y
physPinToGpio(int physPin) Y
setPadDrive(int group, int value) ?
Timing unsigned int millis(void) Y
unsigned int micros(void) Y
void delay(unsigned int howLong) Y
void delayMicroseconds(unsigned int howLong) Y
Priority, Interrupts and Threads int piHiPri(int priority) Y
int waitForInterrupt(int pin, int timeOut) Y
int wiringPiISR(int pin, int edgeType, void (*function)(void)) Y
pinThreadCreate(name) Y
piLock(int keyNum) Y
pinUnlock(int keyNum) Y
Serial Library int serialOpen(char *device, int baud) Y
void serialClose(int fd) Y
void serialPutchar(int fd, unsigned char c) Y
void serialPuts(int fd, char *s) Y
void serialPrintf(int fd, char *message, ...) Y
int serialDataAvail(int fd) Y
int serialGetchar(int fd) Y
void serialFlush(int fd) Y
SPI Library int wiringPiSPISetup(int channel, int speed) Y
int wiringPiSPIDataRW(int channel, unsigned char *data, int len) Y
I2C Library int wiringPiI2CSetup(int devld) Y
int wiringPiI2CRead(int fd) Y
int wiringPI2CWrite(int fd, int data) Y
int wiringPiI2CWriteReg8(int fd, int reg, int data) Y
int wiringPiI2CWriteReg16(int fd, int reg, int data) Y
int wiringPiI2CReadReg8(int fd, int reg) Y
int wiringPiI2CReadReg16(int fd, int reg) Y
Shift Library uint8_t shiftln(uint dPin, uint8_t cPIN, uint8_t order) ?
void shiftOut(uint8_t dPin, uint8_t cPin, uint8_t order, uint8_t val) Y
Software PWM Library int softPwmCreate(int pin, int initialValue, int pwmRange) Y
void softPwmWrite(int pin, int value) Y
Software Tone Library int softToneCreate(int pin) Y
void softToneWrite(int pin, int freq) Y

gpio命令行工具适配情况如下:

分类 子命令/参数 是否支持 功能限制 示例 备注
usage -h Y gpio -h 帮助信息
-v ?
-g Y gpio -g read 11 使用bcm gpio number
-1 Y gpio -1 read 40 使用bcm gpio number
-p ? 示例 备注
-x ? 示例 备注
input/output mode Y in, out, pwm gpio mode 28 in/out 使用wpi number
write Y gpio write 28 up/down 使用wpi number
pwm Y
read Y gpio read 28 使用wpi number
awrite ?
aread ?
readall Y gpio readall
allreadall ?
wfi ?
kernel model load spi ?
load i2c ?
i2c detection ?
/sys/class/gpio export Y gpio export 405 out/in 使用sys gpio number
unexport Y gpio export 405 使用sys gpio number
unexportall *1
exports *1
unexportall *1

其中,是否支持列中:

Y: 已支持
?: 暂未验证
1: 软件可支持,待开发
2: 硬件不支持、废弃、需要拓展模块

WiringPi使用

WiringPi安装

打开终端,输入以下命令安装WiringPi库。

sudo apt update
sudo apt install wiringpi

可使用以下命令查看WiringPi版本,验证是否安装成功。

gpio -v

如打印WiringPi版本信息,则安装成功。

WiringPi接口调用

具体调用可参考WiringPi官方使用流程,Examples/How-To

其它工具

i2c-tools

i2c-tools是Linux下的一个I2C工具,可以用来检测I2C设备。

i2c-tools的安装:

sudo apt install i2c-tools

i2c-tools的使用: 如查看总线已挂载从设备:

i2cdetect -y -a -r 0 

其中0表示0号I2C总线,若设备连接到pin3和pin5上即为0,若连接到pin27和pin28上即为3。 i2ctools的详细用法可参见:https://cloud.tencent.com/developer/article/2009823

python smbus2库

smbus2是python的一个I2C库,可以用来检测I2C设备。 smbus2的安装:

pip install smbus2

smbus2的使用参考:https://pypi.org/project/smbus2/

spi-tools

spi-tools是Linux下的一个SPI工具,可以用来检测SPI设备。 spi-tools的安装:

sudo apt install spi-tools

spi-tools的使用:查看设备:

spi-config -d /dev/spidev0.0 -q

spi-tools的详细用法可参见:spi-tools

spidev工具

安装spidev库

pip install spidev

spidev库详细使用参考:spidev库

Uart-GPIO功能切热换

板卡支持对物理Pin7、Pin29进行Uart-GPIO功能的热切换。 需保证PPOS版本>=1.0.1。若系统版本过低,可参考PPOS查询方法详见系统相关的系统版本查询系统热更新章节。 打开终端,输入以下命令进行操作

sudo su                         #切换到root用户
cd /sys/class/tty/ttyS3/device  #切换到对应目录
echo uart3 > berlin_uart        #切换UART模式
# 此时Pin7和Pin29为UART功能:
#    Pin7为TXD
#    Pin29为RXD
echo uart3_gpio > berlin_uart   #切换GPIO模式
# 此时Pin7和Pin29为GPIO功能:
#    Pin7为GPIO42,WiringPi编号7
#    Pin29为GPIO43,WiringPi编号21

注:reboot后失效,会恢复默认状态!

RJ45接口

RJ45接口.png

EdgeBoard DK-1A提供1个RJ45接口,通过RJ45接口可连接网络。

USB接口

USB接口.png

EdgeBoard DK-1A提供2个TypeA型USB2.0和2个TypeA型USB3.0接口。

3.5mm音频接口

3.5mm音频接口.png

EdgeBoard DK-1A提供3.5mm音频接口。 3.5mm音频接口使用4极CTIA Standard标准,线序为从尖端到根部依次是左声道、右声道、电源地、麦克风,可参考下图: 3.5mm音频接口_2.png

MIPI接口-CSI

MIPI接口-CSI.png

EdgeBoard DK-1A提供1个MIPI接口(2lane),可通过MIPI接口连接CSI摄像头。

HDMI接口

HDMI接口.png

EdgeBoard DK-1A提供1个全尺寸HDMI视频输出接口。

TypeC接口

TypeC接口.png

EdgeBoard DK-1A提供1个TypeC接口,用于设备供电。供电建议为5V3A。可使用USB TypeC接口的电源适配器或者符合电压电流输出要求的充电宝等进行供电。

MIPI接口-DSI

MIPI接口-DSI.png

EdgeBoard DK-1A提供1个MIPI接口(2lane),可通过MIPI接口连接DSI显示屏。

上一篇
快速开始
下一篇
模型推理