Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MUX на BeagleBoard xM
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
Skaf
Всем привет.

Продолжаю разбираться с SPI на BeagleBoard xM.

Удалось собрать такое ядро, чтобы были видны /dev/spidev3.0, /dev/spidev3.1, /dev/spidev4.0

Но при запуске программы тестирования spi_test осциллограф ничего на ножках не видит.

Из чего я делаю вывод, что выводы настроены не верно, не подключены к SPI.

Нашел много рецептов по настройке MUX. Все совсем разные. Выбрал пока такой, который действует в ядре 2.6.32, которое я использую. Описан этот способ тут http://elinux.org/BeagleBoardPinMux#Recent_Kernels

Вот какой у меня получается код в соответствии с этими инстркциями

Код
#ifdef CONFIG_OMAP_MUX

static struct omap_board_mux board_mux[] __initdata = {
    
OMAP3_MUX(SDMMC2_DAT3, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT), // SPI3 CS0
    
OMAP3_MUX(MCBSP1_DX, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT), // SPI4 SIMO (MOSI)
    
OMAP3_MUX(SDMMC2_DAT2, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT), // SPI3 CS1
    
OMAP3_MUX(MCBSP1_FSX, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT), // SPI4 CS0
    
OMAP3_MUX(SDMMC2_DAT0, OMAP_MUX_MODE1 | OMAP_PIN_INPUT), // SPI3 SOMI (MISO)
    
OMAP3_MUX(MCBSP1_DR, OMAP_MUX_MODE1 | OMAP_PIN_INPUT), // SPI4 SOMI (MISO)
    
OMAP3_MUX(SDMMC2_CMD, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT), // SPI3 SIMO (MOSI)
    
OMAP3_MUX(MCBSP1_CLKR, OMAP_MUX_MODE1 | OMAP_PIN_INPUT), // SPI4 CLK
    
OMAP3_MUX(SDMMC2_CLK, OMAP_MUX_MODE1 | OMAP_PIN_INPUT), // SPI3 CLK
    
{ .reg_offset = OMAP_MUX_TERMINATOR },
};

#else

#define board_mux    NULL

#endif


Далее необходимо в конфигурации ядра прописать
CONFIG_OMAP_MUX=y

Пересобираю ядро. Вставляю флешку в BeagleBoead xM, и он отказывается грузиться. Симптомы- зависает. На экране появляется пингвинчик, однако ни одной строки не появляются и висит.

Опытным путем проверено, что зависает именно при включенном CONFIG_OMAP_MUX=y. Если эту строку убрать, то грузится опять без проблем.

Вопрос- в чем может быть проблема? Почему с включенным мультиплексором он не грузится? Как включить MUX и настроить его на SPI
kurtis
Цитата(Skaf @ Sep 11 2011, 18:40) *
Далее необходимо в конфигурации ядра прописать
CONFIG_OMAP_MUX=y

Эта опция по умолчанию включена, по крайне мере, у меня именно так. Если вы меняли что-то в config файле, то то что вы имеете сейчас, может быть результатом ваших правок.

Цитата(Skaf @ Sep 11 2011, 18:40) *
Пересобираю ядро. Вставляю флешку в BeagleBoead xM, и он отказывается грузиться. Симптомы- зависает. На экране появляется пингвинчик, однако ни одной строки не появляются и висит.

А в консоль что пишет?Пингвин может появиться только на мониторе, и не факт что туда будет писать какой-то лог, особенно если вы меняли настройки.

Вы учтите, что настраивать MUX может u-boot
Skaf
Код
Эта опция по умолчанию включена, по крайне мере, у меня именно так. Если вы меняли что-то в config файле, то то что вы имеете сейчас, может быть результатом ваших правок.


Я использовал стандартный конфигурационный файл, лежащий в /arch/arm/configs/map3_beagle_defconfig. Там CONFIG_OMAP_MUX is not set


Код
А в консоль что пишет?Пингвин может появиться только на мониторе

Пингвин на мониторе- это да. Но раньше он там и писал что-то после него сразу ) А в системной консоле на TtyS2 он пишет Loading kernel...... и все на этом


Я тут погуглил и оказалось, что проблема наблюдается не только у меня

http://elinux.org/BeagleBoard/SPI
Цитата
TIP2: some people complained about the MMC card stopping when CONFIG_OMAP_MUX is active. One pointed solution was to comment this line "omap_cfg_reg(AH8_34XX_GPIO29);" in the "board-omap3beagle.c" file (apparently u-boot configures this pin in a different way). More about this issue can be found in:

http://groups.google.com/group/beagleboard...c32bf1?lnk=raot
http://groups.google.com/group/beagleboard...e01e7f5fbe27f98
http://markmail.org/message/iqqyqmtyskvqq2is
http://www.mail-archive.com/u-boot@lists.d...e/msg51424.html


Но что с этим делать я не понял. Совет
Цитата
comment this line "omap_cfg_reg(AH8_34XX_GPIO29);" in the "board-omap3beagle.c"


выполнить не могу, т.к. указанная строчка отсутствует в моем файле board-omap3beagle.c


Если так и не получится ничего, видимо придется рыть в сторону настройки MUXa с помощью U-Boot'a, а в ядре MUX придется выключить. Но это как запасной вариант, хочется разобраться в проблеме.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.