官方论坛
官方淘宝
官方博客
微信公众号
点击联系吴工 点击联系周老师
您的当前位置:主页 > 教程中心 > FPGA技术教程 > 温度检测 >

温度检测工程上板说明

发布时间:2021-04-15   作者:chenzhirong 浏览量:

温度检测工程上板说明


作者:肖肖肖


    本文为明德扬原创文章,转载请注明出处!


     明德扬MP801开发板可以支持温度检测工程,该工程可以达到实时检测温度的效果。在串口中设置温度范围,实际温度会实时的显示开发板在数码管上,实际温度超过设置范围的蜂鸣器会“滴”声报警。具体工程展示如下。


一、MP801开发板效果图


    MP801开发板是明德扬自有开发板,此设计我们需要用到串口接口、电源、数码管、蜂鸣器和温度传感器这几部分,连接图如下所示:



二、quartus烧录进板


1. 打开软件“Quartus”,点击图标:



2. 出现Programmer界面后,点击 Add File 添加工程“.sof”文件:




3. 添加对应工程的“.sof”文件:在添加工程文件的时候特别注意区分文件名!



4. 添加成功后,点击“Start”开始下载:

5. 下载成功如下所示:



三、串口调试助手 发送操作指令


1.打开串口调试助手:



2.配置串口号等相关参数:



3.串口端口号可在“设备管理器”—“端口(COM和LPT)”中查看:



4.在串口调试助手的发送区域一次性发送以下指令:

55d50101

55d58000

55d581cc

55d58144

55d58000

55d581cc

55d581be

55d58200

55d58300

55d58000

55d50400

55d50320

55d50200

55d50500

55d50d00



5.点击“打开串口”, 

点击“手动发送”  ,温度传感器检测一次温度就会在MP801开发板的数码管上显示并传回数据显示在串口调试助手。


   

    此时,如果温度显示的是+85°,这是正常的。因为“*The power-on reset value of the temperature register is +85°C”,这个是DS18B20数据手册里的描述,也就是说,DS18B20在上电复位时,其温度寄存器里的初始值是85°C。如果你不想显示这个85°C,你可以延迟一段时间,比如0.5S后再提取这个DS18B20转换的温度显示即可。




四、效果演示


1.单次采集效果


    再次点击“手动发送”,温度检测器检测一次温度,此时的温度就为正常的,数码管上显示检测到的温度“+31.01875°”,并传回数据给上位机。MP801开发板温度显示效果如下图所示:



串口助手得到的传回数据如下图所示:



2.实时采集效果


点击“自动发送” 

,温度检测器就可以实现实时检测、显示温度并返回温度数据,串口显示效果如下图所示:




五、温度传感器操作码(opcode)说明


指令(16进制)

功能定义

80XX

复位温度传感器

81XX

将XX值写到温度传感器

82XX

从温度传感器的温度寄存器(LSB)读到1字节数据,并保存在FPGA温度低位寄存器DS_TEMP_LSB_REG中

83XX

从温度传感器的温度寄存器(MSB)读到1字节数据,并保存在fpga温度高位寄存器DS_TEMP_MSB_REG中

84XX

从温度传感器读到1字节数据,并保存到fpga读通用寄存器(读除了温度寄存器的其他寄存器)DS_TEMP_RDATA_REG

01XX

设置数码管开关。XX最低位有效:                                0:关闭数码管显示                                     1:开启数码管显示                                   其他:无效

02XX

设置温度报警器范围的下限,XX一共有8bit,其中最高位是符号位,0表示正数,1表示负数。低7位是数值。

03XX

设置温度报警器范围的上限,XX一共有8bit,其中最高位是符号位,0表示正数,1表示负数。低7位是数值。

04XX

利用DS_TEMP_LSB_REG和DS_TEMP_MSB_REG计算出十进制值,结果保存到TEMP_US寄存器中

05XX

设置温度报警功能:XX最低位有效:                     0:关闭温度报警功能                                    1:开启温度报警功能                                    其他:无效

06XX

读寄存器TEMP_US[31:24],返回给PC

07XX

读寄存器TEMP_US[23:16],返回给PC

08XX

读寄存器TEMP_US[15:8],返回给PC

09XX

读寄存器TEMP_US[ 7:0],返回给PC

0aXX

读寄存器DS_TEMP_LSB_REG,返回给PC

0bXX

读寄存器DS_TEMP_MSB_REG,返回给PC

0cXX

读寄存器DS_TEMP_RDATA_REG,返回PC

0dXX

读取转换后的温度值,返回给PC

其他

无效,可用作延时

注:1.每次发送必须是两个字节,否则会出错;

    2.表中的XX,如果是发送数据,则XX是发送的内容;否则,XX表示任何值。



    以上就是明德扬MP801开发板上板效果,想要学习更多内容的同学,可以加Q:1479512800肖肖肖  获取本工程的“.sof”文件!

   拓展阅读