0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ArmSoM Rockchip系列產(chǎn)品 通用教程 之 UART 使用

jf_30051736 ? 來源:jf_30051736 ? 作者:jf_30051736 ? 2024-03-08 14:39 ? 次閱讀

1. UART 簡介?

Rockchip UART (Universal Asynchronous Receiver/Transmitter) 基于16550A串口標(biāo)準(zhǔn),完整模塊支持以下功能:

  • 支持5、6、7、8 bits數(shù)據(jù)位。
  • 支持1、1.5、2 bits停止位。
  • 支持奇校驗和偶校驗,不支持mark校驗和space校驗。
  • 支持接收FIFO和發(fā)送FIFO,一般為32字節(jié)或者64字節(jié)。
  • 支持最高4M波特率,實際支持波特率需要芯片時鐘分頻策略配合。
  • 支持中斷傳輸模式和DMA傳輸模式。
  • 支持硬件自動流控,RTS+CTS。

2. 普通串口?

  • ArmSoM-Sige7中,普通UART集成在40PIN中,可供用戶復(fù)用為UART功能。
  • 在40PIN中可供復(fù)用的UART有:uart2-m2,uart3-m1,uart4-m2,uart7-m1,uart7-m2,uart8-m0

2.1 如何使用40PIN中的UART ??

用戶只需參考 overlay 設(shè)置,在overlay屬性中添加上UART的overlay文件:

例如:

  • 使用UART3:
overlays=rk3588-uart3-m1

  • 使用uart4
overlays=rk3588-uart4-m2

  • 使用uart7
overlays=rk3588-uart7-m1

  • 使用uart8
overlays=rk3588-uart8-m0

2.2 內(nèi)核menuconfig配置?

Device Drivers() ---> Character devices() ---> Serial drivers

2.3 dts配置?

2.3.1 芯片級公共配置?

kernel/arch/arm64/boot/dts/rockchip/rk3588s.dtsi

uart2: serial@feb50000 {
        compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
        reg = ;
        interrupts = ;
        clocks = , ;
        clock-names = "baudclk", "apb_pclk";
        reg-shift = ;
        reg-io-width = ;
        dmas = , ;
        pinctrl-names = "default";
        pinctrl-0 = ;
        status = "disabled";
    };

2.3.2 板級配置?

kernel/arch/arm64/boot/dts/rockchip/rk3588-armsom-sige7.dts

UART的板級dts配置只有以下參數(shù)允許修改:

dma-names:

  • "tx" 打開tx dma
  • "rx" 打開rx dma
  • "!tx" 關(guān)閉tx dma
  • "!rx" 關(guān)閉rx dma

pinctrl-0:

  • &uart1m0_xfer 配置tx和rx引腳為iomux group 0
  • &uart1m1_xfer 配置tx和rx引腳為iomux group 1
  • &uart1m0_ctsn和&uart1m0_rtsn 配置硬件自動流控cts和rts引腳為iomux group 0
  • &uart1m1_ctsn和&uart1m1_rtsn 配置硬件自動流控cts和rts引腳為iomux group 1

status:

  • "okay" 打開
    • "disabled" 關(guān)閉
&uart2 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = ;
}

2.4 UART設(shè)備節(jié)點(diǎn)?

配置好串口后,硬件接口對應(yīng)軟件上的節(jié)點(diǎn)分別為:

UART3:   /dev/ttyS3
UART4:   /dev/ttyS4
...

2.5 使用串口喚醒系統(tǒng)?

串口喚醒系統(tǒng)功能是在系統(tǒng)待機(jī)時串口保持打開,并且把串口中斷設(shè)置為喚醒源。使用時需要在dts中增 加以下參數(shù):

&uart1 {    wakeup-source;};

3. 控制臺串口?

  • 在ArmSoM-Sige7中,UART2是作為控制臺串口使用,可供用戶查看開機(jī)啟動的信息以及日常調(diào)試使用。

3.1 驅(qū)動?

kernel/drivers/soc/rockchip/fiq_debugger/rk_fiq_debugger.c

3.2 dts配置?

由于fiq_debugger和普通串口互斥,在使能fiq_debugger節(jié)點(diǎn)后必須禁用對應(yīng)的普通串口uart節(jié)點(diǎn)

