root@SBC8600:/media/mmcblk0p1# insmod spi-omap2-mcspi.kom25p80 spi1.0: unrecognized JEDEC id ffffff
搞了一阵子,终于搞明白am335x的spi怎么用了
目前spi的两个口都接出来了,spi0接到一片spi flash
型号为
mx66l51235f
但是读出来的id是全为f
我已经在m25p80.c中加入对应的flash信息
{ "mx66l51235f", INFO(0xc2201a, 0, 64 * 1024, 512, 0) },
不知道是怎么回事
static struct spi_board_info am335x_spi0_slave_info[] = {
{
.modalias = "m25p80",
.platform_data = &am335x_spi_flash,
.irq = -1,
///.max_speed_hz = 24000000,
.max_speed_hz = 48000000,
.bus_num = 1,
.chip_select = 0,
},
};
频率用24000000和48000000都试过,都是一样的
求指导
q1833630366
Jian Zhou:
用的是哪个版本的Linux SDK?
user4932081:
回复 Jian Zhou:
linux-3.2.0-psp04.06.00.08.sdk
这个版本的内核
u-boot-2011.09-psp04.06.00.03
这个版本的uboot
Jian Zhou:
回复 user4932081:
我们的U-boot是支持SPI Flash擦写的,建议你先在U-boot下把SPI的pinmux以及clock检查一遍,看看信号输出是否正常。
user4932081:
回复 Jian Zhou:
uboot有个命令专门调试spi的,叫做sf,功能好强大,可以在uboot命令行中就可以调试,对着示波器看波形就好了。pinmux的配置是不是在mux.c文件中?典型的qspi flash的配置是怎么样的呢?
Jian Zhou:
回复 user4932081:
是在mux.c中进行pinmux的配置的,现在进展到哪一步了?
user4932081:
回复 Jian Zhou:
在mux.c中加上
{spi0_pin_mux, PROFILE_ALL, DEV_ON_DGHTR_BRD}, {spi1_pin_mux, PROFILE_ALL, DEV_ON_DGHTR_BRD},
然后
uboot中
sf probe 0
可以看到spi flash的clk有信号,但是只有一个拉低的波形,而且cs也是只有一个2.5us的低电平
同时可以看到
SF: Got idcodes00000000: ff ff ff ff ff …..
不知道还要改哪里?
user4932081:
回复 Jian Zhou:
好像知道原因了,应该是mosi miso方向没配置对。这个方向应该怎么配置呢
Jian Zhou:
回复 user4932081:
要修改SPI的配置寄存器,你看下TRM的说明。
user4932081:
回复 Jian Zhou:
配置 MCSPI_SYST寄存器的
SPIDATDIR1和SPIDATDIR0
然而还是没有什么用
yongqing wang:
回复 user4932081:
用的是那家的spi flash?
编译的时候配置是用SPI booting的配置编译的吗?