说明:
这是一个通过spi配置芯片595八个引脚的高低电平的输出控制,大大的节约了FPGA的引脚,
在这里fpga需要四根线来配置,用户可以加载许多片595,就看fpga配置成多少bits输出了.16bits就是两片595=2*8腿;32bits=4片*8腿;
在上面的时序图中可以知道
1.OE端子全程为零;
2.srclk时钟周期为80ns;
3.ser从set_data的最低位开始翻译,如下解释:
status_str:(此状态机写的很简练,值得学习哟)
begin
ser <= set_data_d[0];
count <= count + 'd1;
if(count[1:0] == 2'b01)//计数器开始等于1时
begin
set_data_d[30:0] <= set_data_d[31:1];//count每计数四次就实现一次右移操作,然后让ser读零位操作;
end
srclk <= ~count[1];//计数器每增加两个数就开始翻转,即4个clk周期为srclk的一个周期;
if(count == 'd127)//32位数据的传输128/4=32;
Status <= status_over;
end
以下是htc595的dadasheet
一个8bit的
如果16bit
易知通过QH'连接到下一片的SER端子即可;16bit;