器件型号:TDA4VMXEVM
您好!
我使用的是 TDA4 EVM。 在通用处理器板中、有2个用户 LED。
令人困惑的部分是 I2C0、它控制此扩展板、也连接到其他 IC。
请指导我如何切换 LED?
谢谢、此致、
Gurudath
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
器件型号:TDA4VMXEVM
您好!
我使用的是 TDA4 EVM。 在通用处理器板中、有2个用户 LED。
令人困惑的部分是 I2C0、它控制此扩展板、也连接到其他 IC。
请指导我如何切换 LED?
谢谢、此致、
Gurudath
您好、Nikhil、
我尝试使用以下命令在 P26上打开 LED1:
i2cset -y 0 0x21 0x06 0xBF
但我得到了"写入失败"作为响应。
然后、我尝试使用以下命令将 P26的配置更改为输出:
i2cset -y 0 0x21 0x0E 0xBF
然后、我还得到 了"写入失败"作为响应。
我尝试使用以下命令读取 i2c 寄存器值:
i2cget -y 0x21 0x06
我收到"读取失败"的响应。
因此 i2c 无法正常工作。 原因可能是什么?如何进行调试?
即使使用-f 参数、我也会得到相同的结果。
原因可能是什么?如何进行调试?
如果我执行"i2cdetect -l "、则会列出 i2c0。 以下是输出,其中未列出0x21:
i2cdetect -y 0
警告:无法使用 SMBus 快速写入命令、将跳过一些地址
0 1 2 3 4 5 6 7 8 9 A b c d e f
00:
10:
20:
30:------------ ------
40:
50:50 51 ---------- ------------ ----------
60:
70:
您好 Gurudath、
尝试"i2cdetect -r -y 3"
这是 MAIN_i2c0、还有其他 MCU/主 i2c、得到数字0、1和2。 因此、主 i2c 编号从3开始。
GPIO 扩展器也位于地址0x22上。 EVM 通用处理器板 原理图的代码段 如下所示。
以下命令用于 EVM 切换 LED、
i2cdetect -r -y 3.
i2cset -f -y 3 0x22 0x06 0xBF
i2cset -f -y 3 0x22 0x0E 0xBF
此致、
Vishal
原理图中似乎存在错误。
您可以在运行时检查 LED 的正确地址
i2cdetect -r -y 3 #This 将显示0x22处的器件
GPIO 扩展器数据表 http://www.ti.com/lit/ds/symlink/tca6424a.pdf
您可以运行以下操作来查看它与器件 TCA6424ARGJR 具有相同的寄存器映射
i2cdump -f -y 3 0x22
您可以通过将位设置为0来设置 P26和 P27的输出方向
Val=`i2cget -f -y 3 0x22 0x0E`
Echo $val
Val=`printf 0x%x $(($val & 0x3f))` #掩码第6位和第7位以将其设置为零
Echo $val
i2cset -f -y 3 0x22 0x0E $val
类似地、将输出值设置为高电平
Val=`i2cget -f -y 3 0x22 0x06`
Echo $val
Val=`printf 0x%x $(($val & 0x3f))` #掩码第6位和第7位以将其设置为零
Echo $val
i2cset -f -y 3 0x22 0x06 $val
希望这对您有所帮助。
此致、
Nikhil D