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

嗨对话小组

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

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

谢谢

gl_dialog(未验证)
你好,

你好,

您可以从路径DA1458x_SDK_3.0.6\peripheral_examples中检查peripheral_examples。
它展示了如何处理I2C通信。

1)确实,你必须在以下地方申报GPIOs密码:
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年8个月前
大师
加入:2014-08-05 37
嗨,我试过外设

你好,我尝试了外设示例接口I2C与我的RTC。现在我使用Abracon RTC 1804,它是7位寻址模式。但是当我调用read或write时,内建函数i2c_wait_until_eeprom_ready()被调用,这个函数被挂起!!我尝试禁用这个功能,但仍然没有响应我的RTC。(用i2c调试器测试RTC,表明RTC工作正常)
在这个例子中,现在我已经在端口0 2和3引脚上连接了rtc !我可以看到数据信号和时钟信号使用范围,试图写到我的RTC,它只是挂起来这样!
日志含义DA子板处于Boost模式。
等待您的回复!!

hrg
离线
最后看到:2年8个月前
大师
加入: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(读访问)
/ / WAIT_UNTIL_I2C_FIFO_IS_EMPTY ();//必须被删除
WAIT_FOR_RECEIVED_BYTE ();//等待接收的数据
返回(0xFF & GetWord16(I2C_DATA_CMD_REG));//接收字节

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

很抱歉给您带来了不便。

问候,

DIALOG_TEAM。

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

嗨Dialog_Team,

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

谢谢,
亚历克斯

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

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

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

谢谢

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

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

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

谢谢

hrg
离线
最后看到:2年8个月前
大师
加入: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年7个月前
专家
加入:2014-02-28 19:16
嗨GL,

嗨GL,

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

Dialog_HM
离线
最后看到:9个月4个星期前
加入:2014-04-01阿联酋
你好,

你好,

可以使用I2C EEPROM驱动程序来控制其他非EEPROM的I2C应用芯片。亚博国际官网平台网址温度传感器(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 with uart
带蜂鸣器和uart的正交编码器
*---------------------------------------------------------
*/
//硬件配置<0=> SPI Flash with UART <1=> I2C EEPROM with UART <2=>正交编码器,定时器和蜂鸣器与UART
#define HARDWARE_CONFIGURATION_INDEX (1) // 1 => I2C . I2C . I2C

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

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

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

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

//读取内部ID-number:
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,但事实并非如此。

{嗯}

主题锁定