打印
[应用相关]

STM32与FPGA开发的食物放射污染仪器

[复制链接]
楼主: wangjiahao88
手机看帖
扫描二维码
随时随地手机跟帖
21
wangjiahao88|  楼主 | 2020-4-12 12:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览

使用特权

评论回复
22
wangjiahao88|  楼主 | 2020-4-12 12:56 | 只看该作者
    Spartan 3系列FPGA C Field Programmable Gate Arrays)是XILINX公司专
门为满足像消费电子产品等所要求的大容量、低成本电子器件而设计的。首次在
工业上使用90nm技术,是其性价比更高,开启了可编程逻辑阵列的新**。
Spartan 3E系列FPGA在Spartan 3系列基础上,增加了新的功能,提高了系统的
性能,进一步减少了成本。本文采用Spartan 3E XC3SSOOE作为数字多道模块的
主控芯片,内部资源如图3-15 0
    FPGA外围电路主要有电源电路、外部晶振电路、配置电路、JTAG下载线
接口电路等。
    FPGA正常工作需要3路电源,分别是VCCINT(内部电源)、VCCAUX(辅
助电源)和VCCO(输出驱动电源),VCCINT为1.2V } VCCAUX为2.5V } VCCO
可以根据IO电平标准不同而不同,本文选择3.3V。由正SV电压通过1.2V稳压
芯片、2.5V稳压芯片和3.3V稳压芯片分别产生1.2V, 2.5V和3.3V电压,给FPGA
供电。

使用特权

评论回复
23
wangjiahao88|  楼主 | 2020-4-12 13:01 | 只看该作者

使用特权

评论回复
24
god9987| | 2020-4-12 13:02 | 只看该作者
现在这个必须用 FPGA 来做吗?我对FPGA不是很了解。。。 使用STM32F7 也不行吗?

使用特权

评论回复
25
wangjiahao88|  楼主 | 2020-4-12 13:05 | 只看该作者

使用特权

评论回复
26
god9987| | 2020-4-12 13:05 | 只看该作者
X3系列是比较古老了啊 现在最好也得使用spartan 6 或者ZYNQ 直接搞定吧!!!

使用特权

评论回复
27
wangjiahao88|  楼主 | 2020-4-12 13:11 | 只看该作者

使用特权

评论回复
28
wangjiahao88|  楼主 | 2020-4-12 13:13 | 只看该作者
关于STM32F103 和FPGA之间的连接:

使用特权

评论回复
29
wangjiahao88|  楼主 | 2020-4-12 13:20 | 只看该作者

使用特权

评论回复
30
wangjiahao88|  楼主 | 2020-4-12 13:33 | 只看该作者

使用特权

评论回复
31
wangjiahao88|  楼主 | 2020-4-12 13:37 | 只看该作者

使用特权

评论回复
32
wangjiahao88|  楼主 | 2020-4-12 13:39 | 只看该作者

使用特权

评论回复
33
wangjiahao88|  楼主 | 2020-4-12 13:40 | 只看该作者
    采用SOMHz的外部有源晶振为FPGA提供时钟,同时,FPGA需要向ADC
提供40MHz的采样时钟,向内部的脉冲峰值甄别模块提供40MHz的时钟,
TDRAM的PORT A端口需要40MHz的时钟信号,PORT B端口采用SMHz的时
钟信号输出谱数据,对于SPI模块,同样采用SMHz的时钟来对SCLK时钟进行
采样,控制数据的传输。这就需要通过分频、倍频产生40MHz和SMHz的时钟。
    在Spartan 3E器件,自带DCM_SP数字时钟管理器,CLKIN是时钟输入,
CLKFX是通过分配、倍频后产生的时钟输出,CLKDV是时钟分频后的时钟输
出,CLK2X表示的是输入时钟两倍倍频后的时钟输出,CLKO, CLK90, CLK180,
CLK270表示时钟不同相移后的时钟输出。为了产生40MHz和SMHz的时钟,
需要先将输入时钟4倍频,然后5分频,产生的CLKFX时钟即是40MHz的,
同时将输入时钟产生10倍分频,产生CLKDV时钟即是SMHz o

使用特权

评论回复
34
wangjiahao88|  楼主 | 2020-4-12 13:43 | 只看该作者

使用特权

评论回复
35
god9987| | 2020-4-12 13:44 | 只看该作者

这个写的很详细了!!!!

使用特权

评论回复
36
wangjiahao88|  楼主 | 2020-4-12 13:44 | 只看该作者
    STM32作为主机与FPGA采用SPI通信方式进行通信,STM32F103VCT6
有两个SPI接口,本文中采用SPI2接口。SPI2接口的时钟相位与极性与FPGA
中SPI模块保持一致,即CPHA=0 } CPOL=0。每个数据帧为16位,数据传输时,
高位在前。采用全双工模式进行通信。

使用特权

评论回复
37
god9987| | 2020-4-12 13:44 | 只看该作者
学习学习!!!感谢分享!

使用特权

评论回复
38
wangjiahao88|  楼主 | 2020-4-12 13:45 | 只看该作者
    STM32通信协议流程如图5-4所示,首先对STM32进行初始化和使能之后,
向从机发送“能量刻度”命令,然后主机等待接收从机的应答信号,收到从机应答
信号后,向从机发送能量刻度值,完成能量刻度后,向从机发送“开始测量”命令,
然后等待接收从机的应答信号,收到从机应答信号后,表示从机已经开始测量丫
射线的能谱,主机向从机发送要求“传输能谱”的命令,然后开始接收能谱数据,
并将能谱数据进行显示,接收完后,进行0.5秒钟延时,再次向从机发送要求传
输能谱的命令,直到测量时间结束,发送“停止测量”命令,停止测量。规定Oxf000
为“能量刻度”命令,OxOf00为“开始测量”命令,0x00 f 0为要求“传输能谱”命令,
0x000 f为“停止测量”命令。


使用特权

评论回复
39
wangjiahao88|  楼主 | 2020-4-12 13:46 | 只看该作者
PC机与串口通信,实现仪器的效率刻度和能量刻度。
STM32发送命令,STM32接收到数据后,判断命令是“
首先,PC机经串口向
量刻度”命令,还是“效

率刻度”命令,如果是“能量刻度”命令,给PC机发送收到“能量刻度”命令的应答
信号,再次等待接收数据,将再次接收到的数据保存到能量刻度寄存器里。如果
是“效率刻度”命令,给PC机发送收到“效率刻度”命令的应答信号,再次等待接
收数据,将再次接收到的数据保存到效率刻度寄存器里。
    如果再次测量时,能量刻度值和效率刻度值保持不变,那么即不需要再次通
过串口向STM犯发送能量刻度值和效率刻度值,这就需要STM犯在断电,再次
上电后,能量刻度寄存器和效率刻度寄存器里的值保持不变。本文中,将能量刻
度寄存器和效率刻度寄存器里的值保存到FLASH中,其擦写过程如下图。


使用特权

评论回复
40
god9987| | 2020-4-12 13:46 | 只看该作者
感谢分享!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则