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.

AM335X SPI0 D0引脚没有任何数据输出



1.SPI0 PIN MUX配置,我测试了下面几种配置

static struct pinmux_config spi0_pin_mux[] = {

{"spi0_sclk.spi0_sclk", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL
| AM33XX_INPUT_EN},
{"spi0_d0.spi0_d0", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_PULL_UP
| AM33XX_INPUT_EN},
{"spi0_d1.spi0_d1", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL
| AM33XX_INPUT_EN},
{"spi0_cs0.spi0_cs0", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_PULL_UP
| AM33XX_INPUT_EN},
{NULL, 0},

};

static struct pinmux_config spi0_pin_mux2[] = {
{"spi0_sclk.spi0_sclk", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_PULL_UP
| AM33XX_PIN_OUTPUT},
{"spi0_d0.spi0_d0", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_PULL_UP
| AM33XX_PIN_OUTPUT},
{"spi0_d1.spi0_d1", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_PULL_UP
| AM33XX_INPUT_EN},
{"spi0_cs0.spi0_cs0", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL | AM33XX_PULL_UP
| AM33XX_PIN_OUTPUT},
{NULL, 0},
};

static struct pinmux_config spi0_pin_mux3[] = {
{"spi0_sclk.spi0_sclk", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL
| AM33XX_INPUT_EN},
{"spi0_d0.spi0_d0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP},
{"spi0_d1.spi0_d1", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL
| AM33XX_INPUT_EN},
{"spi0_cs0.spi0_cs0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP},
{NULL, 0},
};

static struct spi_board_info am335x_spi0_master_info[] = {
{
.modalias = "led_spidev",
//.platform_data = &am335x_spi_flash,
.irq = -1,
.max_speed_hz = 500000,
.bus_num = 1,
.chip_select = 0,
.mode = SPI_MODE_0,
},
};

/* setup spi0 */
static void spi0_init(int evm_id, int profile)
{
pr_info("+++spi0_init7+++\n");
setup_pin_mux(spi0_pin_mux);
spi_register_board_info(am335x_spi0_master_info,
ARRAY_SIZE(am335x_spi0_master_info));
pr_info("---spi0_init4---\n");
return;
}

static struct evm_dev_cfg xx_mac_dev_cfg[] = {
{am335x_rtc_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{mmc1_wl12xx_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{mmc0_init, DEV_ON_BASEBOARD, PROFILE_ALL},
//{spi0_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{usb0_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{evm_nand_init, DEV_ON_BASEBOARD, PROFILE_ALL},
//{rgmii1_init, DEV_ON_BASEBOARD, PROFILE_ALL},
//{rgmii2_init, DEV_ON_BASEBOARD, PROFILE_ALL},
//{lcdc_init, DEV_ON_BASEBOARD, PROFILE_ALL},
//{enable_ecap2, DEV_ON_BASEBOARD, PROFILE_ALL},
//{mfd_tscadc_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{gpio_keys_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{power_pin_init, DEV_ON_BASEBOARD, PROFILE_ALL},
//{gpio_led_init, DEV_ON_BASEBOARD, PROFILE_ALL},
//{lis331dlh_init, DEV_ON_BASEBOARD, PROFILE_ALL},
//{mcasp1_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{uart0_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{uart1_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{uart5_wl12xx_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{wl12xx_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{gpio_ddr_vtt_enb_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{sgx_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{spi0_init, DEV_ON_BASEBOARD, PROFILE_ALL},
{NULL, 0, 0},
};

目前的情况是这样的,在发送数据时,有Clock输出,CS有高低变化,但是D0(MOSI)电平一直为高,没有任何变化,请问是哪里配置出了问题吗?

为什么default的 spi0_pin_mux的配置,把所有的引脚配置成了AM33XX_INPUT_EN?