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

Hi dialog team

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

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

谢谢你

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

你好,

您可以从路径:DA1458x\ U SDK\ U 3.0.6\外设的例子。
It shows how to handle I2C communication.

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

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

regards,
对话小组。

人力资源
离线
最后一次见到:2年2个月前
Guru
已加入: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子板处于增强模式。
am awaiting for your response !!

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

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

GLU对话框
离线
最后一次见到:3 years 3 months ago
工作人员
已加入: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); // Set R/W bit to 1 (read access)
//等待_,直到_I2C _FIFO _为_EMPTY();//必须删除
WAIT_FOR_RECEIVED_BYTE(); // Wait for received data
return(0xFF&GetWord16(I2C_DATA_CMD_REG));//获取接收字节
}

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

Sorry for this convenience.

regards,

对话小组。

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

嗨,我的团队,

I can't find the i2c_eeprom.c file. Is it in the SDK? Please let me know how can i find it and which SDK.

Thanks,
亚历克斯

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

最好创建一个generic API for I2C communication !

但到目前为止,当移植到自定义I2C文件时,我没有得到RTC(abracon 1804)的确认。我通过读取I2C\u TX\u ABRT\u SOURCE\u REG寄存器进行了检查!
could you explain in detail which registers to be used in order to acess the RTC via I2C in detail !!

谢谢你

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

最好创建一个generic API for I2C communication !

但到目前为止,当移植到自定义I2C文件时,我没有得到RTC(abracon 1804)的确认。我通过读取I2C\u TX\u ABRT\u SOURCE\u REG寄存器进行了检查!
could you explain in detail which registers to be used in order to acess the RTC via I2C in detail !!

谢谢你

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

最好创建一个generic API for I2C communication !

但到目前为止,当移植到自定义I2C文件时,我没有得到RTC(abracon 1804)的确认。我通过读取I2C\u TX\u ABRT\u SOURCE\u REG寄存器进行了检查!
could you explain in detail which registers to be used in order to acess the RTC via I2C in detail !!

谢谢你

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

你好,

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

regards,

对话小组。

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

你好,

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

regards,

对话小组。

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

Hi GL,

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

对话\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:
change the HARDWARE_CONFIGURATION_INDEX (.) to ‘1’.

/*测试定义-选择与硬件设置匹配的配置
*---------------------------------------------------------
*(0) SPI FLASH MEMORY WITH UART
*(1) I2C EEPROM WITH UART
*(2)带蜂鸣器和UART的正交编码器
*---------------------------------------------------------
*/
// Hardware Configuration <0=> SPI Flash with UART <1=> I2C EEPROM with UART <2=> Quadrature Encoder, Timers & Buzzer with 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位

I hope this example make it easier to understand.
虽然i2c-dri给出建议vers work only for EEPROM, but that is not true.

{hm}

主题已锁定