介紹
芯片
龍芯2K0300芯片是一款基于LA264處理器核的多功能SoC芯片,可廣泛適用于工業(yè)控制、通信設備、信息家電和物聯(lián)網(wǎng)等領(lǐng)域;該芯片采用高集成度設計,可提供豐富的功能接口,滿足多場景應用需求,同時支持低功耗技術(shù),能夠在低能耗條件下進行高效處理,具有以下特色:
處理器主頻1GHz(功耗 < 1W),64位雙發(fā)射超標量LA264,支持
LoongArch指令系統(tǒng),有286個引腳16位DDR4-1600控制器,支持ECC校驗
32KB一級指令緩存和32KB一級數(shù)據(jù)緩存,支持ECC校驗;512KB二級共享緩存,支持ECC校驗
集成2個USB2.0、2個GMAC、1路LCD顯示
支持處理器核時鐘動態(tài)變頻;支持主要模塊時鐘動態(tài)關(guān)閉
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等

開發(fā)板
久久派搭載龍芯SOC芯片LS2K0300,板載Ethernet、WIFI / BT、USB、ADC、Audio、Display、RTC等功能或接口,內(nèi)存容量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轉(zhuǎn)換成排針引腳來使用)
| 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 數(shù)據(jù) |
| 25 - 32 | LS2K_LCD_D[8:15] | G 數(shù)據(jù) |
| 34 - 41 | LS2K_LCD_D[16:23] | R 數(shù)據(jù) |
| 43 | LS2K_LCD_HSYNC | 水平同步 |
| 44 | LS2K_LCD_VSYNC | 垂直同步 |
| 45 | LS2K_LCD_EN | 數(shù)據(jù)有效 |
| 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,推薦使用MobaXterm,串口配置波特率115200、數(shù)據(jù)位8、停止位1、奇偶校驗位None
聯(lián)網(wǎng):參考另一篇文章,設置虛擬機網(wǎng)絡為橋接方式聯(lián)網(wǎng),在串口終端調(diào)用命令給開發(fā)板分配一個IP,可以實現(xiàn)開發(fā)板直連虛擬機和PC
udhcpc -i eth0
開發(fā)環(huán)境
前置依賴
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
編譯內(nèi)核
先安裝bison、flex
sudo apt install bison flex libncurses5‐dev libssl-dev
導入toolchain環(huán)境變量
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
配置內(nèi)核
make menuconfig ARCH=loongarch
編譯內(nèi)核
make vmlinuz ARCH=loongarch CROSS_COMPILE=loongarch64-linux-gnu- -j8
清理內(nèi)核
make clean ARCH=loongarch CROSS_COMPILE=loongarch64-linux-gnu- -j8
拷貝到指定位置/boot目錄下,設備樹默認是編譯到內(nèi)核里邊去的
scp vmlinuz root@192.168.137.111:/boot
外設調(diào)試
GPIO
以文件系統(tǒng)下GPIO調(diào)試為例:
設置和查看GPIO狀態(tài):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
循環(huán)輸出方波
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設備調(diào)試):
先查看/dev目錄下是否有i2c總線節(jié)點,沒有的話要檢查一下設備樹有沒有i2c的總線節(jié)點
查看i2c總線上的從設備:i2cdetect -y 0
讀取數(shù)據(jù):i2cget -y 0 0x23 0x00
寫入數(shù)據(jù):i2cset -y 0 0x23 0x00 0x10
PWM
以pwm0的配置為例
導出節(jié)點:echo 0 > /sys/class/pwm/pwmchip0/export
取消導出:echo 0 > /sys/class/pwm/pwmchip0/unexport
開啟:echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
關(guān)閉:echo 0 > /sys/class/pwm/pwmchip0/pwm0/enable
設置周期:echo 1000000 > /sys/class/pwm/pwmchip0/pwm0/period
設置極性(normal或inversed):echo "normal" > /sys/class/pwm/pwmchip0/pwm0/polarity
ADC
以ADC通道0為例
查看ADC數(shù)值:cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw
查看ADC分辨率:cat /sys/bus/iio/devices/iio:device0/in_voltage_scale
快速開發(fā)
在QtCreator中自定義Compilers

自定義Debuggers

添加遠程設備

配置Kits

設置完這幾步,即可在QtCreator里邊很方便地進行軟件的交叉編譯以及移植開發(fā)
總結(jié)
這個SBC很?。◣缀醺鷺漭梢粯哟螅?,IO資源確實非常豐富,甚至可以用FPC 54 PIN引出GPIO來使用
BSP還不是很完善,剛出的內(nèi)核reboot會panic,部分外設使用還是有問題
資料這一塊還不多,希望官方加大開放力度,一塊好的SOC需要有良好的開發(fā)生態(tài)
RAM偏小,跑GUI可能會有點吃力,希望出個大內(nèi)存版本