+dsp(主机)与fpga(从机)的i2c通讯
时间:10-02
整理:3721RD
点击:
因为工作上的要求需要使用DSP与FPGA进行通信,DSP(做主机)对FPGA(做从机)进行数据读写操作,对FPGA的寄存器进行配置,以及相关的控制;
一、先简单介绍一下IIC协议的规则:
1、工作速率一般是100kHz;
2、支持支持多机通讯;
3、支持多主控模块;
4、但同一时刻只允许有一个主控;
5、由数据线SDA和时钟SCL构成的串行总线;
6、每个电路和模块都有唯一的地址;
7、每个器件可以使用独立电源。
二、iic读写操作步骤:
i2c协议写通讯操作:
1、发START信号开始;
2、匹配从机的设备地址;
3、匹配成功后发r/w位,1表示读操作,0表示写操作;
4、接受ACK信号;
5、发寄存器地址;
6、接收ACK信号;
7、发寄存器数据;
8、发STOP信号结束;
iic写操作时序图:
i2c协议通讯读操作:
1、发START信号开始;
2、匹配从机的设备地址;
3、然后发r/w位,1表示读操作,0表示写操作,这里发0,先写寄存器的地址;
4、接受ACK信号;
5、再发一个START信号;
6、匹配设备地址;
7、匹配地址成功后发r/w位,1表示读操作,0表示写操作,这里发1,开始读数据;
8、接收ACK信号;
9、接收寄存器数据;
10、发STOP信号结束读数据;
iic读操作时序图:
三、iic读写的具体操作:
将DSP的sda,sclk信号线和FPGA的sda、sclk信号线相连,(注意要DSP和FPGA要共地),打开CCS,打开创龙所给的I2C例程
编译,debug 在写一个字节那里设置一个断点,单步调试,
,不断F6,FPGA从机端可以不断接受到DSP 的sda sclk的信号,以下是调试时FPGA端收到的信号
写操作,设备地址0x52,寄存器地址0x66,寄存器数据0x99
读操作,设备地址0x52,因为之前写操作时已经给FPGA写了一个寄存器地址,直接读出数据0x99
,小编好厉害啊,用的是什么FPGA