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.

[参考译文] TM4C1294NCPDT:IO-EXPANDER-EVM + Tiva TM4C LP + I2C 接口

Guru**** 2341510 points
Other Parts Discussed in Thread: IO-EXPANDER-EVM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/600957/tm4c1294ncpdt-io-expander-evm-tiva-tm4c-lp-i2c-interface

器件型号:TM4C1294NCPDT
Thread 中讨论的其他器件:IO-EXPANDER-EVM

团队、

我们的客户在使用 IO-EXPANDER-EVM、Tiva TM4C129X 开发板和 I2C 接口时遇到一些问题。

借助于这个参考代码,他们能够成功地接收数据(S1和 S2) :

I2CMasterSlaveAddrSet (I2C1_base、0x23、false);

I2CMasterDataPut (I2C1_base、0x00);    

I2CMasterControl (I2C1_base、I2C_MASTER_CMD_BURST_SEND_START);            

while (!I2CMasterBusy (I2C1_base));       

while (I2CMasterBusy (I2C1_base));        

I2CMasterSlaveAddrSet (I2C1_base、0x23、true);

I2CMasterControl (I2C1_base、I2C_MASTER_CMD_BURST_Receive_start);

while (!I2CMasterBusy (I2C1_base));       

while (I2CMasterBusy (I2C1_base));

REC = I2CMasterDataGet (I2C1_base);    

while (I2CMasterBusy (I2C1_base));

I2CMasterControl (I2C1_base、I2C_MASTER_CMD_BURST_Receive_finish);

但是,他们似乎无法通过 IO 扩展器发送数据,因为他们尝试了以下代码:

I2CMasterControl (I2C1_base、I2C_MASTER_CMD_BURST_SEND_START);

I2CMasterSlaveAddrSet (I2C1_base、0x23、false);

I2CMasterDataPut (I2C1_base、0x02);                   

while (!I2CMasterBusy (I2C1_base));       

while (I2CMasterBusy (I2C1_base));        

I2CMasterDataPut (I2C1_base、0x55);

while (I2CMasterBusy (I2C1_base));

I2CMasterControl (I2C1_base、I2C_MASTER_CMD_BURST_SEND_FINISH);

while (!I2CMasterBusy (I2C1_base));       

while (I2CMasterBusy (I2C1_base));

 

遗憾的是、他们没有成功地尝试 U2和 U1。

供参考: 对于初始化,它们具有以下代码 :

SysCtlPeripheralEnable (PORT_PINS_I2C_IOEXP_PERIPh);

GPIOPinConfigure (PIN_SCL_IOEXP_CONFIG);

GPIOPinConfigure (PIN_SDA_OEXP_CONFIG);    

GPIOPinTypeI2CSCL (PORT_PINS_I2C_OEXP_BASE、PIN_SCL_IOEXP);

GPIOPinTypeI2C (PORT_PINS_I2C_OEXP_BASE、PIN_SDA_IOEXP);

SysCtlPeripheralEnable (PORT_I2C_IOEXP_PERIPh);

I2CMasterInitExpClk (I2C1_base、SysCtlClockFreqSet (SYSCTL_OSC_INT | SYSCTL_USE_PLL | SYSCTL_CFG_VCO_480、80000000)、false);

//清除 I2C FIFO

HWREG (I2C1_BASE + I2C_O_FIFOCTL)= 80008000;

检查示波器上的 SDA 和 SCL 线路后、一切看起来都正常(开始、地址、ACK、数据(0x55)等)。

我在这种扩展器板与 TM4C LP 的组合中工作得不多。  

还有人还在 IO 扩展器+ Tiva EVM 上工作过吗?

欢迎和赞赏评论!

Ty、

