kevincoxee 发表于 2013-12-9 14:48:04

在AM3354上做SPI扩展串口


处理器是TI的AM3354,因为串口不够用所以用SPI总线加VK3224扩展了8路串口。但是在修改板级驱动文件arch/arm/mach-omap2/board-am335xevm.c的时候对于SPI引脚复用函数有这么几个问题:

函数体如下:
static struct pinmux_config spi1_pin_mux[] =
{
      {"mcasp0_aclkx.spi1_sclk", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
      {"mcasp0_fsx.spi1_d0", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL | AM33XX_PIN_INPUT_PULLUP},
      {"mcasp0_axr0.spi1_d1", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL | AM33XX_INPUT_EN},
      {"mcasp0_ahclkr.spi1_cs0", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL | AM33XX_PIN_OUTPUT_PULLUP},
      {"xdma_event_intr0.spi1_cs1", OMAP_MUX_MODE4 | AM33XX_PULL_ENBL | AM33XX_PIN_OUTPUT_PULLUP},
      {"xdma_event_intr1.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
      {NULL, 0},
};

问题:
1.这里OMPA_MUX_MODE3是什么模式?对于OMAP_MUX_MODE的几种模式是怎么解释的?google了半天都查不到很好的资料。
2.按理说spi1_d0和spi1_d1应该有一个是MOSI有一个是MISO,所以应该有一个是INPUT有一个是OUTPUT,为什么这个结构体里两个关键全部设置的是INPUT呢?

困扰了很久的问题,希望能得到一些帮助,多谢各位

kevincoxee 发表于 2013-12-9 16:41:06

自己顶一个~

mangocity 发表于 2013-12-9 16:53:52

这是kernel代码:

16 /* 34xx mux mode options for each pin. See TRM for options */
17 #define OMAP_MUX_MODE0      0
18 #define OMAP_MUX_MODE1      1
19 #define OMAP_MUX_MODE2      2
20 #define OMAP_MUX_MODE3      3
21 #define OMAP_MUX_MODE4      4
22 #define OMAP_MUX_MODE5      5
23 #define OMAP_MUX_MODE6      6
24 #define OMAP_MUX_MODE7      7


TRM 也就是用户手册上有详细解释。

boyiee 发表于 2013-12-9 16:57:03

楼主不仔细看DS 该打PP,

Pins SPIx_D0 and SPIx_D1 can function as SIMO or SOMI.

这两个管脚可以设置的 自己好找找在什么地方 我不是做这个MPU的, 至少刚出来时候看了一遍DS。 有点印象, 去用户手册搜下

kevincoxee 发表于 2013-12-10 15:41:11

mangocity 发表于 2013-12-9 16:53
这是kernel代码:

16 /* 34xx mux mode options for each pin. See TRM for options */


谢谢!我去看一下

kevincoxee 发表于 2013-12-10 15:41:43

boyiee 发表于 2013-12-9 16:57
楼主不仔细看DS 该打PP,

Pins SPIx_D0 and SPIx_D1 can function as SIMO or SOMI.


该打该打~不过。。。DS是啥?

rayman_ppx 发表于 2013-12-10 17:50:44

datasheet啊
页: [1]
查看完整版本: 在AM3354上做SPI扩展串口