13个职位/0个新职位
最后一篇文章
人力资源
离线
最后一次见到:2年2个月前
上师
已加入:2014-08-05 13:37
I2C接口

嗨对话小组

我对通过i2c连接RTC有疑问,我需要使用GPIO端口2引脚4,5。所以问题是我应该在哪里配置GPIO引脚?从现在起,我使用接近报告程序添加我的接口和检查其工作与否!因此,在phriph\u setup.c中,我保留并配置了我的GPIO引脚。这样对吗?或者有没有其他标准的方法来定义这些GPIO引脚??

2) 此外,如何配置这些引脚作为输入输出引脚在i2c通信期间,引脚应同时作为输入和输出工作。
我使用eeprom接口的例子,以便端口到我的RTC。所以我在这些需要你的支持,等待你的回应。

谢谢你

GLU对话框
离线
最后一次见到:3年3个月前
工作人员
已加入:2014-02-07 13:35
你好,

你好,

您可以从路径:DA1458x\ U SDK\ U 3.0.6\外设的例子。
它展示了如何处理I2C通信。

1) 实际上,您必须在以下位置声明GPIOs pin:
设置\u pad \u函数(void)

2) 对于I2C,应该是:
GPIO\ U配置引脚(I2C\ U GPIO\ U端口、I2C\ U SCL\ U引脚、输入、PID\ U I2C\ U SCL、false);
GPIO\ U配置引脚(I2C\ U GPIO\ U端口、I2C\ U SDA\ U引脚、输入、PID\ U I2C\ U SDA、假);

当做,
对话小组。

人力资源
离线
最后一次见到:2年2个月前
上师
已加入:2014-08-05 13:37
嗨,我试过用飞利浦

嗨,我试着用ipheral的例子接口I2C与我的RTC。截至目前我使用阿布拉康RTC1804,这是7位寻址模式。但是当我调用read或write时,内置函数i2c会一直等到调用了eeprom ready()之后,这个函数就会挂断!!我尝试禁用此功能,但RTC仍然没有响应。(使用i2c调试器测试RTC可得出RTC正常工作的结论)
在这个例子中,现在我已经连接了端口0 2和3引脚的rtc!我可以用示波器看到数据信号和时钟信号,试着写入我的RTC,它就这样挂断了!
DA子板处于增强模式。
我在等你的答复!!

人力资源
离线
最后一次见到:2年2个月前
上师
已加入:2014-08-05 13:37
我完全陷在这里面了

我完全卡在这个接口部分。硬件连接似乎是好的!如果你能尽快回复,那会很有帮助的!因为我没时间了!

GLU对话框
离线
最后一次见到:3年3个月前
工作人员
已加入:2014-02-07 13:35
你好,

你好,

目前,我们已经为EEPROM存储器创建了特定的i2capi。

所有的API函数都可以在:i2c\u eeprom.c文件中找到,您需要更改一些API,例如:

uint8\t i2c\u eeprom\u读取字节(uint32\u t地址)
{
i2c_等待_直到_eeprom_就绪();
i2c\发送\地址(address);

//等待_I2C _FIFO _已满();//必须删除
SEND_I2C_COMMAND(0x0100);//将R/W位设为1(读访问)
//等待_,直到_I2C _FIFO _为_EMPTY();//必须删除
WAIT_FOR_RECEIVED_BYTE();//等待接收数据
return(0xFF&GetWord16(I2C_DATA_CMD_REG));//获取接收字节
}

我们的计划是为每个传感器创建通用的I2C api,但恐怕还没有。

很抱歉这么方便。

当做,

对话小组。

罗念文
离线
最后一次见到:1年3周前
专家
已加入:2014-02-28 19:16
嗨,我的团队,

嗨,我的团队,

我找不到i2c\u eeprom.c文件。它在SDK中吗?请让我知道如何才能找到它和哪个SDK。

谢谢,
亚历克斯

人力资源
离线
最后一次见到:2年2个月前
上师
已加入:2014-08-05 13:37
最好创建一个

