13个帖子/ 0个新
最后发表
hrg
离线
最后看到:2年5个月前
大师
加入:2014-08-05 37
I2C接口

嗨对话小组

我对通过i2c接口RTC有疑问,我需要使用GPIO端口2引脚4,5。所以问题是我应该在哪里配置GPIO引脚?到目前为止,我使用接近reporter_fh程序添加我的接口,并检查其工作与否!所以在pheriph_setup.c am保留和配置我的GPIO引脚。这条路对吗?或者有其他标准的方法来定义那些GPIO引脚吗?

2)也如何配置这些引脚作为输入输出引脚,因为在i2c通信引脚应该作为输入和输出工作。
我使用eeprom接口的例子,以端口到我的RTC。所以,我需要你的支持在这些,等待你的响应。

谢谢

gl_dialog(未验证)
你好,

你好,

peripheral_examples可以在DA1458x_SDK_3.0.6\peripheral_examples路径下查看。
它展示了如何处理I2C通信。

1)确实,你必须声明gpio pin in:
set_pad_functions(空白)

2)对于I2C,应该是:
GPIO_ConfigurePin(I2C_GPIO_PORT, I2C_SCL_PIN, INPUT, PID_I2C_SCL, false);
GPIO_ConfigurePin(I2C_GPIO_PORT, I2C_SDA_PIN, INPUT, PID_I2C_SDA,false);

问候,
DIALOG_TEAM。

hrg
离线
最后看到:2年5个月前
大师
加入:2014-08-05 37
嗨,我试过使用pheriperal

嗨,我试着用外围的例子来接口I2C与我的RTC。截至目前,我使用Abracon RTC 1804,它是7位寻址模式。但是当我调用read或write时,会调用内置函数i2c_wait_until_eeprom_ready(),并且这个函数会挂起!!我尝试禁用此功能,但仍然没有从我的RTC响应。(用i2c调试器测试RTC可以正常工作)
在这个例子中,我已经连接了端口0 2和3引脚上的rtc !我可以看到数据信号和时钟信号使用范围,试图写入我的RTC,它只是挂起这样!
DA子板处于Boost模式。
我等待你的回复!!

hrg
离线
最后看到:2年5个月前
大师
加入:2014-08-05 37
我完全陷进去了

我完全卡在这个接口部分了。硬件连接看起来没问题!如果您能尽快回复,将会很有帮助!因为我快没时间了!

gl_dialog(未验证)
你好,

你好,

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

所有的api函数都可以在:i2c_eeprom.c文件中找到,你需要修改一些api,例如:

uint8_t i2c_eeprom_read_byte (uint32_t地址)

i2c_wait_until_eeprom_ready ();
i2c_send_address(地址);

/ / WAIT_WHILE_I2C_FIFO_IS_FULL ();//必须被删除
SEND_I2C_COMMAND (0 x0100);//设置R/W位为1 (read access)
/ / WAIT_UNTIL_I2C_FIFO_IS_EMPTY ();//必须被删除
WAIT_FOR_RECEIVED_BYTE ();//等待收到的数据
返回0xFF & GetWord16(I2C_DATA_CMD_REG);//接收字节

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

很抱歉给您带来不便。

问候,

DIALOG_TEAM。

亚历克斯·罗
离线
最后看到:1年3个月前
专家
加入:2014-02-28 19:16
嗨Dialog_Team,

嗨Dialog_Team,

我找不到i2c_eeprom.c文件。它在SDK中吗?请让我知道如何我可以找到它和哪个SDK。

谢谢,
亚历克斯

hrg
离线
最后看到:2年5个月前
大师
加入:2014-08-05 37
最好是创造一个

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

但是现在,当移植到自定义I2C文件时,我没有从RTC (abracon 1804)得到确认。我通过阅读I2C_TX_ABRT_SOURCE_REG寄存器检查!
你能详细解释一下通过I2C访问RTC需要使用哪些寄存器吗?

谢谢

hrg
离线
最后看到:2年5个月前
大师
加入:2014-08-05 37
最好是创造一个

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

但是现在,当移植到自定义I2C文件时,我没有从RTC (abracon 1804)得到确认。我通过阅读I2C_TX_ABRT_SOURCE_REG寄存器检查!
你能详细解释一下通过I2C访问RTC需要使用哪些寄存器吗?

谢谢

hrg
离线
最后看到:2年5个月前
大师
加入:2014-08-05 37
最好是创造一个

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

但是现在,当移植到自定义I2C文件时,我没有从RTC (abracon 1804)得到确认。我通过阅读I2C_TX_ABRT_SOURCE_REG寄存器检查!
你能详细解释一下通过I2C访问RTC需要使用哪些寄存器吗?

谢谢

gl_dialog(未验证)
你好,

你好,

请参阅第112页http://support.dialog-semiconductor.com/system/files/resources/DA14580_D..。了解所有的细节。

问候,

对话框的团队。

gl_dialog(未验证)
你好,

你好,

i2c_eeprom.c可以从外设模板中找到。

问候,

对话框的团队。

亚历克斯·罗
离线
最后看到:1年3个月前
专家
加入:2014-02-28 19:16
嗨GL,

嗨GL,

我找到了,但由于没有医生,有些参数不清楚。请在i2c_eeprom_init()中给出一些建议:
设备地址,uint16_t dev_address,但设备地址为7位。我只是把这个数字放入dev_address,如0x00A0,和R/W位设置为0?它是correc
谢谢,
亚历克斯

Dialog_HM
离线
最后看到:6个月2天前
加入:2014-04-01阿联酋
你好,

你好,

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

步骤1。打开软件:
DA14580_peripheral_setup.uvproj . SDK

步骤2。看到:periph_setup.h:
将HARDWARE_CONFIGURATION_INDEX(.)改为' 1 '。

/* Test Definition -选择匹配你的H/W设置的配置
*---------------------------------------------------------
* (0) spi flash memory with uart
* (1) i2c eeprom与uart
*(2)正交编码器与蜂鸣器和uart
*---------------------------------------------------------
*/
//硬件配置<0=> SPI Flash with UART <1=> I2C EEPROM with UART <2=> Quadrature Encoder, Timers & Buzzer with UART
#define HARDWARE_CONFIGURATION_INDEX (1) // 1 => I2C

步骤3。
将新软件添加到:eeprom_test.c(在文件的开头)

挥发性int16_t温度;
不稳定的int二世;

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

i2c_eeprom_init(0x48, I2C_STANDARD, I2C_7BIT_ADDR, I2C_1BYTE_ADDR);

//读取内部id号:
2 = i2c_eeprom_read_byte (0 x05);//测试读取ID-value = 0xA1

/ /读取温度
BTRD = i2c_eeprom_read_data(rd_data, 0, 2);

温度= 256 * rd_data[0] + rd_data[1];
温度=温度/ 8;//右移3位

我希望这个例子能让它更容易理解。
虽然建议i2c驱动程序只能用于EEPROM,但这不是真的。

{嗯}

主题锁定