OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 647|回复: 7
打印 上一主题 下一主题

[XILINX] ZYNQ7010 连接 GPS模块 ATK 1218BD的问题

[复制链接]

1

主题

6

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2026-2-18
在线时间
5 小时
跳转到指定楼层
楼主
发表于 2026-3-4 22:05:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1金钱
目标是什么:我想通过 ZYNQ 7010 开发板上的 ATK Module 接口连接 ATK 1218BD(模块背面是ATK-MO1218-V1.2),然后从开发板的串口读取 1218BD 发送的定位数据。现象:1218BD 模块是好的,已经在 STM32 MINI 开发板上跑通示例代码,能够从 PC 端的 GNSS Viewer 收到定位数据,并且把 1218BD 的波特率设置为 115200。
然后将 1218BD 插到 ZYNQ 7010 的 ATK 接口,通过串口软件观察,并没有定位数据从开发板 USB-UART 串口输出。

遇到以下问题:

(1)开发板是用原厂自带的 Linux 系统启动,那么能够自动识别 ATK 接口上的模块吗?插上 S1218BD 后,ls /dev 并没有新的设备被列出。
(2)如何才能把开发板 ATK 接口收到的数据,转到 USB-UART 输出,或能在 SSH 登录开发板时进行存储到文件等操作。请大佬给个思路。

最佳答案

查看完整内容[请看2#楼]

我感觉又明白了,使用 P5 的跳帽,相当于把 ATK 模块的 TX 和 RX 直接连到了 USB-UART ,实际上根本没有经过 FPGA,所以即使 FPGA 是空白的,也不影响 ATK 的数据从串口输出。
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2026-2-18
在线时间
5 小时
2#
 楼主| 发表于 2026-3-4 22:05:28 | 只看该作者
我感觉又明白了,使用 P5 的跳帽,相当于把 ATK 模块的 TX 和 RX 直接连到了 USB-UART ,实际上根本没有经过 FPGA,所以即使 FPGA 是空白的,也不影响  ATK 的数据从串口输出。
回复

使用道具 举报

4

主题

2163

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
6223
金钱
6223
注册时间
2018-10-21
在线时间
1832 小时
3#
发表于 2026-3-5 09:40:24 | 只看该作者
出厂程序肯定不支持这个模块,需要自己开发
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2026-2-18
在线时间
5 小时
4#
 楼主| 发表于 2026-3-5 22:37:01 | 只看该作者
我的目标已经部分达成了。受到 ZYNQ FPGA教程 Ch16 串口数据环回试验的启发,我把 P5的跳帽改成 USB 口与 PL 侧相连,而 P5上的 PL_TXD 和 PL_RXD 和 ATK 接口上的 TXD/RXD 是一个东西,所以我插上 ATK S1218 试了一下,果然从串口收到了 定位数据。而我没有下载任何示例代码到 FPGA,除了跑过一个 LED 闪灯例子。这说明开发板在出厂状态的 FPGA 就支持串口数据的收发,虽然我不明白其中原理,但事实确是如此。
当然离我的目标还很远,我是要在板载 Linux 获得定位数据,上面的串口输出是跨过了 Linux 系统的,这一部分是要自己开发。
另一方面,ATK 的外部数据在 FPGA 中是怎么传递的,为什么没有下载 Ch16的代码,就自动实现了,这很奇怪。
回复

使用道具 举报

4

主题

2163

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
6223
金钱
6223
注册时间
2018-10-21
在线时间
1832 小时
5#
发表于 2026-3-6 17:50:54 | 只看该作者
galaxyz 发表于 2026-3-5 23:00
我感觉又明白了,使用 P5 的跳帽,相当于把 ATK 模块的 TX 和 RX 直接连到了 USB-UART ,实际上根本没有经 ...

是这样的,不过离你使用Linux驱动还很远
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2026-2-18
在线时间
5 小时
6#
 楼主| 发表于 前天 21:55 | 只看该作者
历时3周的开发终于有了进展,目前已经实现了从SD卡启动的linux里,驱动FPGA连接的ATK 1218模块,从PS侧的串口读取到定位数据。这里面有很多的细节和坑。
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2026-2-18
在线时间
5 小时
7#
 楼主| 发表于 前天 21:56 | 只看该作者
经过3周持续不断的尝试,终于达成了目标,从SD卡启动的linux里,PS侧串口输出了PL侧ATK 1218的定位数据。
回复

使用道具 举报

1

主题

6

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2026-2-18
在线时间
5 小时
8#
 楼主| 发表于 前天 22:14 | 只看该作者
经过3周的不断尝试,终于达成了目标:在SD卡启动的linux里,从PS侧串口: cat /dev/ttyS1,读取到了FPGA连接的ATK 1218模块的定位数据。
整个过程大致是这样的:
(1)FPGA 电路的验证:以FPGA教程 Ch16 为基础,实现了经 FPGA 连接的串口数据转发。
(2)裸机程序开发:以SDK教程 Ch5 为基础,Vivado Block 设计,添加了 AXI 16550 IP核,以及 SDK 的 C程序,在裸机状态下跑通了从 PL uart 到 PS uart 的数据流,使用触发中断模式。验证了 FPGA Block 的设计正确性。
(3)SD卡启动镜像制作:以Linux教程 Ch22/27/39/40/42 为参考,制作了SD启动镜像。主要问题是,1,Vivado 生成的 hdf 文件,在 petalinux 中生成 dtsi 等文件时,不完整,需要根据教程给的示例补充配置代码。2,patalinux 在生成 zImage 镜像时,需要修改配置,添加对 AIX 16550 驱动的支持,这一步最难调试。最后发现不能使用 menuconfig 的方式添加,这样会增加很多不必要的内容,造成 zImage 启动失败,而是通过 ./scripts/config --enable CONFIG_SERIAL_8250 和 ./scripts/config --enable CONFIG_SERIAL_8250_CONSOLE 添加,这样只增加必要的驱动。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-3-23 13:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表