差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版 两侧同时换到之后的修订记录
温度传感器模块 [2017/06/06 14:16]
anran [STEP FPGA驱动温度传感器DS18B20Z]
温度传感器模块 [2017/06/07 17:06]
anran [硬件说明]
行 6: 行 6:
 ====硬件说明==== ====硬件说明====
 ------- -------
-在前面之前的入门教程[[4. 数码管显示| 数码管独立显示 ]]章节已为大家介绍了数码管独立显示相关内容关于独立显示这里不在赘述。我们的底板上有6位数码管根据驱动方法不同,有以下比较:+DS18B20是我们日常设计常用一款温度传感器芯片只需要一根总线可以实现通信,非常的方便,我们的[[STEP-BaseBoard]]底板上就集成了温度传感器DS18B20Z下面我们就一起来学习一下它的硬件链接及驱动方法
 \\ \\
-独立显示:控制每个数码管至少需要8个I/​O口控制,6位数码管就需要6*8 = 48信号线才能分别显示。独立显示实现简单,但是需要大量信号线。+DS18B20Z只有一线,硬件电路非常简单,但是一定记得总线需要做上拉处理,如下图总线上连接了10K(上拉电阻取值可以一定范围内自行调整)上拉电阻,另外我们使用FPGA驱动,一定记得将FPGA对应的管脚同样作上拉配置,重要的事情说三遍,总线上拉,总线上拉,总线上拉 
 +{{ :​ds18b20z硬件电路.jpg?​800 |}}
 \\ \\
-扫描显示:将每位数码管的同一段选信号连接在一起这样我们就只需8根段选号和6根位选信号14根信号扫描显示可以有效节约I/​O口资源,实现起来稍显复杂。 +聊完硬件连接,接下来简介绍如何驱动(更加详细的息需要大家参考数据手册)不同的功能需求对应不同寄存器配置,本设执行的操作案例如下
-{{ :​6位数码管.jpg?​1600 |}}+
 \\ \\
-我们小脚丫底板上使用的6位共阴极数码管,分析扫描显示的原理如下:+{{ :​ds18b20z驱动案例.jpg?​800 |}}
 \\ \\
-当某一时刻,FPGA控制8根公共段选接口输出数字1对应的数码管字库数据8'​h06(DP=0、G=0、F=0、E=0、D=0、C=1、B=1、A=0),同时控制6位数码管只有第1位使能(DIG1=0、DIG2=1、DIG3=1、DIG4=1、DIG5=1、DIG6=1)这样我们会看到第1位数码管显示数字1,其余5位数码管不显示,如果不明白可以参考入门教程中实验四[[4. 数码管显示| 数码管独立显示 ]]章节+下面为大家展示上述案例中每个环节的时序要求
 \\ \\
-按照扫描的方式,一共分为6个刻,段选端口分别对应输出6位数码管需要显示的字库数据,位选端口保持每个时刻只有1位数码管处于使能状态,6个时刻依次循环,当扫描频率足够高(例如当扫描频率等于100Hz)时,则在人眼看到的数码管显示就是连续的,我们看到的就是6个不同的数字。+{{ :​ds18b20z初始化序.jpg?800 |}}
 \\ \\
-上面为大家介绍了数码管的独立显示和扫描显示两种方法,扫描显示的方式使用了14个I/​O口控制,相对于简单的处理器来讲14个I/​O口也是非常多了,这里我们又使用了一款常见的驱动芯片74HC595,下面我们一起了解一下:+{{ :​ds18b20z读写时序.jpg?​800 |}}
 \\ \\
-74HC595是较为常用的串行并行的芯片,内部集成了一个8位移位寄存器、一个存储器和8个三态缓冲输出。在最简单的情况下我们只需要控制3根引脚输入得到8根引脚并行输出信号,而且可以级联使用,我们使用3个I/​O口控制两个级联的74HC595芯片,产生16路并行输出,连接到扫描显示的6位数码管上,可以轻松完成数码管驱动任务。+{{ :温度换时间.jpg?​800 |}}
 \\ \\
-{{ :74hc595电路.jpg?1000 |}}+{{ :温度编码格式.jpg?800 |}}
 \\ \\
-不同的IC厂家都可以生产74HC595芯片,功能都是一样的,然而不同厂家的芯片手册对于管脚的命名会存在差异,管脚顺序相同,大家可以对应识别 +{{ :温度值对照表.jpg?800 |}}
-上图是本设计中74HC595芯片的硬件电路连接,参考74HC595数据手册了解其具体用法,下图中我们了解到OE#​(G#​)和MR#​(SCLR#​)信号分别为输出使能(低电平输出)和复位管脚(低电平复位),OE#​(G#​)我们接GND让芯片输出使能,MR#​(SCLR#​)我们接VCC让芯片的移位寄存器永远不复位,如此FPGA只需要控制SH_CP(SCK)、ST_CP(RCK)和DS(SER)即可。 +
-\\ +
-{{ :74hc595引脚功能.jpg |74hc595引脚功能}} +
-\\ +
-{{ :​74hc595逻辑图.jpg |74hc595逻辑图}} +
-\\ +
-{{ :​74hc595时序图.jpg |74hc595时序图}} +
-\\ +
-{{ :数管程序框图.jpg?1000 |数码管驱动程序框图}}+
 \\ \\
 +
  
 ====Verilog代码==== ====Verilog代码====