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.

[参考译文] AM3352:在 CPU 引导后切换 I2C1 引脚多路复用器

Guru**** 2885260 points

Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1643741/am3352-switching-i2c1-pin-mux-after-cpu-boot

器件型号: AM3352

您好、

我们使用的是 AM3352、并希望在 CPU 引导后通过软件切换 I2C1 引脚分配。
 
根据 AM335x 数据表、可以将 I2C1_SCL 和 I2C1_SDA 分配给多个器件引脚。 我们还了解引脚功能通过 AM335x TRM 中所述的控制模块焊盘控制寄存器进行配置。
 
我们的目标配置如下。
 
配置 1:
I2C1_SCL = E17
I2C1_SDA = E18
 
配置 2:
I2C1_SCL = J15
I2C1_SDA = H17
 
我们想在引导后通过更改焊盘控制寄存器在这两种配置之间进行切换。
 
我们假定的顺序如下。
1.停止 I2C1 通信。
2.确认 I2C 传输完成且总线处于空闲状态。
3.必要时禁用 I2C1 控制器。
4.从 I2C1 功能中删除以前的引脚。
5.配置先前的引脚,使其不会驱动外部总线。
6.将新引脚配置为 I2C1_SCL 和 I2C1_SDA。
7.确认 SCL 和 SDA 稳定为高电平。
8.启用 I2C1 并恢复通信。
 
您能否确认以下几点?
 
1.是否允许在引导后通过更新焊盘控制寄存器来切换 I2C1_SCL 和 I2C1_SDA 引脚多路复用器?
 
2.以上顺序是否可以接受?
 
3.对于以前使用的引脚,我们是否应该将它们配置为不驱动外部总线,而不是将它们驱动为 GPIO 高电平或低电平?
 
4.更改 Pad MUX 设置后是否需要任何等待时间? 我们无法在数据表或 TRM 中找到固定的等待时间要求。
 
5.我们是否应该避免同时将两个引脚组分配给 I2C1 功能?
 
我们知道 I2C 信号需要外部上拉电阻、AM335x 原理图检查清单建议在连接到正确 I/O 电压轨的 I2C_DATA 和 I2C_CLK 上使用 4.7k Ω 上拉电阻。
 
此致、
Conor
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Conor:

    1. Re 路由外设引脚通常在引导后不执行。 您的项目中是否不能选择 改用其他 I2C 外设(例如 I2C2)?

    2.引脚多路复用必须在启用外设之前完成、因此是的、您可能需要在重新多路复用之前停止外设。

    3. Re 到 GPIO 的多路复用应该可以正常(假设未配置 GPIO 外设,它默认为输入)

    4.如上所述,这不是一个典型的程序和时间要求没有表征  

    5.是的、必须将一个外设只路由到一组引脚。

    如果需要、稍后可以调整 I2C 上拉电阻。 值将主要取决于传输速度和 I/O 电源电压 (1.8 或 3.3V)

    此致、

    Stan