使用am437x-evm-linux-sdk-src-03.02.00.05进行移植,硬件参考了am437x-gp-evm但有一些改动。I2C与TI官方开发板不同。.
开发板使用I2C1总线使用T20,T21pin,而我设计的板子使用B13,B14 pin做引脚。
现在修改了am437x-gp-evm.dts
i2c1_pins_default: i2c1_pins_default {
pinctrl-single,pins = <
0x110 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2) /* (B13) mii1_rx_er.I2C1_SCL */
0x10c (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2) /* (B14) mii1_crs.I2C1_SDA */
>;
};
I2C1挂载了24C32的这个设备所有添加了代码
&i2c1 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c1_pins_default>;
pinctrl-1 = <&i2c1_pins_sleep>;
24c32@50 {
compatible = "24c32";
reg = <0x50>;
pagesize = <8>;
};
};
仍然无法看到看到设备,并且用示波器抓时数据线,完全没有波形。还需要修改什么地方,是否需要修改UBOOT。
Eggsy Pang:
pinmux错了,应该是
i2c1_pins_default: i2c1_pins_default {pinctrl-single,pins = <0x110 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE3) /* (B13) mii1_rx_er.I2C1_SCL */0x10c (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE3) /* (B14) mii1_crs.I2C1_SDA */>;};
leo chen:
回复 Eggsy Pang:
有个pinmux工具,可以用用。这样就不会出错了
http://software-dl.ti.com/dsps/dsps_public_sw/am_bu/ampinmux/latest/index_FDS.html
Jian Zhou:
回复 leo chen:
如果是测试硬件,可以先在U-boot下调试。