最好为I2C通信创建一个通用API!

但到目前为止,当移植到自定义I2C文件时,我没有得到RTC(abracon 1804)的确认。我通过读取I2C\u TX\u ABRT\u SOURCE\u REG寄存器进行了检查!
你能详细解释一下为了通过I2C访问RTC要使用哪些寄存器吗!!

谢谢你

人力资源
离线
最后一次见到:2年2个月前
上师
已加入:2014-08-05 13:37
最好创建一个

最好为I2C通信创建一个通用API!

但到目前为止,当移植到自定义I2C文件时,我没有得到RTC(abracon 1804)的确认。我通过读取I2C\u TX\u ABRT\u SOURCE\u REG寄存器进行了检查!
你能详细解释一下为了通过I2C访问RTC要使用哪些寄存器吗!!

谢谢你

人力资源
离线
最后一次见到:2年2个月前
上师
已加入:2014-08-05 13:37
最好创建一个

最好为I2C通信创建一个通用API!

但到目前为止,当移植到自定义I2C文件时,我没有得到RTC(abracon 1804)的确认。我通过读取I2C\u TX\u ABRT\u SOURCE\u REG寄存器进行了检查!
你能详细解释一下为了通过I2C访问RTC要使用哪些寄存器吗!!

谢谢你

GLU对话框
离线
最后一次见到:3年3个月前
工作人员
已加入:2014-02-07 13:35
你好,

你好,

请参阅本手册第112页http://support.dialog.com/system/files/resources/DA14580\u D。。。所有的细节。

当做,

对话小组。

GLU对话框
离线
最后一次见到:3年3个月前
工作人员
已加入:2014-02-07 13:35
你好,

你好,

可以从外设模板中找到i2cèeeprom.c。

当做,

对话小组。

罗念文
离线
最后一次见到:1年3周前
专家
已加入:2014-02-28 19:16
你好,GL,

你好,GL,

我找到了,但由于没有文档,有些参数不清楚。请给出i2c\u eeprom\u init()中的一些建议:
设备地址,uint16\u t dev\u address,但设备地址为7位。我只是把这个数字放进dev\u地址,比如0x00A0,R/W位设为0?是正确的吗
谢谢,
亚历克斯

对话\u-HM
离线
最后一次见到:3个月1周前
已加入:2014-04-01 16:07
你好,

你好,

可以使用I2C EEPROM驱动程序来控制其他I2C应用芯片(非EEPROM)。温度传感器(SE95)示例如下所示。亚博国际官网平台网址

第一步。打开SDK软件:
SDK…\peripheral\u示例…DA14580\u peripheral_设置.uvproj

第二步。请参阅:periph\u setup.h:
将硬件配置索引(.)更改为“1”。

/*测试定义-选择与硬件设置匹配的配置
*---------------------------------------------------------
*(0)带UART的SPI闪存
*(1)带UART的I2C EEPROM
*(2)带蜂鸣器和UART的正交编码器
*---------------------------------------------------------
*/
//硬件配置<0=>带UART的SPI闪存<1=>带UART的I2C EEPROM<2=>带UART的正交编码器、定时器和蜂鸣器
#定义硬件配置索引(1)//1=>I2C

第三步。
在:eeprom\u test.c(文件开头)中添加新软件

挥发温度;
挥发性int ii;

//测试外围SE95温度传感器
//地址=1001 A2 A1 A0 R/W=>7bitaddress=0x48。。。0x48+7=0x4F

i2c_eeprom_init(0x48,i2c_标准,i2c_7BIT_ADDR,i2c_1BYTE_ADDR);

//读取内部ID号:
ii=i2c_eeprom_read_byte(0x05);//测试读取ID值=0xA1

//读数温度
btrd=i2c\ eeprom\读取\数据(rd\数据,0,2);

温度=256*rd_数据[0]+rd_数据[1];
temperature=temperature/8;//右移3位

我希望这个例子更容易理解。
尽管有人建议i2c驱动程序只适用于EEPROM,但事实并非如此。

{hm}

主题已锁定