Часто задaваемые вопросы

1. VREFP на AM335x

Q: Мы закоротили 27 контакт X5 Разъёма на GND (VREFP на GND), т.к. аналоговый вход нам не нужен.

A: Контакт 27 разъёма X5 помимо подключения к AM335x VREF имеет резистор 0 Ом (R41) к AM_ADC_VCCA (1,8В). Посему предлагается оставить данный вход без подключения.

2. Греются модули с Ethernet PHY вставленные в плату

Q: Мы купили модуль с запаянной Ethernet PHY и вставили в плату - как следствие модуль не работает и греется.

A: Начиная с ревизии 4 появилась возможность заказывать модули MTAX-SoM-AM335x с Ethernet PHY 100Mbit. Однако выводы №74, 75, 76, 77, 79 разъёма X4 были раньше GND, а в данной ревизии - выход PHY с установленными согласующими резисторами 50 Ом, которые подключены к линии 3.3В . Если вы спроектировали плату с собственным PHY - вам достаточно заказать модуль без установленного PHY.

Либо если уже заказали модуль с PHY и нужно вставить в плату - достаточно удалить следующие компоненты:

  1. Микросхему DD6 (Ethernet PHY)
  2. Девять резисторов: R140, R141, R142, R143, R130, R131, R132, R133, R134.

3. Не работает HE910 модем на отладочной плате MTAX-MB-AM335x-v1

Q: Совершенно на ровном месте возникла проблема с работоспособность HE910 на MTAX-MB-AM335x v.1 в Linux: модем не виден в ОС, устройства /dev/ttyACMx не появляются.
Подгружается модуль modprobe cdc-acm. dmesg:
[ 440.209472] usbcore: registered new interface driver cdc_acm
[ 440.215484] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
Модуль подгружается, но модема не видит, устройств /dev/ttyACMx нет.

A: Дело в том, что для работы модема необходимо проделать следующие операции:

  1. выпаять резисторы:
  • R100 - для включения питания на sim карту,
  • R110, R111, R112, R113 - подтягивающие резисторы нa shutdown и ON_OFF.
  1. После загрузки платы закоротить на 6 секунд контакты на R113 чтобы подать импульс с нулевым активным уровнем для включения модема.

В Linux должны увидеть приведенные вами строчки инициализации модема.
На MTAX-MB-AM335x-v2 - для включения модема используется GPIO(AM_HE910_ONOFF).

4. Создание ubifs образа из каталога targetNFS

Q: Собрали файлы для корневой файловой системы в каталоге targetNFS. Записали на SD карту, все работает. Как теперь создать образ ubi-fs?

A: Если применялся патч для MTAX модуля (например https://drive.google.com/open?id=0B1nl8q4_-tA-OUlBVVFFdWZPNUk), то в Makefile есть цель для сборки UBI образа корневой файловой системы:

	ubi:
        @echo ==================================================
        @echo      Creating ubi.img root filesystem for NAND
        @echo ==================================================
        mkfs.ubifs -r ${DESTDIR} -F -o ubifs.img -m 2048 -e 126976 -c 2400
        ubinize -o ubi.img -p 128KiB -m 2048 ubinize.cfg

то есть можно собрать ubi.img, выполнив команду:
make ubi Правда, следует отметить, что файлы из targetNFS могут не поместиться в образ, созданный с такими параметрами. Поэтому можно перед созданием UBI образа запустить скрипт rm_files.sh, удаляющий некоторые ненужные файлы:

	rm -R targetNFS/opt/*
rm targetNFS/boot/MLO-*
rm targetNFS/boot/u-boot-*
rm targetNFS/boot/uImage-3.2.0
rm targetNFS/boot/vmlinux-3.2.0
rm targetNFS/usr/share/ti/video/*
rm -R targetNFS/usr/share/doc/*
rm targetNFS/usr/share/wl1271-demos/bluetooth/gallery/*
rm -R targetNFS/usr/bin/qtopia/*

5. Как сконфигурировать 2 Ethernet на модуле MTAX-SOM-AM335x

Q: В нашей материнской плате используется 2 ethernet порта: RGMII 1Gb и MII 100Mb. как и каким образом правильно активировать порты ethernet. в процессоре TI AM335X предусмотрено использование 2 ethernet контроллеров через свич.

A: Переконфигурировать ядро Linux(поправить Pin Mux для вашей периферии) можно в файле linux-3.2.0-psp04.06.00.11/arch/arm/mach-omap2/board-mtax-am335x.c. Пример того как используется 2 eth можно посмотреть в board-am335xevm.c. Например:

static struct pinmux_config mii1_pin_mux[] = {     // Для нашего PHY
      {"mii1_rxerr.mii1_rxerr", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
      {"mii1_txen.mii1_txen", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
      {"mii1_rxdv.mii1_rxdv", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
      {"mii1_txd3.mii1_txd3", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
      {"mii1_txd2.mii1_txd2", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
      {"mii1_txd1.mii1_txd1", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
      {"mii1_txd0.mii1_txd0", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
      {"mii1_txclk.mii1_txclk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
      {"mii1_rxclk.mii1_rxclk", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
      {"mii1_rxd3.mii1_rxd3", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
      {"mii1_rxd2.mii1_rxd2", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
      {"mii1_rxd1.mii1_rxd1", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
      {"mii1_rxd0.mii1_rxd0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
      {"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
      {"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP},
      {NULL, 0},
};
/* Module pin mux for rgmii2 */
static struct pinmux_config rgmii2_pin_mux[] = {     // для вашего PHY
        {"gpmc_a0.rgmii2_tctl", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
        {"gpmc_a1.rgmii2_rctl", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
        {"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
        {"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
        {"gpmc_a4.rgmii2_td1", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
        {"gpmc_a5.rgmii2_td0", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
        {"gpmc_a6.rgmii2_tclk", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT},
        {"gpmc_a7.rgmii2_rclk", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
        {"gpmc_a8.rgmii2_rd3", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
        {"gpmc_a9.rgmii2_rd2", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
        {"gpmc_a10.rgmii2_rd1", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
        {"gpmc_a11.rgmii2_rd0", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
        {"mdio_data.mdio_data", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
        {"mdio_clk.mdio_clk", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT_PULLUP},
        {NULL, 0},
};

static void rgmii2_init(int evm_id, int profile)
{
        setup_pin_mux(rgmii2_pin_mux);
        return;
}
static struct evm_dev_cfg mtax_mb_dev_cfg[] = {
       ....
 {mii1_init,   DEV_ON_BASEBOARD, PROFILE_ALL},
 {rgmii2_init,   DEV_ON_BASEBOARD, PROFILE_ALL},//Добавьте для поддержки вашего PHY
       ....
        {NULL, 0, 0},
};

Проверьте соответствие выводов и указанных выше PinMix значений.