admin 发表于 2023-4-18 10:17:01

【AC609】AC620或AC609+2.8寸电阻屏+AD9767的触控DDS信号发生器实验


案例简介

基于2.8寸屏的触控DDS信号发生器


案例说明

该实验使用小梅哥AC609 FPGA核心板+基于ILI9341的2.8寸电阻触摸屏+ACM9767实现。用户可以通过2.8寸电阻触摸屏来设置两个DAC输出通道输出信号的波形类型、频率、相位。并通过ACM9767模块上的电位器调节输出信号的幅度大小。
整个工程使用到了ucgui dds nios等技术。提供AC620开发板、AC609核心板两个硬件的工程。
案例需要使用到AC620或AC609 FPGA开发板、ACM9767 高速DAC模块、2.8寸电阻触摸显示屏。
FPGA部分实现DDS核心功能,NIOS II CPU 运行程序实现各种参数的设置和显示。
为了快速开发界面,移植了ucGUI触摸界面,由于新版本的ucGUI已经不再开源,也没有针对NIOS II CPU的适配版本,所以这里还是使用了ucGUI3.98版本。差不多也就是大家都在用win10了,而我们还在用xp的既视感,不过,功能都能实现就行了。

整个系统,包括NIOS II CPU、SDRAM、DDS核心功能都运行在125MHz,工作起来FPGA温度还是比较高的。

除了UCGUI和LCD软件驱动程序以外,其他代码绝大部分为小梅哥编写,希望大家尊重版权,自己拿去学习研究是可以的,但是不希望看到出现在其他和我们类似的开发板产品的赠送资料里。


工程源码

基于AC620 FPGA开发板的工程源码:
基于AC609 FPGA核心板的工程源码:

两个工程除了引脚分配不一样,其他都一样。


案例效果

以下为实际运行照片:









案例实操

以下以AC609核心板为例,介绍该高速触控DDS信号发生器的实验操作流程。AC620用户可以根据本帖内容类比实验。
该实验使用小梅哥AC609 FPGA核心板+基于ILI9341的2.8寸电阻触摸屏+ACM9767实现。用户可以通过2.8寸电阻触摸屏来设置两个DAC输出通道输出信号的波形类型、频率、相位。并通过ACM9767模块上的电位器调节输出信号的幅度大小。

该实验支持的输出信号参数如下所示:
输出通道:2
波形类型:正弦波、方波、锯齿波
波形频率:1Hz~10MHz
波形相位:0~359°
触摸控制,使用非常方便,
支持方波设定占空比
支持设定双通道相对相位


所需软件

Quartus II 13.0版本(不建议使用其他版本,尤其是不建议使用高版本)
下载地址:各种各厂家FPGA开发软件下载地址:http://www.corecourse.cn/forum.php?mod=viewthread&tid=28768


所需硬件

AC609V2.0核心板:https://item.taobao.com/item.htm?id=578483828109
USB Blaster下载器:https://item.taobao.com/item.htm?id=607300420460
基于ILI9341的2.8寸电阻触摸屏:https://item.taobao.com/item.htm?id=544099678656
ACM9767高速DAC模块:https://item.taobao.com/item.htm?id=567261394163


实验步骤
1、安装好Quartus II 13.0软件

2、将AC609资料中的【02-设计实例】->【ac609_dds_pad.rar】文件下载并解压到不含中文、不含空格的路径下,如下图所示:



3、打开Quartus II13.0软件,按键盘组合键Ctrl + J以打开现有工程,定位到刚刚工程的解压目录,选中AC609_LCD9341.qpf文件并打开,打开后在files选项中即可看到本工程所添加的各个功能模块,如下图所示。



4、使用键盘组合键Ctrl + L 按键对工程进行全编译以得到最终需要下载到FPGA的sof文件。

5、在菜单栏中点击tools,然后选择Nios II Software Build Tools for Ecipse,以打开NIOS II软件开发环境。如下图所示



6、在workspace中选择之前解压的工程路径,也就是AC609_LCD9341.qpf文件所在路径,然后点击OK即可。如下图所示



7、在打开的界面中,Project Explor中右键选择Import以将已经编写好的软件程序导入进来。如下图所示



