寒假一起练(4)项目演示(陈永昇)
本项目是基于小脚丫FPGA训练平台的一个具有计时,实时测温,OLED显示,异步串口通信的项目。
标签
FPGA
陈XX
更新2021-02-26
943

项目需求:

  1. 实现一个可定时时钟的功能,用小脚丫FPGA核心模块的4个按键设置当前的时间,OLED显示数字钟的当前时间,精确到分钟即可,到整点的时候比如8:00,蜂鸣器报警,播放音频信号,最长可持续30秒;
  2. 实现温度计的功能,小脚丫通过板上的温度传感器实时测量环境温度,并同时间一起显示在OLED的屏幕上;
  3. 定时时钟整点报警的同时,将温度信息通过UART传递到电脑上,电脑上能够显示当前板子上的温度信息(任何显示形式都可以),要与OLED显示的温度值一致;
  4. PC收到报警的温度信号以后,将一段音频文件(自己制作,持续10秒钟左右)通过UART发送给小脚丫FPGA,蜂鸣器播放收到的这段音频文件,OLED屏幕上显示的时间信息和温度信息都停住不再更新;
  5. 音频文件播放完毕,OLED开始更新时间信息和当前的温度信息。

实现过程:

     由于是第一次接触FPGA,一开始还有些不知所措。所以我首先在网上找了Verilog的教程,学了一部分算是入门,才开始编写代码。

     不过在刚开始的时候,我完全是懵的状态,于是初期我在寻找学习资料,方法上就耗费了许多时间。

     一开始我先是跟着直播老师一起学习了小脚丫板子的入门,随后我在小脚丫的官网找了一些与Altera MAX10M02 有关的例程,先下载来学习,再挨个理清楚每个里面的逻辑和大概的意思。接着我把每个代码都复制了一番,创建一个新的文档,编译,运行,烧录至开发板上,观察每一部分的效果 。然后在代码中进行小部分的修改,观察有什么变化,就算是对这一部分的初步了解。

使用我们这款开发板可以实现如下功能:

   1.任意波形/信号发生器的功能

     通过该功能,能够掌握DDS生成任意波形/信号的原理、使用方法、以及DAC的工作原理、构成方式、信号的频谱构成等

   2.ADC数据采集的功能

      通过这个功能,可以掌握ADC的工作原理以及在数据采集中的应用方式、SPI总线的使用、模拟信号带宽、ADC采样率、SPI总线速率等之间的时序关系

   3.传感器信息输入

    通过这个功能,可以学会单总线的逻辑实现以及传感器数据的处理,对于理解物联网产品比较有帮助

   4.OLED图形化信息显示

    通过这个功能可以掌握SPI显示屏的使用、SPI总线逻辑以及屏上信息的文本、图形化显示等。越来越多的电子产品、创意设计都采用图形化的OLED显示屏成为信息展示的终端,无论用MCU还是FPGA的系统,在电赛中的很多项目中也会用到信息的图形化显示。

   5.蜂鸣器输出

  • 板上有一个经三极管驱动的蜂鸣器,可以通过PWM来实现声音的输出。

   6.UART通信

   板载USB-UART芯片CH340,能够实现FPGA和上位机PC的通信

 

在我们这个项目中,我们所需要的外设有:

  1. OLED:OLED是我们能观察到的最明显变化的设备。我们所编写的所有功能都需围绕OLED来编写;
  2. 串口:在功能中需要向PC端发送温度,随后再由PC端发回音频数据至FPGA;
  3. DS18B20:需要用该模块来采集实时温度;
  4. 按键:通过按键可以调整初始化的时间,并且通过拨动拨动开关,可以进入计时的模式。

 

设计思路:

     首先对电子森林所提供的例程,多加了解,进行部分的修改后观察不同的效果,对例程有初步的认识,再多多学习提供的文档以及视频教程加以深入的了解。我打算通过对例程进行一定的修改后,对每个所需要部分的模块分别编写,首先分别实现各自的功能,最后再总合在一起,进行最后的编辑。

     温度部分:

DS18B20将数据以16位的形式传递给芯片,高八位的前五位为符号位,低八位均为数据位。这里需要注意的是由于数据位的低四位为小数位,也就是说得到的数据是环境温度左移四位的数据,因此当需要使用温度时要把数据右移四位。

      OLED部分:

通过查阅CSDN以及原子哥的视频,对OLED有了初步了解后,以电子森林的例程为基础,修改部分

      蜂鸣器部分:

蜂鸣器运用了PWM控制高低电平时间发出不同声音的原理,不同音调对应的PWM占空比,并将每个音频转换成16位数据,当板子传递给上位机报警信号时,上位机将音调数据提供异步通信串口传递给板子。当音频播放完成后,板子退出报警模式。

      按键部分:

根据以往对按键的理解进行编写,不过在初期遇见了问题,键值在一段时候后会自动恢复,只有在这段时间内,键值才会变化。

      串口部分:

上位机借鉴于万毅豪同学,并征得同意后进行使用。

 

资源占用情况:

Total logic elements   2046/2304

Total registers           432

Total Pins                  16/112

Total virtual pins        0

     FsboFAYSAER76tKAyew_kCmB0pJ_

 

程序框架:

 

Fjdqd891RKUyC1NzP3Em6RetexVb

 

 

心得体会:

    这次小脚丫举办的寒假一起练,让我首次接触到了Verilog,并且开始了解FPGA。从最初的连工程都不会建立,逐渐学习,查阅资料,开始亮一个灯,再到后来逐步实现所需功能。在学习的过程中,发现了自身存在的一些问题,对于资源的不合理使用从而导致资源不够,并且加强了我对资源的获取能力,不仅如此,我还对接下来的电赛充满信心。最后,由衷的感谢在这段过程中帮助过我的每一位老师,同学!

 

 

 

 

     

附件下载
Project.sof
团队介绍
来自成都信息工程大学,电子信息工程
团队成员
陈永昇
一名来自成都信息工程大学大二学生,希望向大佬们多多学习
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号