嗨对话小组
我对通过i2c连接RTC有疑问,我需要使用GPIO端口2引脚4,5。所以问题是我应该在哪里配置GPIO引脚?从现在起,我使用接近报告程序添加我的接口和检查其工作与否!因此,在phriph\u setup.c中,我保留并配置了我的GPIO引脚。这样对吗?或者有没有其他标准的方法来定义这些GPIO引脚??
2) 此外,如何配置这些引脚作为输入输出引脚在i2c通信期间,引脚应同时作为输入和输出工作。
我使用eeprom接口的例子,以便端口到我的RTC。所以我在这些需要你的支持,等待你的回应。
谢谢你
你好,
您可以从路径: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、假);
当做,
对话小组。
嗨,我试着用ipheral的例子接口I2C与我的RTC。截至目前我使用阿布拉康RTC1804,这是7位寻址模式。但是当我调用read或write时,内置函数i2c会一直等到调用了eeprom ready()之后,这个函数就会挂断!!我尝试禁用此功能,但RTC仍然没有响应。(使用i2c调试器测试RTC可得出RTC正常工作的结论)
在这个例子中,现在我已经连接了端口0 2和3引脚的rtc!我可以用示波器看到数据信号和时钟信号,试着写入我的RTC,它就这样挂断了!
DA子板处于增强模式。
我在等你的答复!!
我完全卡在这个接口部分。硬件连接似乎是好的!如果你能尽快回复,那会很有帮助的!因为我没时间了!
你好,
目前,我们已经为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,但恐怕还没有。
很抱歉这么方便。
当做,
对话小组。
嗨,我的团队,
我找不到i2c\u eeprom.c文件。它在SDK中吗?请让我知道如何才能找到它和哪个SDK。
谢谢,
亚历克斯
最好为I2C通信创建一个通用API!
但到目前为止,当移植到自定义I2C文件时,我没有得到RTC(abracon 1804)的确认。我通过读取I2C\u TX\u ABRT\u SOURCE\u REG寄存器进行了检查!
你能详细解释一下为了通过I2C访问RTC要使用哪些寄存器吗!!
谢谢你
最好为I2C通信创建一个通用API!
但到目前为止,当移植到自定义I2C文件时,我没有得到RTC(abracon 1804)的确认。我通过读取I2C\u TX\u ABRT\u SOURCE\u REG寄存器进行了检查!
你能详细解释一下为了通过I2C访问RTC要使用哪些寄存器吗!!
谢谢你
最好为I2C通信创建一个通用API!
但到目前为止,当移植到自定义I2C文件时,我没有得到RTC(abracon 1804)的确认。我通过读取I2C\u TX\u ABRT\u SOURCE\u REG寄存器进行了检查!
你能详细解释一下为了通过I2C访问RTC要使用哪些寄存器吗!!
谢谢你
你好,
请参阅本手册第112页http://support.dialog.com/system/files/resources/DA14580\u D。。。所有的细节。
当做,
对话小组。
你好,
可以从外设模板中找到i2cèeeprom.c。
当做,
对话小组。
你好,GL,
我找到了,但由于没有文档,有些参数不清楚。请给出i2c\u eeprom\u init()中的一些建议:
设备地址,uint16\u t dev\u address,但设备地址为7位。我只是把这个数字放进dev\u地址,比如0x00A0,R/W位设为0?是正确的吗
谢谢,
亚历克斯
你好,
可以使用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}