微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > DSP学习交流 > +dsp(主机)与fpga(从机)的i2c通讯

+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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top