8、在打开的页面中,选择General下的 Existing Projects into Workspace选项,然后点击下一步。如下图所示



9、在Select root direction中选择工程文件夹,也就是AC609_LCD9341.qpf文件所在路径,,然后软件会自动检索到该路径下有2个工程,分布名为wave_draw和wave_draw_bp,确保两个工程都被勾选行,然后点击finish,如下图所示。



10、双击打开wave_draw_bsp工程下的settings.bsp文件,修改第7行和第9行的“D:\fpga\FPGA_Product\DDS\AC609_LCD9341”为你当前工程路径,也就是AC609_LCD9341.qpf文件所在路径,如“E:\AC609_DDS_PAD”,然后保存并关闭该文件,如下图所示。





11、由于工程发布时候,是配置成了从EPCS FLASH中加载程序,所以这种配置无法进行在线调试,这里为了在线调试,需要先将CPU的从FLASH加载启动代码的选项取消,以使CPU直接从RAM运行。具体操作方法也很简单,选中dave_draw_bsp,右键,选择NIOS II -> BSP Editor以打开BSP配置界面。如下图所示



将左边的滑条拉到最下方,找到Advance选项并点击呈高亮,然后在右侧找到hal.link选项,去掉allow_code_at_reset和enable_alt_load选项,这样程序就可以在ram中运行了,最后点击Generate和exit按钮完成修改,如下图所示。


12、选中dave_draw_bsp,右键,选择NIOS II -> Generate BSP以将FPGA工程信息同步到CPU软件工程中,如下图所示



13、按下键盘Ctrl + B 组合键,以对工程进行全编译。工程用了uc/gui,所以文件比较多,大概需要3分钟左右。编译完了,还需要等待一会儿,大约2分钟,待软件更新makefile文件。

14、将LCD显示屏插入开发板右侧的排母接口,注意靠下方按键对齐,上方会空出来2个母孔。

15、将ACM9767模块插入开发板的GPIO0(上方的那个口)

16、使用USB Blaster连接开发板和电脑,并给USB Blaster安装驱动。使用Type-C数据线或USB转圆孔数据线给开发板供电,将开关打开以确保开发板电源指示灯点亮。

17、待软件编译完成后,回到Quartus软件,点击菜单栏的 【Tools】 -> 【Programer】以打开下载软件。如下图所示。



18、在programmer软件界面,点击add file按钮来添加需要下载到fpga芯片的文件,然后在弹出的窗口中,找到工程路径下,output_files文件夹下的AC609_LCD9341.sof文件。然后点击open按钮以添加到下载列表。如下图所示。




19、点击Start按钮,以将fpga编程文件下载到FPGA中。

20、回到Nios II Software Build Tools for Ecipse软件中,点击菜单栏的【Run】->【Run Configurations...】选项,如下图所示。



21、双击【Nios II Hardware】选项以新建一个硬件调试配置,在右侧的Project Name中下拉选择“wave_draw”工程,如下图所示。




22、点击Target Connection选项以进入目标板连接选项,然后点击refresh connections选项以检测硬件连接。直到列表中出现两个设备,勾选上system ID check下的两个勾选项,以跳过对system id的检查。如下图所示。



23、点击Run按钮,以开始将软件程序下载到CPU中。程序下载成功后,可以看到LCD显示屏上就显示出了信息界面如下图所示。



24、如果下载过程中最后出现了下述保存,则证明第11步没有正确操作。












admin 发表于 2023-4-20 22:54:54

应用户需求,这里上传制作界面时候的gui设计源文件



















另外把UCGUIBuilder4.0工具也一并上传,注意,该软件仅支持32位系统,本人是在64位系统上装了一个32位的win7虚拟机才搞成的


如何使用UC/GUI开发图形界面,我就不多讲了,我也是跟着网络教程学习的,远未达到教别人的地步。大家有兴趣的网上自行找教程。


liub 发表于 2024-4-10 17:53:52

有人解释为什我运行下载是下面那个界面呢?

dwt 发表于 2024-4-17 20:40:17

小梅哥,按照步骤之后run,就这样子了,屏幕卡在这里了
页: [1]
查看完整版本: 【AC609】AC620或AC609+2.8寸电阻屏+AD9767的触控DDS信号发生器实验