带有 VGA 接口的 FPGA 原型设计

现场可编程门阵列或 FPGA 是很棒的小设备。简而言之,它们是一整套逻辑块,通过互连连接在一起。这些逻辑块可以随意连接,以创建简单或复杂的电路。从简单的异或门到 CPU,再到整个系统(如果您有足够的钱购买最大的系统)。把它们想象成一大盒乐高积木,你可以用任何你想要的方式组合它们来创建任何类型的数字电路。

FPGA 已用于许多应用程序 - 旧系统的仿真就是其中之一。该先生就是这样一个例子。Jeri Ellsworth 的 C-One是另一个。但实际上,FPGA 无处不在。它们快速、强大且适用于大多数情况。

我的朋友 Will 经营着Project-F网站,在那里他调查了 FPGA 的所有事情。我一直在帮助我们建立一些董事会,这是第一个。我想向大家展示我是如何构建我们的早期原型之一的,其中的胜利和陷阱,并希望能激励人们自己尝试一下。

设计PCB板。


对于这个原型,我们一直使用Xilinx的Spartan 7 系列FPGA。他们的 XC7S6 型号是最便宜的,有 6,000 个逻辑单元和 100 个 I/O 引脚可供使用。FTGB196 版本的球间距为 1 毫米,方形为 15 毫米。这很好,因为它足够大,可以轻松处理。任何较小的,我都会有麻烦焊接起来。

FPGA 采用多种不同的电压。在我们的设计中,我们在 3.3V 下运行 I/O(因为这对于爱好者来说是相当标准的),但我们还需要提供 5V、1.8V 和 1.0V。这是我们需要处理的 4 种不同电压!值得庆幸的是,这些东西的设计可以在网上找到。我不假装知道它是如何工作的,但本质上有一个芯片形式的调节器和一些平滑电容器。一旦它们被设计出来,我就可以在以后的设计中重复使用它们。

对于这个原型,我们一直使用Xilinx的Spartan 7 系列FPGA。他们的 XC7S6 型号是最便宜的,有 6,000 个逻辑单元和 100 个 I/O 引脚可供使用。FTGB196 版本的球间距为 1 毫米,方形为 15 毫米。这很好,因为它足够大,可以轻松处理。任何较小的,我都会有麻烦焊接起来。

FPGA 采用多种不同的电压。在我们的设计中,我们在 3.3V 下运行 I/O(因为这对于爱好者来说是相当标准的),但我们还需要提供 5V、1.8V 和 1.0V。这是我们需要处理的 4 种不同电压!值得庆幸的是,这些东西的设计可以在网上找到。我不假装知道它是如何工作的,但本质上有一个芯片形式的调节器和一些平滑电容器。一旦它们被设计出来,我就可以在以后的设计中重复使用它们。

 

我使用KiCAD进行设计。这不是一款糟糕的软件,我也没有遇到太多问题。可悲的是,它没有很好的支持,如果有的话,重用原理图。我刚刚开始了解封装和组件的库,但我真的很想在设计之间进行剪切和粘贴。

FPGA 本身是一个复杂的组件。它有许多引脚,组织成不同的 Bank。我在网上找不到组件或封装,所以我自己做了。组件本身被分解为子组件——KiCAD 允许这个很好的功能。这意味着我可以让 FPGA 出现在多个工作表上,但只有与该工作表相关的 FPGA 位。它使事情保持整洁。

我们的第一块板上没有太多其他组件。在这种情况下,某些内存有一个占用空间 - SRAM。SRAM 需要很少的电路。有一个 USB 转 UART 芯片,这又是相对简单的。找到合适的芯片并不那么容易。我打算手工焊接这部分,但不幸的是,我们被全球芯片短缺所困扰。我们最终设法找到了一些,但花了一些时间。

早期原型。

 

最后,还有Pmod 连接器。这是 FPGA 制造商 Digilent 的标准设置,用于外围设备。我设法为插座找到了一些脚印。

焊接 BGA。


FPGA 都是球栅阵列封装,或 BGA。这意味着它们不是引脚或腿,而是在封装底部有小焊球。将其连接到电路板上的唯一方法是在回流炉中烘烤。这是当今大多数电子产品的组装方式。

正确的方法是付钱给制造商,让他们为你制造一切。您在设计电路板时考虑到了机器人,然后将其发送到带有大型拾放机和大型烤箱的板房。任务完成。然而,这成本很高,而且真的只为大订单而做。BGA 给业余爱好者带来了一些障碍。

幸运的是,那里有大量廉价或被黑客入侵的焊锡炉。如果您住在美国,您可能对电烤箱很熟悉。显然,他们可以制作出色的回流焊炉。如果您在英国并且去过 EMF,您可能有兴趣知道过去徽章是通过将板放在烤箱炉子上制成的。我以前尝试过后一种策略,但它对我不起作用,但我被告知它可以起作用。

最后,我买了一个便宜的焊锡炉——黑客最喜欢的T962A回流焊炉。这显然远非理想,但到目前为止,我还没有遇到任何真正的问题。

回流焊料时,需要使用一些焊膏。这种灰色粘稠的东西充满了微小的焊锡球。加热时,它会熔化并流动 - 毛细作用完成其余的工作。但需要先涂在PCB上的焊盘上。正确的方法是使用金属模板。然而,这些都是相当昂贵的。

