此次iic,完全使用小梅哥的iic协议,对于iic仿真采用模拟EEPROM的存储器。
与之前iic的写不一样的点。对其中,数据的采集,改变都是在稳定电平的中间。并在稳定的电平中间值的代码采用的,<<。
always @(posedge clk_50m or negedge rst_n)
begin
if(!rst_n)
begin
scl_high <= 1'b0;
scl_low <= 1'b0;
end
else if(scl_cnt == (SCL_CNT_M>>2))
scl_high <= 1'b1;
else if(scl_cnt == (SCL_CNT_M>>1)+(SCL_CNT_M>>2))
scl_low <= 1'b1;
else
begin
scl_high <= 1'b0;
scl_low <= 1'b0;
end
end
通过<<,来取到计数的二分之一数, 不需要通过计算,来达到满足条件。
其他的代码条件大差不差。
对于模拟模拟EEPROM的存储器,还是不理解。
SPI(Serial Peripheral Interface,串行外围设备接口),是Motorola公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制及数据传输,广泛用于EEPROM、Flash、RTC(实时时钟)、ADC(数模转换器)、DSP(数字信号处理器)以及数字信号解码器上。SPI通信的速度很容易达到好几兆bps,所以可以用SPI总线传输一些未压缩的音频以及压缩的视频。
而且传输是双向的,必须要有数据的交换。