TI中文支持网
TI专业的中文技术问题搜集分享网站

spi设备无法找到

使用官方sdk,版本am437x-evm-linux-sdk-src-03.02.00.05。

硬件根据am437x-gp-evm设计,有部分修改。

spi上挂了一片mx66l51235l,qspi上挂了一片w25q256

现在将dts修改如下

qspi_pins_default: qspi_pins_default {
pinctrl-single,pins = <
0x210 ( PIN_INPUT | MUX_MODE3 ) /* (Y18) cam0_data2.qspi_clk */
0x214 ( PIN_OUTPUT | MUX_MODE3 ) /* (AA18) cam0_data3.qspi_csn */
0x218 ( PIN_INPUT | MUX_MODE3 ) /* (AE19) cam0_data4.qspi_d0 */
0x21c ( PIN_INPUT | MUX_MODE3 ) /* (AD19) cam0_data5.qspi_d1 */
0x220 ( PIN_INPUT | MUX_MODE3 ) /* (AE20) cam0_data6.qspi_d2 */
0x224 ( PIN_INPUT | MUX_MODE3 ) /* (AD20) cam0_data7.qspi_d3 */
>;
};

spi0_pins_default: spi0_pins_default {

pinctrl-single,pins = <
0x150 ( PIN_OUTPUT | MUX_MODE0 ) /* (P23) spi0_sclk.spi0_sclk */
0x154 ( PIN_OUTPUT | MUX_MODE0 ) /* (T22) spi0_d0.spi0_d0 */
0x158 ( PIN_OUTPUT | MUX_MODE0 ) /* (T21) spi0_d1.spi0_d1 */
0x15c ( PIN_OUTPUT | MUX_MODE0 ) /* (T20) spi0_cs0.spi0_cs0 */
>;
};

&spi0 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&spi0_pins_default>;
pinctrl-1 = <&spi0_pins_sleep>;
ti,pindir-d0-in-d1-out;

spi-max-frequency = <48000000>;
m25p80@0 {
compatible = "mx66l51235l";
spi-max-frequency = <48000000>;
reg = <0>;
spi-cpol;
spi-cpha;
spi-tx-bus-width = <1>;
spi-rx-bus-width = <1>;
#address-cells = <1>;
#size-cells = <1>;

};
};

&qspi {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&qspi_pins_default>;
pinctrl-1 = <&qspi_pins_sleep>;
ti,pindir-d0-out-d1-in;

spi-max-frequency = <48000000>;
w25q256@0 {
compatible = "w25q256";
spi-max-frequency = <48000000>;
reg = <0>;
spi-cpol;
spi-cpha;
spi-tx-bus-width = <1>;
spi-rx-bus-width = <1>;
#address-cells = <1>;
#size-cells = <1>;

};
};

启动是log信息异常

1.130919] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 31, base_baud = 3000000) is a 8250
[ 1.140943] [drm] Initialized drm 1.1.0 20060810
[ 1.153221] loop: module loaded
[ 1.158793] spi spi1.0: not using DMA for McSPI (-19)
[ 1.164223] m25p80 spi1.0: unrecognized JEDEC id bytes: 00, 0, 0
[ 1.171923] m25p80 spi32766.0: unrecognized JEDEC id bytes: 00, 0, 0
[ 1.180088] libphy: Fixed MDIO Bus: probed
[ 1.246067] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 1.252204] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
[ 1.259261] libphy: 4a101000.mdio: probed

spi32766.0应该是我用qspi挂的一个w25q256,spi1.0应该是mx66l51235l,现在从外部芯片读出的id错误。

用示波器抓,qspi仅在时钟线上有波形,cs/持续为高,4个数据线时钟为低

spi,时钟线有波形,d1信号有信号,但返回数据为0,cs/一只为高

CS为高也就是一只没有选通芯片。

不知是哪个环节出现了问题,求教

Jian Zhou:

你的dts是参考evm dts的SPI修改的把?从pinmux配置上没有发现什么问题。

赞(0)
未经允许不得转载:TI中文支持网 » spi设备无法找到
分享到: 更多 (0)