zynq-7000系列基于zynq-zed的vivado初步设计之linux下控制PL扩展的UART

 zynq-7000系列基于zynq-zed的vivado初步设计之linux下控制PL扩展的UART

                              作者:卢浩  

                                     时间:2017.2.13

                                    转载请注明出处

                                                                 嵌入式爱好者开发群:122879839

基于上一篇AXI GPIO的设计,我们进行UART的扩展,打开vivado工程,添加UART IP,在zynq上打开IRQ_F2P的中断,如图:


然后把中断连接上,点击自动连接,生成如图:


然后Run Implementation.

然后进行约束设计,如图:


我选择的是JA座子上的JA1和JA7两个引脚来做UART的RX TX,对应处理器的Y11 AB11引脚,都是bank13的引脚。

如图:


接下来生成BIT文件。然后export hardware,launck sdk,步骤和上一篇AXI GPIO差不多,但是还是有几个注意点的,我们继续往下做。

打开SDK后,生成FSBL文件,输出串口配置一定不能错,如图:


另外在dts里面也不能配置错。

我们可以看sdk生成的pl.dtsi文件,如图:


可以看到PL扩展的UART的DTS描述信息。

axi_uartlite_0: serial@42c00000 {
clock-names = "ref_clk";
clocks = <&clkc 0>;
compatible = "xlnx,xps-uartlite-1.00.a";
current-speed = <115200>;
device_type = "serial";
interrupt-parent = <&intc>;
interrupts = <0 29 1>;
port-number = <1>;
reg = <0x42c00000 0x10000>;
xlnx,baudrate = <0x2580>;
xlnx,data-bits = <0x8>;
xlnx,odd-parity = <0x0>;
xlnx,s-axi-aclk-freq-hz-d = <0x64>;
xlnx,use-parity = <0x0>;
};

另外有一个重要点就是记得内核配置需要添加axi uart的支持

make menuconfig
---> Device Drivers ---> Character devices ---> Serial drivers ---> Xilinx uartlite serial port support
# integrate into the kernel
CONFIG_SERIAL_UARTLITE=y
# build as loadable module
CONFIG_SERIAL_UARTLITE=m

编译进内核还是内核模块,用户自己选择。

我们把顺序理一下,1.用vivado生成bit文件;2.在sdk里面生成fsbl文件;3.合成BOOT.bin文件;4.生成dtb文件;5.生成uImage文件

然后可以放在sd卡里面启动。

在linux启动信息中,我们可以看到这样一句打印信息:

42c00000.serial: ttyUL1 at MMIO 0x42c00000 (irq = 165, base_baud = 0) is a uartlite

这就是PL扩展的UART。

在linux下可以作为标准串口使用,用户可以短接TX RX,然后测试一下收发。

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值