是的

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    无论是公司还是我都没有任何关于参考"IO-EXPANDER-EVM"的经验

    尽管如此、我们还是承认-我们在多 家供应商提供的"IO-Expander IC"方面拥有丰富的经验。

    我们的调查结果显示、大多数这样的"IO-Expanders"(默认值)进入、"Input -Only Mode"(仅输入模式)、然后必须正确地"寻址和命令"、以启用(已寻址) IO、如"outputs"(输出)。

    减去识别"IO-Expander chip in play"(正在运行的 IO-Expander 芯片)-无法提供进一步的帮助...    (并非每个人都能"随时访问"这样的"内部供应商信息!")

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    CB1、

    首先、让我澄清一下、这款板是现成的、可供所有用户使用:
    www.ti.com/.../io-expander-evm

    客户最近购买了这款产品、并正在与之一起使用、同时还附带了 Tiva TM4C LP。 因此、这里没有"内部供应商信息"。 ;-)

    如果其他人有其他意见、我们将不胜感激。 我也可以将其移至"TCA"论坛...

    Ty、
    是的
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="Chris Yorkey"]让我澄清一下,此电路板是现成的[/QUERPLET]

    Chris、

    只有您知道-我们的外部人员不太可能(完全)了解您的大量目录-您肯定同意。

    由于供应商参与度已"下降"(iirc -昨天"无"!) -您的帖子(可能)只能由外人发布...

    虽然"链接"非常有用-"器件型号和制造商"占主导地位-但可以避免(甚至)外部人员的"磨损/撕裂"...

    (顺便说一句-我的建议(迄今为止未得到确认)几乎肯定会正确诊断并指明解决方法...)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 CB、

    同意。 我已将其副本移至 I2C (TCA)论坛。 应该从那里开始。 我的差。

    感谢昨天晚上/今天上午的快速评论。

    此致、
    是的
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    也感谢您、Chris。

    同样、为 I2C 扩展器角色提供服务的 IC "确定"默认为"仅输入"模式-并且必须"测试"为"输出模式-基于引脚。"   虽然评论很快,但它们可能包括(部分)诊断 指南/有效性-也....

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    明白。 感谢您的评论。 我同意;实际上、在这个论坛上、TM4C I2C 配置/驱动程序代码可能是需要解决的问题。 TCA/I2C 论坛的各位可能会提供有关公式各自侧面的见解-我们应该能够共同使输出模式配置按需要工作。

    再次感谢您、
    是的
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Chris -(非常)说得很好!

    两个龙在客户面前站立-一个是 MCU -另一个是 IO 扩展器 IC。   正如您所写的那样、这两个字都必须"被占用"、客户才能进入"承诺的土地"。   (如果没有错误-(特定)金发(9+)"龙培训师"(可能)可用于(特殊)任务...)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    绝对是 CB! 你找到了! 此外、在 TCAxxxx I2C 侧、我注意到从寄存器读取序列与写入寄存器序列大相径庭。 读取序列中的额外重复起始位和 R/W 位与写入不同。 我们将解决它。

    再次感谢、
    Chris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Chris -正如我(年轻)的员工所说:"你在火上!"   (数学/编程他们的"甜点"-语法-不是很好。)    只需从外部人员处"最小"推动-您(现在)正在呼吸解决方案的颈部!      (令人印象深刻)

    公司/I 长期以来一直青睐于此类"片外(MCU)" IO-Extenders。    我们更喜欢(HOARD)每个"备用/特殊功能 MCU 引脚"-和"淘汰"将"plain-Jane" GPIO 更改为"片外资源!"   (我们更喜欢使用16b 器件-有时甚至部署了两个器件)

    虽然此客户(初步)选择了 I2C -您可以(轻轻)提到类似(扩展器)器件是基于 SPI 的-因此速度更快-并且没有可怕的"NAK/ACK"(过于苛刻-通常令人痛苦)要求...   (您可能会注意到、我的公司可以生产出更"灵活"的 IO-EXPANDER"EVM"-能够利用"I2C 或 SPI -同时(唯一)"比较/对比"结果...)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Chris

    在输出模式下、引脚的写入操作之前、配置寄存器是如何配置的?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Amit、

    实际上----在我(第一个)的答复中----在这里提供了这一指导。

    然而、"IF"(扩展器 IO IC) (曾经)被命令进入输出模式、但"如何"的请求可能会被(现实)所超越!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我们正面临这一问题! 我们可以在配置寄存器中写入并回读这个寄存器、以确认我们可以写入组件、我们唯一不能做的就是驱动引脚。

    我们首先将0x00发送到寄存器0x06,然后将0x55发送到寄存器0x02... 没有成功。

    感谢您的帮助、
    Tifaine。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Tifaine、

    您指定的过程是正确的。 您能否使用示波器检查并确认配置和输出端口访问的 I2C 总线事务是否正确? 请从示波器粘贴波形快照。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    这是一个快照(ID 0x23、寄存器0x02、数据0x55)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Guyot、

    数据访问看起来正确。 还可以提供0x06上配置寄存器的值吗? 它必须读取0x0。 换句话说、在单个波形中、我正在寻找写入0x00至0x06、读取0x06、将0x55写入0x02、以确保正确进行访问。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我们通过另一个 IO-EXPANDER-EVM 更改了组件,这一个工作正常... 阅读和写作!

    感谢您的帮助!
    Tifaine。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    员工、

    事实证明、客户的 IO 扩展器 EVM 存在硬件问题。 在更换 EVM 后、它按预期工作。

    感谢大家的宝贵意见。 它有助于跟踪此情况。

    是的