问题标签 [i2c]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1103 浏览

usb - 为 Devantech 数字罗盘设置 i2c 从地址

我正在尝试与此处找到的 Devantech 数字指南针交互 -

http://www.acroname.com/robotics/parts/R117-COMPASS.html

我正在使用 i2c-usb 转换器将其插入我的笔记本电脑 -

http://www.robot-electronics.co.uk/htm/usb_i2c_tech.htm

首先,我对电气工程了解不多。我对基本的基础有一个很好的了解,但在那之后我迷路了。

我正在尝试遵循本教程-

https://xgoat.com/wp/2007/11/11/using-i2c-from-userspace-in-linux/

但是,当我尝试设置设备地址时,我一开始就卡住了。

返回“设置从地址失败:参数无效”

我最初认为地址应该是 0xC0,因为指南针手册中的一句话是“首先发送一个起始位,模块地址(0xC0)......”但这不起作用。

现在我有一个从 1 到 100 的循环,并尝试每个地址的地址,但它们都失败了。循环是 -

我不确定还能尝试什么。现在,我只想设置地址,这样我就可以开始尝试读写了。由于转换器是实际连接到电脑的东西,我应该使用该地址吗?如果是这样,我在哪里可以在该链接上找到它的信息?如果有人知道我可以尝试什么或有什么问题,那就太好了。

编辑:

好的,我现在有这样的代码 -

它会设置地址,但不会写任何东西。每当我尝试给它写信时,我都会得到 -

0 投票
1 回答
2246 浏览

c - 创建 I2C 设备驱动程序结构设置

我正在编写一个使用 I2C 与主机通信的设备驱动程序。

下面是我想学习和理解的代码。如果我对以下代码的理解有误,请帮帮我。“//”是我自己的评论和我对代码的理解。

0 投票
1 回答
1338 浏览

linux-kernel - 何时在 I2C 上使用 platform_driver?

我正在寻找一个代码 xxx 设备是一个使用 I2C 进行通信的 IC。不知何故,它是使用平台设备编写的。要与 IC 通信,它使用“microp_i2c_write()”(请参考以下函数 write_xxx_register())。我认为这段代码很难在不同的平台上维护。这是一个导航产品。

问题: 1. 我相信我的问题是如何包含 struct i2c_client *client?进入这种情况?所以这种方式更容易移植到不同的 linux/andriod 内核?2. 为什么以及何时首选 platform_driver?有什么特别的原因吗?

0 投票
4 回答
31421 浏览

arm - 如何正确初始化 I2C stm32?

我想从 ADXL345 加速度计获取数据,但似乎我连接错误。

SCL-PC6(带10k电阻)

SDA-PC7(带10k电阻)

SDO-地

CS - VCC

地 - 地

3.3v - VCC

这是我的初始化代码:

在我看到的一个例子中

但我没有这个 API 可用。

请帮我。我尝试了很多解决方案,也尝试通过 SPI 连接,但没有成功:(请帮助 I2C。

0 投票
1 回答
6302 浏览

c - 如何通过 I2C 读取字节序列?

我想从我的加速度计中读取一个字节序列。我无法让它工作。当我逐字节读取时,一切正常,但是当我尝试读取序列时,我无法获得真实值。

我做错了什么?我将此函数从使用 SPI http://code.google.com/p/flyless/source/browse/trunk/FLYLess/src/hal/adxl345.c的其他函数转换

0 投票
1 回答
2238 浏览

interface - 将 pic18f4550 与 i2c EEPROM (24AA1025) 连接

我正在做一个大学项目,我需要将 pic18f4550 与 i2c EEPROM 连接起来。

我阅读了很多代码并看到了很多关于这个主题的项目。我从 MPLAB C18 编写了一个示例代码(我也尝试了许多代码),但没有人与我合作。

我不知道问题出在哪里。我的代码和电路一切正常,但是 sck 没有生成用于写入的 clk,也没有向 eeprom 写入任何内容。所以如果有人可以帮助我请。

注意:由于我是新用户,我无法发布我的电路图片!这是代码:

提前致谢

0 投票
0 回答
522 浏览

linux - 在用户空间中运行 i2c 例程还是在内核空间中运行相同的驱动程序更轻松?

我正在开发一个运行嵌入式 Linux 的基于 ARM 的系统。我正在通过 i2c(使用 SMBUS 例程)以 100Hz(每 10ms 12 个读数)从两个惯性传感器读取数据,并使用我编写的用户空间程序。

我可以看到运行“顶部”并排除我的代码的某些部分,我的计算负载的主要部分是由于 i2c 函数(大约 90% 的总 CPU 负载由我的软件给出的 30%)。

如果我使用一些驱动程序(内核空间)来读取这些数据,您认为计算负载会保持不变,只是会以不同的名称考虑,还是会由于某种系统优化而实际上减少?

0 投票
1 回答
2658 浏览

c# - 如何从 I2C 读取数据

我想在 Windows XP 中从 I2C 设备读取数据,但我是使用串行端口和 I2C 设备的初学者。我搜索了很多,但是我刚刚找到了一些要在 I2C 设备上写入但没有从中读取的代码。请描述我应该如何开始?

编辑:我有一个 I2C 设备、一个 I2C 到 USB 转换器和一根 USB 电缆。我已经按照以下顺序将它们连接在一起:I2C 设备通过电缆连接到 I2C-USB 转换器,最后转换器连接到 USB 电缆USB 电缆已连接到我的计算机系统。顺便说一句,我在我的系统上使用了 Windows XP。

0 投票
1 回答
652 浏览

c - 用 C 语言在 SBC 中编写 i2c 接口

我正在尝试使用 SCB TS-7500 的 i2c 接口将其与微控制器 atmega32 通信。我想配置 twiclockfrequency,为此我需要配置 ECONA CAVIUM 网络访问处理器。我无法在 C 代码中配置 twiclock 频率的寄存器。我有一个名为 i2ctemp.c 的程序,我用它来帮助我。

这是TWI的地址:reg = map_phys(0x71000020,&fd); 时钟地址为0x24;然后对于 TWI_CLKDIV 位 16:8。

我做了这样的事情:

无效设置比特率(长比特率){

* 我只想知道如何获得这个寄存器“0x24”,因为这不起作用--------------------> reg[0x24/sizeof(unsigned)] = bitratediv ;** }

谢谢您的帮助

这是 ECONA CAVIUM 的手册和程序 i2ctemp.c (ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7558-linux/samples/i2ctemp.c)!(http://www.embeddedarm.com/documentation/third-party/ECONA-CNS21XX-HRM-v.1.8.pdf)!

0 投票
2 回答
16527 浏览

embedded - stm32f4 上的 I2C 从机接收器

我尝试在 stm32f4 上实现 i2c 从接收器中断服务程序。这是我的智能代码。

}

中断被调用并进入 I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED 情况。SCL 现在很低。参考手册说,如果我清除地址标志,时钟将继续并发送数据(第 579 页 - 从属接收器)。在我看来,如果有任何数据到达并且下一个状态将是 I2C_EVENT_SLAVE_BYTE_RECEIVED,则总是会调用中断。

我无法从 stm 或通过 google 找到任何示例。任何人都可以帮助我或给我一个例子。