龍芯LS2K0300久久派上手體驗

介紹

芯片

龍芯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等

ls2k0300.png

開發(fā)板

久久派搭載龍芯SOC芯片LS2K0300,板載Ethernet、WIFI / BT、USB、ADC、Audio、Display、RTC等功能或接口,內(nèi)存容量512M,EMMC容量為4G,電源供電為USB Type C口,有2路拓展引腳

久久派.jpg

引腳資源

板載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

compiler.png

自定義Debuggers

debugger.png

添加遠程設備

device.png

配置Kits

kits.png

設置完這幾步,即可在QtCreator里邊很方便地進行軟件的交叉編譯以及移植開發(fā)

總結(jié)

  • 這個SBC很?。◣缀醺鷺漭梢粯哟螅?,IO資源確實非常豐富,甚至可以用FPC 54 PIN引出GPIO來使用

  • BSP還不是很完善,剛出的內(nèi)核reboot會panic,部分外設使用還是有問題

  • 資料這一塊還不多,希望官方加大開放力度,一塊好的SOC需要有良好的開發(fā)生態(tài)

  • RAM偏小,跑GUI可能會有點吃力,希望出個大內(nèi)存版本

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容