s3c6410 -- spi cs clk 波形

本文深入探讨了深度学习技术在音视频处理领域的应用,包括图像处理、AR特效、AI音视频处理等方面,详细介绍了各类技术原理及实际案例。

 

转载于:https://www.cnblogs.com/zym0805/archive/2011/08/29/2158020.html

module SPI_MO( input wire div_clk , input wire rst_n , input wire SPI_start, input wire [1:0]SPI_cmd,//工作状态 input wire [7:0]SPI_wrdata, input wire [7:0]SPI_wrdata_width, //传输数据宽度 output reg SPI_sck_en, output reg SPI_sck , output reg CS , output reg SPI_MISO, output reg SPI_done ); /* parameter SPI_wrdata_width_X8 = 8&#39;d8; */ wire div_clk_not; assign div_clk_not = ~div_clk; // 新增:位宽锁存寄存器 reg [7:0] spi_wrdata_width_latch; reg [7:0]spi_wrdata_latch; parameter IDLE = 8&#39;d0; parameter S0 = 8&#39;d1; parameter S1 = 8&#39;d2; parameter S2 = 8&#39;d3; parameter S3 = 8&#39;d4; parameter S4 = 8&#39;d5; reg [7:0]state; reg [7:0]cnt; //状态跳转 always @(posedge div_clk , negedge rst_n) begin if(!rst_n) state <= IDLE; else case(state) IDLE ://空闲状态 begin if(SPI_start) state <= S0; else state <= IDLE; end S0 ://? begin state <= S1; cnt <= 8&#39;d0; end S1 ://数据处理把并行数据变串行 begin if(cnt <= spi_wrdata_width_latch - 8&#39;d1) begin state <= state; cnt <= cnt + 1&#39;b1; end else begin state <= S2; cnt <= 8&#39;d0; end end S2 ://CS拉回复位状态 begin state <= S3; end S3 ://发完标志 begin state <= S4;//? end S4 : begin state <= IDLE; end default : state <= IDLE; endcase end always @(posedge div_clk , negedge rst_n) begin if(!rst_n) begin spi_wrdata_latch <= 8&#39;d0; spi_wrdata_width_latch <= 8&#39;d0; // 复位初始化 end else if(SPI_start) // 启动时同步锁存数据和位宽 begin spi_wrdata_latch <= SPI_wrdata; spi_wrdata_width_latch <= SPI_wrdata_width; // 锁存位宽 end else begin spi_wrdata_latch <= spi_wrdata_latch; spi_wrdata_width_latch <= spi_wrdata_width_latch; // 保持锁存值 end end //输出控制 always @(posedge div_clk , negedge rst_n) begin if(!rst_n) begin SPI_sck_en <= 1&#39;b0; SPI_sck <= 1&#39;b0; CS <= 1&#39;b1; SPI_MISO <= 1&#39;b0; SPI_done <= 1&#39;b0; end else if(state == S0) CS <= 1&#39;b0; else if(state == S1 && cnt < spi_wrdata_width_latch ) begin SPI_sck_en <= 1&#39;b1; SPI_sck <= div_clk_not; SPI_MISO <= spi_wrdata_latch[cnt];//低位先出 end else if(state == S2) begin SPI_sck_en <= 1&#39;b0; // 传输结束,关闭时钟使能 end else if(state == S3) begin SPI_done <= 1&#39;b1; CS <= 1&#39;b1; end else if(state == S4) SPI_done <= 1&#39;b0; else begin SPI_sck_en <= 1&#39;b0; SPI_sck <= 1&#39;b0; CS <= 1&#39;b1; SPI_MISO <= 1&#39;b0; SPI_done <= 1&#39;b0; end end endmodule给我分析并改正为什么SPI_clk全程为0
08-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值