首页 > 其他分享 >Xilinx Zynq 配置UARTLITE驱动

Xilinx Zynq 配置UARTLITE驱动

时间:2022-10-22 15:55:22浏览次数:80  
标签:驱动程序 uartlite UART 配置 UARTLITE Zynq Xilinx

介绍

AXI 通用异步串行总线收发器 (UART) Lite 核可以实现基于AMBA AXI 接口的UART收发,且这个软核基于AXI Lite总线接口设计。

硬件特性

  • 用于寄存器访问核数据传输的AXI4-Lite 接口
  • 全双工
  • 16字符深度的收发FIFO
  • 字符宽度可配置为5-8比特
  • 可配置的奇偶校验位 (odd or even or none)
  • 可配置的波特率

驱动程序特性支持

  • 支持16字符深度的收发FIFO
  • 字符宽度可配置为5-8比特
  • 可配置的奇偶校验位 (odd or even or none)

内核配置

要在 Linux 内核中启用 uartlite 驱动程序,必须在内核中集成它或将其构建为内核模块(.ko)。在petalinux中可以通过以下方式启用:

make menuconfig---> Device Drivers ---> Character devices ---> Serial drivers ---> Xilinx uartlite serial port support

或者直接修改 .config 文件下面几行:

# 集成进内核
CONFIG_SERIAL_UARTLITE=y
# 编译为ko模块
CONFIG_SERIAL_UARTLITE=m

当使用较新版本时,以及当系统中需要多个UART Lite时,用户还应配置以下配置项以增加驱动程序中 UART 端口的数量。驱动程序基于此配置项目静态分配端口数据结构。端口号设备树属性用于每个 UART Lite 设备节点,并用于索引到驱动程序中的端口数据结构。端口号类似于别名号,因此这受系统中 UART 总数(包括 PS UART)的影响。

CONFIG_SERIAL_UARTLITE_NR_UARTS=<系统中UART设备总数,包括PS串口>

设备树

这有个设备树的例子

https://www.kernel.org/doc/Documentation/devicetree/bindings/serial/xlnx%2Copb-uartlite.txt

uartlite_0@42C00000 {    compatible = "xlnx,xps-uartlite-1.00.a";    
reg = <0x42C00000 0x10000>;    
interrupt-parent = <&gic>;    
interrupts = <0 59 4>;    
clock = <100000000>;};
uartlite_1@42C10000 {    
compatible = "xlnx,xps-uartlite-1.00.a";    
reg = <0x42C10000 0x10000>;    
interrupt-parent = <&gic>;    
interrupts = <0 59 4>;    
clock = <100000000>;};


请注意如何使用相同的中断,但要使其正常工作,您必须或从uarts到中断输入的中断。

Vivado Block Design

与其将中断输出直接连接到IRQ_F2P还可以使用实用程序简化逻辑对其进行OR(或)连接,以仅将它们连接到一个中断通道。中断输出(irq_0,irq_1)为上升沿敏感中断输入(IRQ_F2P)产生一个小的正向脉冲。

The driver source file in the linux kernel at drivers/tty/serial/uartlite.c limits the number of supported UARTs to 16. If you need to increase that number, adjust this define near the top of the file:
Linux 内核中驱动程序源文件位于驱动程序/tty/serial/uartlite.c 处,将支持的 UART 的数量限制为 16 个。如果需要增加该数字,请在文件顶部附近调整此定义:
#define ULITE_NR_UARTS 16
之后,必须重建内核并将其部署到 Zynq 设备。

Linux中使用UARTLITE

With the FPGA binary loaded, the updated devicetree and updated kernel you should see one or more /dev/ttyULx devices.
Beware that linux puts all uarts in Canonical Mode, something you might not want in an embedded system. Chances are you want to use Non-Canonical or Raw Mode. Also don’t use fopen / fprintf / fputs / etc. if you want raw access, use open / close / read / write instead.

$echo 123456789 > /dev/ttyUL0

 

输出

root@Xilinx-ZC1751-DC2:~#
root@Xilinx-ZC1751-DC2:~# echo 123456789 > /dev/ttyUL0
[70.634844] 123456789
root@Xilinx-ZC1751-DC2:~# echo 123456789abcd  > /dev/ttyUL0
[75.774761] 123456789abcd

 

标签:驱动程序,uartlite,UART,配置,UARTLITE,Zynq,Xilinx
From: https://www.cnblogs.com/xlicool/p/16816250.html

相关文章

  • 基于C6657+ZYNQ7045的DSP+ARM+FPGA主控板设计方案
    XM-6657Z45-EVM评估板规格书目录​​XM-6657Z45-EVM评估板规格书​​​​1评估板简介​​​​2 典型应用领域​​​​3软硬件参数​​​​4开发资料​​​​5电......
  • 基于ZYNQ、AM5728、AM5708、AM437x、AM335x、STM32+FPGA
     信迈基于ZYNQ、AM5728、AM5708、AM437x、AM335x、STM32+FPGA等平台提供了开源EtherCAT主站IgH案例本文档适用开发环境:Windows开发环境:Windows764bit、Windows1064bitL......
  • Zynq7000和MPSoC SWDT的复位引脚输出时间
    Zynq7000和MPSoC都有SWDT。它的复位信号通过MIO输出后,持续时间大约是100ns。有些客户要求更长时间的复位信号。更改寄存器后,也没有效果。这是因为复位信号也会复位内部的......
  • 转载 -xilinx 产品系列
    xilinx产品系列山木知之为知之,不知为不知,未知终可知 2人赞同了该文章 众所周知,xilinx是FPGA行业领导者,其产品代表这个行业的发展和应......
  • linux驱动开发0_另一种方式编译ZYNQ镜像
    一、petanlinux工具编译镜像文件,最终就只有两个文件BOOT.BIN和image.ub,这两个文件包括u-boot、linux内核、设备树、PL端的bitstream、fsbl等,虽然方便但是速度太慢;二、......
  • ZYNQ系列VITIS不支持JTAG模式的核心板烧录方法
    2-1:系统环境变量修改    对于ZYNQ或者MPSOC下载QSPI程序需要用到2个文件    Boot.bin文件:改文件由fsbl.elf文件、fpga.bit文件、应用程序.elf文件合成  ......