介绍

芯片

龙芯2K0300芯片是一款基于LA264处理器核的多功能SoC芯片,可广泛适用于工业控制、通信设备、信息家电和物联网等领域;该芯片采用高集成度设计,可提供丰富的功能接口,满足多场景应用需求,同时支持低功耗技术,能够在低能耗条件下进行高效处理,具有以下特色:

  • 处理器主频1GHz(功耗 < 1W),64位双发射超标量LA264,支持LoongArch指令系统,有286个引脚
  • 16位DDR4-1600控制器,支持ECC校验
  • 32KB一级指令缓存和32KB一级数据缓存,支持ECC校验;512KB二级共享缓存,支持ECC校验
  • 集成2个USB2.0、2个GMAC、1路LCD显示
  • 支持处理器核时钟动态变频;支持主要模块时钟动态关闭
  • 1个I2S、4个CAN-FD、4个SPI、2个QSPI、2个eMMC、2个SDIO、1个LIO、8通道ADC、4个I2C、10个UART,4个PWM、3组TIMER、106个GPIO、RTC、HPET、JTAG等

龙芯LS2K0300久久派上手体验_久久派

开发板

久久派搭载龙芯SOC芯片LS2K0300,板载Ethernet、WIFI / BT、USB、ADC、Audio、Display、RTC等功能或接口,内存容量512M,EMMC容量为4G,电源供电为USB Type C口,有2路拓展引脚

龙芯LS2K0300久久派上手体验_龙芯_02

引脚资源

板载2 x 15 Pin IO接口

PIN信号定义备注PIN信号名称备注
1GND2P3V3
3PWM2GPIO884UART0_TXD
5PWM3GPIO896UART0_RXD
7CAN2_TXGPIO738UART1_TXD
9CAN2_RXGPIO7210UART1_RXD
11CAN3_TXGPIO7512UART2_TXD
13CAN3_RXGPIO7414UART2_RXD
15I2C1_SCLGPIO5016I2C0_SCLGPIO48
17I2C1_SDAGPIO5118I2C0_SDAGPIO49
19GND20GND
21SPI2_CLKGPIO64 / TXD522SPI1_CLKGPIO60 / RXD4
23SPI2_CSnGPIO67 / TXD324SPI1_CSnGPIO63 / RXD8
25SPI2_MISOGPIO65 / RXD526SPI1_MISOGPIO61 / TXD4
27SPI2_MOSIGPIO66 / RXD328SPI1_MOSIGPIO62 / TXD8
29GND30P5V5V电源

LCD接口(可以用FPC54转换成排针引脚来使用)

PIN信号定义备注
1TSX+扩展触摸信号, NC
2TSX-扩展触摸信号, NC
3TSY+扩展触摸信号, NC
4TSY-扩展触摸信号, NC
5、 15、 24、 33、 42、 46、 48GND
6LS2K_GPIO54电源使能(硬件默认上拉)
7LS2K_I2C_SDA0
8LS2K_I2C_SCL0
9、 10、 11、 12NC
13LS2K_GPIO52触摸板中断(硬件默认上拉)
14LS2K_GPIO53触摸板复位(硬件默认上拉)
16 - 23LS2K_LCD_D[0:7]B 数据
25 - 32LS2K_LCD_D[8:15]G 数据
34 - 41LS2K_LCD_D[16:23]R 数据
43LS2K_LCD_HSYNC水平同步
44LS2K_LCD_VSYNC垂直同步
45LS2K_LCD_EN数据有效
47LS2K_LCD_CLK时钟输出
49LS2K_PWM0背光控制(GPIO87)
50 - 54VCC_5V

ADC接口

