IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> stm32和FPGA的SPI -> 正文阅读

[嵌入式]stm32和FPGA的SPI

step1 stm32_3pin_to_fpga_input

fpga_spi_input

简单用CS ,CLK,SCLK控制SDA输出
在这里插入图片描述
输出:assign O_TESTOUT = R1_I_CS | R1_I_SDA| R1_I_SCK; 在这里插入图片描述

stm32_gpio_wave_3pin

对main函数中使用到的函数进行定义,有初始化时钟、引脚的,对时序设置的,在main函数中只通过引用函数来实现功能

step2 stm32_spi_to_fpga_input

fpga_spi_input

对CS、SCLK的下降沿,上升沿的判断,使用?:来幅值给W_I_CS_UP这几个变量。CS、SCLK用多个D触发器就是为了判断两个时间周期里面是否发生跳变,是什么跳变。同时为了时钟同步,对CLK也做多级D触发器。
在CS的下降沿读入串行的IN,经过SCLK上升沿的移位后在CS的上升沿幅值给buf变量后并行输出,这个程序是32位输出的。
在这里插入图片描述

stm32_spi_to_fpga_input

与step1相同的是初始化和LED时序
输出32位数据,要分成4次,每次8位
在这里插入图片描述

step3 stm32_spi_write_fpga_addr_decode

fpga_spi_input_bus_addr_decode

RTL视图

module spi_bus(//
  I_CLK     ,
  I_CS      ,
  I_SCLK    ,
  I_SDIN    ,
  O_WD      ,
  O_WE      ,
  O_TESTOUT1);

input I_CLK    ;
input I_CS     ;
input I_SCLK   ;
input I_SDIN   ;

output [16-1:0] O_WD   ;
output [32-1:0] O_WE   ;
output            O_TESTOUT1;

wire[32-1:0] W_U_spi_O_DOUT;
wire         W_U_spi_O_DOV ;
  
spi_in_to_parallel_data_out U_spi_s2p(
  .I_CLK     (I_CLK ),
  .I_CS      (I_CS  ),
  .I_SCLK    (I_SCLK),
  .I_SDIN    (I_SDIN),
  .O_DOUT    (W_U_spi_O_DOUT),
  .O_DOV     (W_U_spi_O_DOV ),
  .O_TESTOUT1());

wire [16-1:0]   W_U_dec_O_DAT;
wire [32 -1:0]  W_U_dec_O_DOV;

  
addr_decode U_decode(
  .I_CLK      (I_CLK                ),
  .I_ENA      (W_U_spi_O_DOV        ), // input enable
  .I_DIN      (W_U_spi_O_DOUT[15: 0]),
  .I_AIN      (W_U_spi_O_DOUT[31:16]),
  .O_DAT      (W_U_dec_O_DAT        ),
  .O_DOV      (W_U_dec_O_DOV        ),
  .O_TESTOUT1 ());

assign O_WD = W_U_dec_O_DAT;
assign O_WE = W_U_dec_O_DOV;

在这里插入图片描述

stm32_spi_to_fpga_bus_addr_decode

#step4 stm32_spi_read_select_write_fpga_addr_decode

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:39:31  更:2021-07-24 11:41:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 6:43:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码