7785|1

8

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

vivado中AXI转I2Cip核的使用时读不到数据 [复制链接]

5芯积分
本帖最后由 swaggy 于 2018-5-31 10:44 编辑

我需要把一个使用I2C时序的温度传感器ADT7420接上AHB总线。由于vivado中没有直接I2C转AHB的ip核,于是将ahb转axi、axi转iic两个ip核连在一起,如下图所示:

顶层文件调用如下:
     assign SCL = iic_rtl_scl_t ? iic_rtl_scl_o : 1'bz;
     assign SDA = iic_rtl_sda_t ? iic_rtl_sda_o : 1'bz;
     assign iic_rtl_scl_i = SCL;
     assign iic_rtl_sda_i = SDA;


   
SENSOR_T    SENSOR_T(
             .HSEL(hsel_t),
             .HCLK(fclk),
             .HRESETn(reg_sys_rst_n),
             .HREADY(hreadys),
             .HADDR(haddrs),
             .HTRANS(htranss),
             .HWRITE(hwrites),
             .HSIZE(hsizes),
             .HWDATA(hwdatas),
             .HREADYOUT(hreadyout_t),
             .HRDATA(hrdata_t),
//             .SCL(SCL),
//             .SDA(SDA)
             .iic_rtl_scl_i(iic_rtl_scl_i),
             .iic_rtl_sda_i(iic_rtl_sda_i),
             .iic_rtl_scl_o(iic_rtl_scl_o),
             .iic_rtl_sda_o(iic_rtl_sda_o),
             .iic_rtl_scl_t(iic_rtl_scl_t),
             .iic_rtl_sda_t(iic_rtl_sda_t)
        );

i2c的输入输出接口如下:

这几个输入输出之间的关系是什么。

按照使用文档上的操作时序,我使用了dynamic logic controller flow的工作模式



在keil上进行如上配置,
#include
#define LED  *(unsigned int *)  0x50000000
#define TEM_ISR  0x51000020
#define TEM_CR  0x5100100
#define TEM_IER 0x51000028
#define TEM_SR 0x51000104
#define TEM_TX_FIFO 0x51000108
#define TEM_RX_FIFO 0x5100010C
#define TEM_RX_PIRQ 0x51000120
#define TEM_RX_FIFO_OCY 0x51000118
#define TEM_TX_FIFO_OCY 0x51000114
void delay(uint32_t y);

int main(void)
{
   
    static uint8_t i = 0;
        static uint8_t l=0x01;      volatile uint32_t temp = 0;
     volatile  uint32_t temp1 = 0;
   
    while(1){
            *(unsigned int *)  TEM_IER=0xFF;
            *(unsigned int *)    TEM_RX_PIRQ=0x0F;
                *(unsigned int *)TEM_CR|=0x2;
            *(uint32_t *) TEM_TX_FIFO  =0x197;
            *(uint32_t *) TEM_TX_FIFO  =0x201;
            //temp = *(unsigned int *) TEM_RX_FIFO;
            LED =0x55;
            temp=*(unsigned int *)TEM_IER;
            //temp=1;
            //temp1=*(unsigned int *) TEM_ISR;
            //delay(10);
        
         
            *(unsigned int *)TEM_CR|=0x4;
            delay(10);
            //temp1=*(unsigned int *) TEM_ISR;
            //temp1=*(unsigned int *) TEM_ISR;
            do{
            temp1=*(unsigned int *) TEM_ISR;
            }while((temp1 & 0x8)==0);
            
            *(unsigned int *) TEM_CR=0x00000010;
            temp = *(unsigned int *) TEM_RX_FIFO;
            delay(100);
            l=l<<1;
            if(l==0){
                l=0x01;
            }
        i++;
            
    }
        
}
在进行调试时scl与sda都无波形出现。


附上axi iic的使用文档。
https://bbs.eeworld.com.cn/forum.php?mod=attachment&aid=MzU3MjMzfGM4ZmIyYjVlYjc2YzMyMjY5M2Q1ZTdhM2NmYzY3ZWM3fDE3MzcyMjUxMDQ%3D&request=yes&_f=.pdf


不胜感激!


此帖出自FPGA/CPLD论坛

最新回复

讲的特别棒,看来一边就觉得完全理解了讲的特别棒,看来一边就觉得完全理解了   详情 回复 发表于 2020-9-20 23:00
点赞 关注
 

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

讲的特别棒,看来一边就觉得完全理解了讲的特别棒,看来一边就觉得完全理解了

此帖出自FPGA/CPLD论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表