PIN信号定义备注
1P3V33.3V 电源输出
2GND0
3ADC 通道 40/4 通道可以独立采样, 也可以作为差分采样
4ADC 通道 00/4 通道可以独立采样, 也可以作为差分采样
5ADC 通道 11/5 通道可以独立采样, 也可以作为差分采样
6ADC 通道 51/5 通道可以独立采样, 也可以作为差分采样
7ADC 通道 22/6 通道可以独立采样, 也可以作为差分采样
8ADC 通道 62/6 通道可以独立采样, 也可以作为差分采样
9ADC 通道 33/7 通道可以独立采样, 也可以作为差分采样
10ADC 通道 73/7 通道可以独立采样, 也可以作为差分采样

连接

供电:USB Type C线,这个没有串口功能,只是纯粹的供电

串口:CH340T USB串口线连接UART 0,推荐使用MobaXterm,串口配置波特率115200、数据位8、停止位1、奇偶校验位None

联网:参考 另一篇文章,设置虚拟机网络为桥接方式联网,在串口终端调用命令给开发板分配一个IP,可以实现开发板直连虚拟机PC

udhcpc -i eth0
  • 1.

开发环境

前置依赖

toolchain:loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1.tar.xz

kernel:linux-4.19-0614.tar.gz

rootfs:loongos-qt.cpio

编译内核

先安装bison、flex

sudo apt install bison flex libncurses5‐dev libssl-dev
  • 1.

导入toolchain环境变量

export PATH=$PATH:/home/asensing/loongson/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin
  • 1.

拷贝配置

cp arch/loongarch/configs/loongson_2k300_defconfig .config
  • 1.

配置内核

make menuconfig ARCH=loongarch
  • 1.

编译内核

 make vmlinuz ARCH=loongarch CROSS_COMPILE=loongarch64-linux-gnu- -j8
  • 1.

清理内核

make clean ARCH=loongarch CROSS_COMPILE=loongarch64-linux-gnu- -j8
  • 1.

拷贝到指定位置/boot目录下,设备树默认是编译到内核里边去的

scp vmlinuz root@192.168.137.111:/boot
  • 1.

外设调试

GPIO

以文件系统下GPIO调试为例:

  • 设置和查看GPIO状态:ls -l /sys/class/gpio

  • 导出GPIO:echo XX > /sys/class/gpio/export

  • 取消导出GPIO:echo XX > /sys/class/gpio/unexport

  • 设置GPIO电平值:echo X > /sys/class/gpio/gpioX/value

  • 查看GPIO电平值:cat /sys/class/gpio/gpioX/value

  • 设置GPIO工作模式:echo “out” >/sys/class/gpio/gpioX/direction

  • 查看GPIO寄存器的信息 :/sys/class/gpio/gpiochipX

  • 查看GPIO占用:cat /sys/kernel/debug/gpio

  • 查看GPIO中断:cat /proc/interrupts

循环输出方波

while true; 
do 
	echo 1 > /sys/class/gpio/gpio48/value; 
	sleep 0.1; 
	echo 0 > /sys/class/gpio/gpio48/value; 
	sleep 0.1; 
done;
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

i2c

以i2c-tool工具为例(以BH1750设备调试):

  • 先查看/dev目录下是否有i2c总线节点,没有的话要检查以下设备树
  • 查看i2c总线上的从设备:i2cdetect -y 0
  • 读取数据:i2cget -y 0 0x23 0x00
  • 写入数据:i2cset -y 0 0x23 0x00 0x10

快速开发

在QtCreator中自定义Compilers

龙芯LS2K0300久久派上手体验_LoongArch_03

自定义Debuggers

龙芯LS2K0300久久派上手体验_龙芯_04

添加远程设备

龙芯LS2K0300久久派上手体验_LoongArch_05

配置Kits

龙芯LS2K0300久久派上手体验_LoongArch_06

设置完这几步,即可在QtCreator里边很方便地进行软件的交叉编译以及移植开发

总结

龙芯LS2K0300久久派这个板子很小,几乎跟树莓派一样大,但它的IO资源确实非常丰富,你甚至可以用FPC 54 PIN引出GPIO