fiq_debugger: fiq-debugger {
        compatible = "rockchip,fiq-debugger";
        rockchip,serial-id = ;
        rockchip,wake-irq = ;
        /* If enable uart uses irq instead of fiq */
        rockchip,irq-mode-enable = ;
        rockchip,baudrate = ;  /* Only 115200 and 1500000 */
        interrupts = ;
        pinctrl-names = "default";
        pinctrl-0 = ;
        status = "okay";
    };
    
&uart2 {
    status = "disabled";
};

以下對幾個參數(shù)進(jìn)行說明:

  • rockchip,serial-id:使用的UART編號。修改serial-id到不同UART,fiq_debugger設(shè)備也會注冊成ttyFIQ0設(shè)備。
  • rockchip,irq-mode-enable:配置為1使用irq中斷,配置為0使用fiq中斷。
  • interrupts:配置的輔助中斷,保持默認(rèn)即可。

4. 測試?

UART調(diào)試提供一個官方測試程序:ts_uart.uart(存放在網(wǎng)盤:1. 開發(fā)工具->測試工具)、兩個測試用文件send_0x55和send_00_ff,該程序可以聯(lián)系A(chǔ)rmSoM客服獲取。 通過adb工具將測試程序放在開發(fā)板上一個可執(zhí)行的路徑下,以下放在data路徑:

adb rootadb remountadb push ts_uart.uart /dataadb push send_0x55 /dataadb push send_00_ff /data

在開發(fā)板上修改測試程序權(quán)限:

sudo chmod +x /data/ts_uart.uart

使用以下命令可以獲取程序幫助:

console:/ # ./data/ts_uart.uart
Use the following format to run the HS-UART TEST PROGRAM
ts_uart v1.1
For sending data:
./ts_uart      
tx_rx : send data from file (s) or receive data (r) to put in file
file_name : file name to send data from or place data in
baudrate : baud rate used for TX/RX
flow_control : enables (1) or disables (0) Hardware flow control using RTS/CTS
lines
max_delay : defines delay in seconds between each data burst when sending.
Choose 0 for continuous stream.
random_size : enables (1) or disables (0) random size data bursts when sending.
Choose 0 for max size.
max_delay and random_size are useful for sleep/wakeup over UART testing. ONLY
meaningful when sending data
Examples:
Sending data (no delays)
ts_uart s init.rc 1500000 0 0 0 /dev/ttyS0
loop back mode:
ts_uart m init.rc 1500000 0 0 0 /dev/ttyS0
receive, data must be 0x55
ts_uart r init.rc 1500000 0 0 0 /dev/ttyS0

4.1 測試發(fā)送?

測試發(fā)送的命令如下,send_0x55和send_00_ff為發(fā)送的文件:

./data/ts_uart.uart s ./data/send_0x55 1500000 0 0 0 /dev/ttyS3./data/ts_uart.uart s ./data/send_00_ff 1500000 0 0 0 /dev/ttyS3

發(fā)送成功可以通過USB轉(zhuǎn)UART小板連接PC端,使用PC端串口調(diào)在這里插入代碼片試工具驗證。

4.2 測試接收?

測試接收的命令如下,receive_0x55為接收的文件:

./data/ts_uart.uart r ./data/receive_0x55 1500000 0 0 0 /dev/ttyS1

可以使用PC端串口調(diào)試工具發(fā)送數(shù)據(jù),測試程序?qū)⒆詣?a target="_blank">檢測,檢測到U(0x55)接收正確,檢測到其它 字符將打印16進(jìn)制ASCII碼值,可以對照查詢接收是否正確。

4.3 測試內(nèi)部自發(fā)自收?

測試內(nèi)部自發(fā)自收的命令如下:

./data/ts_uart.uart m ./data/send_00_ff 1500000 0 0 0 /dev/ttyS3

按下Ctrl+C停止測試,可以觀察到結(jié)束log如下。比較發(fā)送和接收的數(shù)據(jù)是否一致:

Sending data from file to port...send:1172, receive:1172 total:1172 # 收發(fā)數(shù)據(jù)一致,測試成功send:3441, receive:3537 total:3441 # 收發(fā)數(shù)據(jù)不一致,測試失敗

如果測試失敗,說明當(dāng)前串口存在問題或者有其他程序也在使用同一個串口??梢允褂靡韵旅畈榭茨?些程序打開了這個串口:

lsof | grep ttyS3


審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 串口
    +關(guān)注

    關(guān)注

    14

    文章

    1540

    瀏覽量

    76072
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1219

    瀏覽量

    101123
  • Rockchip
    +關(guān)注

    關(guān)注

    0

    文章

    72

    瀏覽量

    18516
