之前尝试UART0(MIO50、51),串口调试助手收到发送的内容。
现在板子上EMIO端有多个串口,所以看看这个怎么弄。
串口是484的转接板(接232的串口就会输出乱码)
https://blog.51cto.com/u_15262460/2882973
system IP配置UART0为EMIO,然后约束引脚
IP都是之前配置好了,现在重新配置,发现HDL Wrapper没有UART管脚,发现是block这里需要Make External:
然后生成bit gen。
Launch SDK(记得include bitstream)
但是串口调试助手没有收到任何打印信息。
UART 16550 IP核使用详解_zynq uart16550-CSDN博客
AXI UART 16550 IP核简介_axi16550-CSDN博客
ZYNQ axi uart16550 IP核扩展485接口使用-CSDN博客
添加UART16550 IP核,配置AXI试试看。
ZYNQ UltraScale MPSOC,使用PL端AXI_UART16550IP核,且在PS端控制下实现RS485通信,接收不同帧长报文数据-----中断方式_zynq rs485-CSDN博客
zynq IP:配置DDR,PL to PS IRQ,
AXI GPIO IP:1bit output(控制RS485的DE)
UART 16550 IP:RS485的数据接口
Run Automation自动连线
删除AXI UART 16550 IP的UART引脚
展开UART 16550 的UART接口
添加constant IP:1bit,value = 1
连接UART 16550的ctsn、rin和constant IP;
再添加一个constant IP:1bit,value = 0
连接UART 16550的freeze,dcdn,dsrn与第二个constant IP;
将UART 16550 IP中的sin和sout引脚导出,修改引脚名字为RS485_RXD和RS485_TXD;
将AXI GPIO IP中引出的GPIO的引脚名字修改为RS485_DE。
添加concat IP,输入连接UART 16550 IP的ip2intc_irpt,输出dout连zynq IP的irq。
基于FPGA的UARTl6550的设计-AET-电子技术应用
引脚绑定为DE、Tx、Rx
但是看原理图没有DE脚。
所以修改了下走线:
Xilinx SDK程序Debug无法在main函数入口处停住解决_sdk 调试不进main-CSDN博客
程序跑飞了:看自己PS配置,bank1电源没有设置为1.8V,DDR芯片型号设置错误
然后uart的tx、rx照着原理图配置;RS484的A+和B-接反了。
波特率设置不一致:收到乱码。修改后:成功!