在mux.c的头文件中有定义:
#define RXACTIVE (0x1 << 5)
#define PULLDOWN_EN (0x0 << 4) /* Pull Down Selection */
#define PULLUP_EN (0x1 << 4) /* Pull Up Selection */
#define PULLUDEN (0x0 << 3) /* Pull up enabled */
#define PULLUDDIS (0x1 << 3) /* Pull up disabled */
在mux.c文件中,
输入为
{OFFSET(spi0_cs1), (MODE(7) | RXACTIVE | PULLUP_EN)}, /* GPIO0_6 */
输出为:
{OFFSET(ecap0_in_pwm0_out), (MODE(7) | PULLUDEN)}, /* GPIO0_7 */
这让我有些疑惑,
1、输出为什么仅仅设置为PULL up enable就可以了?
2、输出是否需要设置Pull up enable?
Nancy Wang:
请问具体是配置的哪个接口?使用的引脚是哪些?
user6238334:
回复 Nancy Wang:
比方说将D15、D16、D18模式选择为gpio,输出到LED上,按照上面的输出仅仅设置为PULL enable。代码为
{OFFSET(uart1_rxd), (MODE(7) | PULLUDEN)}, /* gpio_out led*/
{OFFSET(uart1_txd), (MODE(7) | PULLUDEN)},/* gpio_out led */
{OFFSET(uart1_ctsn), (MODE(7) | PULLUDEN)},/* gpio_out led*/
而对于输入,比方说UART0_RXD,使用RXD模式,他的设置为里面就没有 PULLUDEN,直接设置为 MODE(0) RXACTIVE PULLUP_EN
Nancy Wang:
回复 user6238334:
请看TRM 9.2.2.2 Pull Selection 中推荐的配置。
www.ti.com/…/spruh73q.pdf
另外需要修正一下代码的注释为:
#define PULLUDEN(0x0 << 3) /* Pull up enabled */=>/* pull up/down enable */
#define PULLUDDIS(0x1 << 3) /* Pull up disabled */ =>/* pull up/down disable */
user6238334:
回复 Nancy Wang:
你好,对于TRM 9.2.2.2 Pull Selection 的内容我有些疑惑。
按照TRM 9.2.2.2 Pull Selection 的说法. If a pad is always configured in output mode, it is recommended for user software to disable any internal pull resistor tied to it, to avoid unnecessary consumption.输出模式应该禁用内部的上下拉电阻,这是如何设置?这是指PULLUDENABLE为1的情况吗?
另外TRM 9.2.2.2 Pull Selection 对于输入的解释也比较模糊。.
你能否帮我判断一下我前面对于输出GPIO012、14、15的设置是否正确。以及输入UART0_RXD配置是否正确?