收藏 人收藏

    評論

    相關(guān)推薦

    Rockchip SoC 賦能 AI 與視覺創(chuàng)新:推動智能設(shè)備的未來發(fā)展

    的 SoC,非常適合用于 AI 驅(qū)動的邊緣計算、安全監(jiān)控、機(jī)器人技術(shù)等應(yīng)用領(lǐng)域。 armsom board 本文將探討 Rockchip 在 AI 和視覺領(lǐng)域的 SoC 路線圖發(fā)展,重點(diǎn)介紹 RK3588
    的頭像 發(fā)表于 11-05 18:02 ?184次閱讀
    <b class='flag-5'>Rockchip</b> SoC 賦能 AI 與視覺創(chuàng)新:推動智能設(shè)備的未來發(fā)展

    艾為燈語呼吸燈系列產(chǎn)品的應(yīng)用領(lǐng)域

    多色絢爛的光源交相輝映,構(gòu)成了一幅流動著光影美的畫卷,極富視覺沖擊力。艾為燈語呼吸燈系列產(chǎn)品,歷經(jīng)發(fā)展,現(xiàn)已廣泛滲透至智能手機(jī)、物聯(lián)網(wǎng)(IoT)、智能家居以及汽車行業(yè)等諸多前沿領(lǐng)域,展現(xiàn)了其在多元化應(yīng)用場景中的創(chuàng)新與適應(yīng)能力。
    的頭像 發(fā)表于 08-27 14:12 ?650次閱讀

    芯來NA系列產(chǎn)品再獲ISO 26262 ASIL-D產(chǎn)品認(rèn)證證書

    近日,芯來科技NA300系列產(chǎn)品正式獲得了德國exida頒發(fā)的ISO26262 ASIL-D產(chǎn)品認(rèn)證證書。
    的頭像 發(fā)表于 07-15 16:11 ?548次閱讀
    芯來NA<b class='flag-5'>系列產(chǎn)品</b>再獲ISO 26262 ASIL-D<b class='flag-5'>產(chǎn)品</b>認(rèn)證證書

    Rockchip RK3588 - ArmSoM-Sige7開發(fā)板介紹

    ArmSoM-Sige7采用Rockchip RK3588新一代旗艦級八核64位處理器,主頻高達(dá)2.4GHz,6 TOPS算力NPU,最大可配32GB大內(nèi)存。支持8K視頻編解碼,擁有豐富的接口,支持
    的頭像 發(fā)表于 07-14 16:48 ?1137次閱讀
    <b class='flag-5'>Rockchip</b> RK3588 - <b class='flag-5'>ArmSoM</b>-Sige7開發(fā)板介紹

    寬電壓時鐘振蕩器系列產(chǎn)品選型指南

    寬電壓時鐘振蕩器系列產(chǎn)品選型指南
    的頭像 發(fā)表于 04-22 14:53 ?505次閱讀
    寬電壓時鐘振蕩器<b class='flag-5'>系列產(chǎn)品</b>選型指南

    ArmSoM Rockchip系列產(chǎn)品通用教程之Camera使用

    1. Camera 簡介 ? ArmSoM系列產(chǎn)品使用的是mipi-csi接口的攝像頭 ArmSoM-Sige7支持雙攝同顯: 2. RK3588硬件通路框圖 ? rk3588支持2個isp硬件
    的頭像 發(fā)表于 04-10 14:59 ?1484次閱讀
    <b class='flag-5'>ArmSoM</b> <b class='flag-5'>Rockchip</b><b class='flag-5'>系列產(chǎn)品</b><b class='flag-5'>通用</b>教程之Camera使用

    工業(yè)數(shù)顯壓力測量系列產(chǎn)品介紹

    電子發(fā)燒友網(wǎng)站提供《工業(yè)數(shù)顯壓力測量系列產(chǎn)品介紹》資料免費(fèi)下載
    發(fā)表于 03-11 14:04 ?0次下載

    油田泥漿壓力測量系列產(chǎn)品介紹

    電子發(fā)燒友網(wǎng)站提供《油田泥漿壓力測量系列產(chǎn)品介紹》資料免費(fèi)下載
    發(fā)表于 03-11 14:01 ?0次下載

    Nexperia發(fā)布全新模擬開關(guān)系列產(chǎn)品

    全球基礎(chǔ)半導(dǎo)體器件領(lǐng)域的領(lǐng)軍企業(yè)Nexperia(安世半導(dǎo)體)最近發(fā)布了全新的專用于監(jiān)測和保護(hù)1.8V電子系統(tǒng)的4通道和8通道模擬開關(guān)系列產(chǎn)品。這一創(chuàng)新系列產(chǎn)品的推出,旨在滿足汽車、消費(fèi)類電子產(chǎn)品及工業(yè)應(yīng)用等多樣化領(lǐng)域?qū)Ω咝阅苣?/div>
    的頭像 發(fā)表于 03-11 10:08 ?639次閱讀

    ArmSoM Rockchip系列產(chǎn)品 通用教程 Display 使用

    品上需要?持 8K 顯?輸出,VP1 上要注意不要連接其他顯?接口。 1.2 RK3588支持的顯示接口? 2個DP 2個HDMI/eDP 共用接口 2個MIPI DSI BT656/BT1120 2. ArmSoM-W3顯示接口? ArmSoM-W3有著豐富的顯示接口
    的頭像 發(fā)表于 03-06 15:50 ?1291次閱讀
    <b class='flag-5'>ArmSoM</b> <b class='flag-5'>Rockchip</b><b class='flag-5'>系列產(chǎn)品</b> <b class='flag-5'>通用</b>教程 <b class='flag-5'>之</b> Display 使用

    ArmSoM Rockchip系列產(chǎn)品 通用教程 RTC 使用

    1. RTC 簡介? RTC:(Real_Time Clock):實時時鐘 HYM8563是一種低功耗實時時鐘(RTC)芯片,用于提供精確的時間和日期信息。它提供一個可編程的時鐘輸出,一個中斷輸出和一個掉電檢測器,所有的地址和數(shù)據(jù)都通過I2C總線接口串行傳遞。最大總線速度為 400Kbits/s,每次讀寫數(shù)據(jù)后,內(nèi)嵌的字地址寄存器會自動遞增 以下是HYM8563芯片的主要特點(diǎn)和功能: 時鐘和日歷功能:HYM8563具有時鐘和日歷功能,可提供準(zhǔn)確的時間和日期信息。它支持年、月、日、星期、小時、
    的頭像 發(fā)表于 03-05 16:57 ?455次閱讀
    <b class='flag-5'>ArmSoM</b> <b class='flag-5'>Rockchip</b><b class='flag-5'>系列產(chǎn)品</b> <b class='flag-5'>通用</b>教程 <b class='flag-5'>之</b> RTC 使用

    ArmSoM Rockchip系列產(chǎn)品 通用教程 CAN 使用

    都采用CAN總線來實現(xiàn)汽車內(nèi)部控制系統(tǒng)之間的數(shù)據(jù)通信。 RK3568/RK3588的CAN驅(qū)動文件:drivers/net/can/rockchip/rockchip_canfd.c 在
    的頭像 發(fā)表于 02-29 16:52 ?704次閱讀
    <b class='flag-5'>ArmSoM</b> <b class='flag-5'>Rockchip</b><b class='flag-5'>系列產(chǎn)品</b> <b class='flag-5'>通用</b>教程 <b class='flag-5'>之</b> CAN 使用

    拉曼光纖放大器系列產(chǎn)品手冊

    電子發(fā)燒友網(wǎng)站提供《拉曼光纖放大器系列產(chǎn)品手冊.pptx》資料免費(fèi)下載
    發(fā)表于 01-23 09:42 ?0次下載

    MCU在線技術(shù)講座-EFM和EFR: 面向物聯(lián)網(wǎng)開發(fā)的通用MCU平臺

    遷移至無線多協(xié)議設(shè)計等等。技術(shù)專家并將引領(lǐng)您探索新的EFM8 BB5x 8位MCU系列產(chǎn)品、EFM32 PG28系列產(chǎn)品,以及EFR32無線SoC全系列產(chǎn)品家族的特性,同時演示如何將它們串聯(lián)使用以簡化
    發(fā)表于 11-23 13:45

    ArmSoM-W3應(yīng)用開發(fā)安裝docker

    1.簡介RK3588從入門到精通系列專題開發(fā)板:ArmSoM-W3Kernel:5.10.160OS:Debian11本?介紹ArmSoM-W3在Debian11下如何安裝
    的頭像 發(fā)表于 11-20 10:05 ?409次閱讀
    <b class='flag-5'>ArmSoM</b>-W3應(yīng)用開發(fā)<b class='flag-5'>之</b>安裝docker