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.
您好专家、
我的客户 正在以100kHz 的频率运行 F280969的 I2C。 它们在 系统上面临很多 EMI、因此 I2C 在传输时总是失败。 因此、他们尝试在 GPIO 上设置操作限定条件。
它们的配置如下所示:
GpioCtrlRegs.GPAQSEL2.bit.GPIO28 = 2;/*6采样窗口*/
GpioCtrlRegs.GPAQSEL2.bit.GPIO29 = 2;/*6采样窗口*/
GpioCtrlRegs.GPACTRL.bit.QUALPRD3 = 12;/* GPIO24-GPIO31 QUALIPRD = PLLSYSCLK/12 *
它极大地提高了 I2C 通信的性能。 但实际的 I2C 频率低至70kHz。
问题1: 您能否解释为什么频率从原来的100kHz 降低到70kHz?
Q2:TRM 中说、如果外设执行同步、则不能将输入同步 用作鉴定方法。 这是否意味着此配置错误?
Q3: 它们使用上监视器来引导和校准 F28069使用 I2C、上监视器的 I2C 频率为100kHz、考虑到 Q1、是否存在任何风险?
谢谢!
您好、Sheldon、
它已经得到改进、这是很好的。
Q1回答:我不确定从现在开始这种时钟拉伸的原因。 我必须返回给您、可能需要一些其他信息来进行诊断。
Q2答案:I2C 外设引脚的示例窗口限定条件应该正常。 请参阅 TRM 第1.4.4节"输入鉴定"中的以下内容:
对于被配置为外设输入 的引脚、除了与 SYSCLKOUT 同步或者由一个采样窗口限定之外、输入也可异步。
问题3答案:目前不确定、因为需要先了解问题1。 但是、如果上监视器可以处理时钟拉伸、则应该正常。
您有一些问题:
1.在启用输入限定条件的情况下,它是否是一致的70KHz 时钟? 或者它是否会变化? 想知道信号上的噪声是否有影响。
2.在禁用输入限定条件的情况下,它是否是一致的100KHz 时钟?
3、器件以90MHz 的最大频率运行、对吧? 是否使用外部晶体为器件计时?
4.您能否分享客户在软件内初始化 I2C 的方式? 相关的重要寄存器如下所示:
I2caRegs.I2CPSC.all = x;//预分频器-应该被设定、这样模块时钟在7-12MHz 内 I2caRegs.I2CCLKL = x;// SCL 的低部分,注:必须为非零 I2caRegs.I2CCLKH = x;// SCL 的高位部分,注:必须为非零 I2caRegs.I2CFFTX.ALL = x;使用的是// TX FIFO 模式? I2caRegs.I2CFFRX.ALL = x;使用的是// RX FIFO 模式?
最棒的
Kevin
您好、Sheldon、
我需要收回对问题2的答复,同时获取更多的信息。
更新的器件 TRMS 中有以下注释、但到目前为止尚未回送至某些旧器件 TRMS:
注意:当外设本身执行同步时、可能会使用输入同步
导致意外结果。 用户应确保为配置 GPIO 引脚
在本例中是异步的。
当我有更多信息时、我会再给您回复。
谢谢、
Kevin
尊敬的 Kevin:
1.在启用输入限定条件的情况下,它是否是一致的70KHz 时钟? 或者它是否会变化? 想知道信号上的噪声是否有影响。
是的、tt 持续为70KHz。 客户通过 增加不同的负载(轻/重)来改变噪声功率、但不会出现频率变化。
2.在禁用输入限定条件的情况下,它是否是一致的100KHz 时钟?
是的、始终如一的100KHz。
3、器件以90MHz 的最大频率运行、对吧? 是否使用外部晶体为器件计时?
以90m 运行、具有内部 OSC。
4.您能否分享客户在软件内初始化 I2C 的方式? 相关的重要寄存器如下所示:
I2caRegs.I2CPSC.all = 7;
/*Tmst=( IPSC_1 )[( ICCL+_d )+_( ICCH_+d )]/I2C 输入时钟频率*/
I2caRegs.I2CCLKL = 51;/* 100.0kHz *
I2caRegs.I2CCLKH=51;
/*启用 FIFO 模式和 TXFIFO*/
I2caRegs.I2CFFTX.ALL = 0x6000;
/*启用 RXFIFO、清除 RXFFINT、*/
I2caRegs.I2CFFRX.ALL = 0x2040;
感谢您的支持! 我的专家。