查看: 3981|回复: 0

[教程] 只需一招,Zynq搭配Pmod开发,没驱动也不怕

[复制链接]

该用户从未签到

发表于 2019-6-26 13:11:57 | 显示全部楼层 |阅读模式
分享到:
本帖最后由 美好的一天 于 2019-6-26 13:13 编辑

没有直接可用的Pmod驱动?
传授你一招填坑秘籍


之前我们提到过「Pmod传感模块」,这一搭配FPGA开发板进行快速原型系统开发的利器。事实上,除了Pmod标准定义接口的专利方 —— Digilent公司所提供的近百种功能丰富的原厂Pmod传感模块之外(一般都配有免费的ip驱动供开发者直接调用),市场上存在着很多来自不同供应商所提供的可用Pmod模块。

然鹅,很多来自于不知名小厂的Pmod(以中国台湾、深圳的山寨厂商居多),往往并不提供模块驱动,需要用户自己去写驱动填坑。如果你不幸中招,聊表安慰之余,今天就传授你一招填坑秘籍,教你在没有可用驱动情况下的应对之策。


先说重点:如果没有可用的驱动,可以使用Zynq SoC PL端(可编程逻辑)的Pmod桥模块,它让我们能够在选用的开发板与Pmod端口之间建立正确的映射,然后开发我们自己的Zynq PS(处理系统)驱动。假如你仔细研究正规厂商所提供的Pmod驱动,你会发现这些驱动其实也是使用Pmod桥加上一个AXI I2C或者SPI组件所实现的。

1.jpg
图:Digilent PmodAD2:12位四通道模拟数字转换器的驱动组件

此文中,我们就将以Digilent(迪芝伦)PmodDA4:8通道DAC模块,以及PmodAD2:4通道ADC模块为例,我们将这两个模块整合在一起,借助Pmod桥模块自行开发驱动,用PmodDA4生成模拟信号,并用PmodAD2来接收信号。

2.jpg
图:用Digilent Analog Discovery口袋仪器对PmodDA4测试

Pmod桥模块允许我们定义开发板板载Pmod接口上下两排的输入类型,可以选择定义为GPIO、UART、I2C或者SPI协议接口。我们为所需驱动的板载Pmod接口上下层都进行相应的选择配置,使得Pmod传感器的管脚输出(pinout)与对应的板载接口标准一致。有兴趣的朋友,可点击「阅读原文」,下载查看Digilent Pmod传感器的接口标准文档。

对于PmodDA4,我们只需要在板载Pmod接口上层使用SPI协议。这样选择后,我们需要提供实际的SPI通信通道。由于我们使用的是Zynq SoC开发板(Digilent Arty Z7),所以这里我们有两个选择。第一个方法是在PL端使用AXI SPI IP模块与Pmod桥模块建立连接。第二个方法(也是这里我们将采用的)是使用EMIO建立Zynq PS SPI与Pmod桥中间的连接。这一方法将让我们能够在PS SPI端口与Pmod桥模块输入管脚之间建立直连。

为了实现这一点我们需要阅读官方的Pmod接口标准文档来确保SPI管脚与Pmod桥输入管脚之间正确的映射(例如哪个PS SPI信号连接到IN_0)。Pmod 桥模块的管脚代表不同的接口类型,它们的命名也是通用的。下面的框图展示了这里我们是如何实现PmodDA4管脚的映射。在这个示例中我们完成管脚映射后就可以构建工程,导出到SDK,编写软件程序驱动DA4。

3.jpg


我们可以使用SDK中由BSP创建的SPI驱动来驱动PmodDA4。为了实现与PmodDA4的交互,第一件事我们要做的就是初始化SPI控制器。我们设置好SPI时钟相位和主操作选项后就可以定义缓冲区,并使用轮询传输模式将所需的信息传递给PmodDA4。更复杂的驱动则将使用中断驱动方式而非轮询的方式。
4.jpg
下面,我们对创建好的PmodDA4驱动文件进行测试。我们驱动一个简单的谐波输出,并使用Digilent Analog Discovery口袋仪器的示波器功能来监测DAC输出。接收到的信号如下:
5.jpg

完成了所有设置PmodDA4以预期的方式正常工作,然后我们将PmodDA4与PmodAD2连接在一起,这样Zynq SoC才能够接收信号:
6.jpg

测试时我们要非常仔细,以确保PmodDA4输出的信号在PmodAD2的工作范围内,全部完成后则会显示PmodDA4能够在硬件上正常工作。

到这里,相信大家已经了解了在没有可用驱动的情况下如何自行创建Pmod驱动。当然,填坑往往是不得已而为之,人生苦短,芳华有限,尽量少碰不提供驱动的山寨小厂Pmod才是王道。

回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /1 下一条



手机版|小黑屋|与非网

GMT+8, 2024-4-24 16:40 , Processed in 0.125160 second(s), 17 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.