我设法在英国找到了一家可以用激光切割聚酯薄膜的供应商——Hobbytronics。Mylar 不是很好,但对于单个组件来说,还不错。我决定我只是回流 FPGA - 保持简单。我可以很容易地手工焊接其余部分。我从旧咖喱桶上切下一些塑料,将糊状物喷在面膜上,然后将糊状物刮在孔上。小心地取下面具,焊料似乎正好在我想要的地方。

我通过这种方法学到的一个技巧 - 如果您使用聚酯薄膜,请始终在面罩中使用圆圈。切勿激光切割小矩形,靠近在一起。薄聚酯薄膜经不起刮擦,糊状物到处都是。

神经紧张的位是在烘烤之前将 FPGA 放在焊料的顶部。我试过用镊子之类的东西,但最后,我只是用我的手指。如果我认为它出了问题,我会将其删除,仔细擦拭并重新开始。我还没有这样做太多次 - PCB 上的轮廓确实有帮助。

我发现温度图上的倒“​​V”形非常适合回流 FPGA。数据表列出了推荐的曲线和温度,这个似乎最接近。

到目前为止,这种技术已经连续工作了四次——不算太破旧!

手工焊接和错误。
大部分组件都是2012年的(旧款0805)。我很舒服地手工焊接这些。通常,我在一个焊盘上涂抹焊料,在熔化焊料的同时放置元件,让它凝固,然后焊接另一个焊盘。较大的元件通常需要焊锡、助焊剂、焊锡编织三步。这里的想法是你用焊料覆盖所有的腿,然后吸掉多余的。这非常有效,但并不总是完美的。我有几个乍一看看起来不错的关节,但实际上并没有连接。检查并再次检查是值得的。我用从复印机里偷出来的黑放大镜仔细观察。

我倾向于有条不紊地工作,按顺序处理 BOM。有些人说最好从较大的组件开始,因为它们需要更多的热量。这也是我认为的好建议。我用手术刀慢慢打开微型封装,以免有微小的部件平的地方了所有。一把好的镊子对于将零件固定到位也是必不可少的。

犯了错误。

 

在处理这样的项目时,总会有出错的风险。在这块板上,我以错误的方式获得了振荡器的足迹!我还为 JTAG 连接器使用了错误的间距。傻我!尽管如此,这些事情还是会发生,学习解决它们似乎是一项有用的技能。

图形的 PMODS。


因此,当所有东西都焊接到位、经过测试并发现可以正常工作后,我们可以用一根小 JTAG 电缆对我们的 FPGA 进行编程。我们做的第一件事是使 LED 闪烁,因为您当然可以!使用 Xilinx 的Vivado,我们可以构建我们的小设计,将其闪存到 FPGA 并祈祷。

一旦我让闪烁的 LED 亮起,下一步就是尝试一些VGA。视频图形阵列是一项古老的技术,但它似乎相当强大。它是模拟的,因此需要更多组件。幸运的是,数字到模拟部分可以由 Digilent 的 VGA Pmod 处理。这个可爱的小板卡插入了我们板上的两个 Pmod 连接器。剩下的就是生成正确的数字信号。

我们的 VGA Pmod。

幸运的是,威尔已经为此努力了一段时间。查看他关于 FPGA 图形的惊人系列。它几乎是最好的(我的意思是我会这么说,但它完全是!)。使用他的代码,我们可以烧写我们的 FPGA 和 POW!时髦的动画方块!任务完成!

下一步去哪里?

FPGA 是非常了不起的工具包。虽然硬件很难,虽然我们可以在软件中设计很多,但仍有很多事情要做,可能会出错。我没有说太多我犯过的错误或我克服的问题。这在任何电子项目中都很常见,但 FPGA 有点棘手,因为它们在硬件调试方面有点不透明,至少对我而言。一旦它被焊接,就是这样!您无法在那里安装测试探针,也无法将其移除并重试(至少不容易)。即使您可以使用探针来测试信号,FPGA 处理的许多类型的信号都具有超快 - 超高带宽。例如,我还没有找到可以查看 HDMI 信号的示波器(我确定它们存在,但它们可能非常昂贵!)。

最后,我们现在知道如何获得基础知识。还有更多值得关注的地方,例如内存、外围设备、声音和更好的视觉效果,但硬件需要时间。不过,当它最终起作用时,这是值得的!

FPGA 是非常了不起的工具包。虽然硬件很难,虽然我们可以在软件中设计很多,但仍有很多事情要做,可能会出错。我没有说太多我犯过的错误或我克服的问题。这在任何电子项目中都很常见,但 FPGA 有点棘手,因为它们在硬件调试方面有点不透明,至少对我而言。一旦它被焊接,就是这样!您无法在那里安装测试探针,也无法将其移除并重试(至少不容易)。即使您可以使用探针来测试信号,FPGA 处理的许多类型的信号都具有超快 - 超高带宽。例如,我还没有找到可以查看 HDMI 信号的示波器(我确定它们存在,但它们可能非常昂贵!)。

最后,我们现在知道如何获得基础知识。还有更多值得关注的地方,例如内存、外围设备、声音和更好的视觉效果,但硬件需要时间。不过,当它最终起作用时,这是值得的!

欢迎关注飞多学堂微博:Sina Visitor System

欢迎关注【飞夺学堂】微信公众号,学习更多电子硬件和示波器使用技巧、知识:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞多学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值