介绍
芯片
龙芯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等
开发板
久久派搭载龙芯SOC芯片LS2K0300,板载Ethernet、WIFI / BT、USB、ADC、Audio、Display、RTC等功能或接口,内存容量512M,EMMC容量为4G,电源供电为USB Type C口,有2路拓展引脚
引脚资源
板载2 x 15 Pin IO接口
PIN | 信号定义 | 备注 | PIN | 信号名称 | 备注 |
---|---|---|---|---|---|
1 | GND | 2 | P3V3 | ||
3 | PWM2 | GPIO88 | 4 | UART0_TXD | |
5 | PWM3 | GPIO89 | 6 | UART0_RXD | |
7 | CAN2_TX | GPIO73 | 8 | UART1_TXD | |
9 | CAN2_RX | GPIO72 | 10 | UART1_RXD | |
11 | CAN3_TX | GPIO75 | 12 | UART2_TXD | |
13 | CAN3_RX | GPIO74 | 14 | UART2_RXD | |
15 | I2C1_SCL | GPIO50 | 16 | I2C0_SCL | GPIO48 |
17 | I2C1_SDA | GPIO51 | 18 | I2C0_SDA | GPIO49 |
19 | GND | 20 | GND | ||
21 | SPI2_CLK | GPIO64 / TXD5 | 22 | SPI1_CLK | GPIO60 / RXD4 |
23 | SPI2_CSn | GPIO67 / TXD3 | 24 | SPI1_CSn | GPIO63 / RXD8 |
25 | SPI2_MISO | GPIO65 / RXD5 | 26 | SPI1_MISO | GPIO61 / TXD4 |
27 | SPI2_MOSI | GPIO66 / RXD3 | 28 | SPI1_MOSI | GPIO62 / TXD8 |
29 | GND | 30 | P5V | 5V电源 |
LCD接口(可以用FPC54转换成排针引脚来使用)
PIN | 信号定义 | 备注 |
---|---|---|
1 | TSX+ | 扩展触摸信号, NC |
2 | TSX- | 扩展触摸信号, NC |
3 | TSY+ | 扩展触摸信号, NC |
4 | TSY- | 扩展触摸信号, NC |
5、 15、 24、 33、 42、 46、 48 | GND | |
6 | LS2K_GPIO54 | 电源使能(硬件默认上拉) |
7 | LS2K_I2C_SDA0 | |
8 | LS2K_I2C_SCL0 | |
9、 10、 11、 12 | NC | |
13 | LS2K_GPIO52 | 触摸板中断(硬件默认上拉) |
14 | LS2K_GPIO53 | 触摸板复位(硬件默认上拉) |
16 - 23 | LS2K_LCD_D[0:7] | B 数据 |
25 - 32 | LS2K_LCD_D[8:15] | G 数据 |
34 - 41 | LS2K_LCD_D[16:23] | R 数据 |
43 | LS2K_LCD_HSYNC | 水平同步 |
44 | LS2K_LCD_VSYNC | 垂直同步 |
45 | LS2K_LCD_EN | 数据有效 |
47 | LS2K_LCD_CLK | 时钟输出 |
49 | LS2K_PWM0 | 背光控制(GPIO87) |
50 - 54 | VCC_5V |
ADC接口
PIN | 信号定义 | 备注 |
---|---|---|
1 | P3V3 | 3.3V 电源输出 |
2 | GND0 | |
3 | ADC 通道 4 | 0/4 通道可以独立采样, 也可以作为差分采样 |
4 | ADC 通道 0 | 0/4 通道可以独立采样, 也可以作为差分采样 |
5 | ADC 通道 1 | 1/5 通道可以独立采样, 也可以作为差分采样 |
6 | ADC 通道 5 | 1/5 通道可以独立采样, 也可以作为差分采样 |
7 | ADC 通道 2 | 2/6 通道可以独立采样, 也可以作为差分采样 |
8 | ADC 通道 6 | 2/6 通道可以独立采样, 也可以作为差分采样 |
9 | ADC 通道 3 | 3/7 通道可以独立采样, 也可以作为差分采样 |
10 | ADC 通道 7 | 3/7 通道可以独立采样, 也可以作为差分采样 |
连接
供电:USB Type C线,这个没有串口功能,只是纯粹的供电
串口:CH340T USB串口线连接UART 0
联网:参考我的另一篇文章进行网络共享让电脑快速连接开发板,设置虚拟机网络适配器为桥接
方式联网,可以实现虚拟机直连开发板
开发环境
前置依赖
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
导入toolchain环境变量
export PATH=$PATH:/home/asensing/loongson/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin
拷贝配置
cp arch/loongarch/configs/loongson_2k300_defconfig .config
配置内核
make menuconfig ARCH=loongarch
编译内核
make vmlinuz ARCH=loongarch CROSS_COMPILE=loongarch64-linux-gnu- -j8
清理内核
make clean ARCH=loongarch CROSS_COMPILE=loongarch64-linux-gnu- -j8
拷贝到指定位置/boot目录下,设备树默认是编译到内核里边去的
scp vmlinuz root@192.168.137.111:/boot
外设调试
GPIO
以文件系统下GPIO调试为例:
-
设置和查看GPIO状态:ls -l /sys/class/gpio
-
导出GPIO:echo XX > /sys/class/gpio/export
-
取消导出GPIO:echo XX > /sys/class/gpio/unexport
-
设置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;
i2c
以i2c-tool工具为例(以BH1750设备调试):
- 先查看/dev目录下是否有i2c总线节点,没有的话要检查以下设备树
- 查看i2c总线上的从设备:i2cdetect -y 0
- 读取数据:i2cget -y 0 0x23 0x00
- 写入数据:i2cset -y 0 0x23 0x00 0x10
快速开发
在QtCreator中自定义Compilers
自定义Debuggers
添加远程设备
配置Kits
设置完这几步,即可在QtCreator里边很方便地进行软件的交叉编译以及移植开发
总结
龙芯LS2K0300久久派这个板子很小,几乎跟树莓派一样大,但它的IO资源确实非常丰富,你甚至可以用FPC 54 PIN引出GPIO