Инструменты пользователя

Инструменты сайта


wiki:pmvent

Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

wiki:pmvent [2012/11/20 19:14] (текущий)
Строка 1: Строка 1:
 +====== Одноплатный компьютер ПМВент ======
 +
 +====== Результаты тестирования ======
 +Обозначения в таблице:​\\
 +  * {{ru:​led-green.gif}} - проверено и работает как ожидается;​
 +  * {{ru:​led-grey.gif}} - не проверено вовсе;
 +  * {{ru:​led-red.gif}} - проверено и совсем не работает;​
 +
 +^ Сеть ^ USB HOST ^ USB OTG ^ Реле ^ Ц.ВХ. ^ DIP-switch ^ ЦАП ^ АЦП ^ 1-wire ^ CAN ^ RS-485 ^ Wifi ^
 +|  {{ru:​led-green.gif}} ​ |  {{ru:​led-green.gif}} ​ |  {{ru:​led-green.gif}} ​ |  {{ru:​led-green.gif}} ​ |  {{ru:​led-green.gif}} ​ |  {{ru:​led-green.gif}} ​ |  {{ru:​led-green.gif}} ​ |  {{ru:​led-green.gif}} ​ |  {{ru:​led-green.gif}} ​ |  {{ru:​led-grey.gif}} ​ |  {{ru:​led-green.gif}} ​ |  {{ru:​led-green.gif}} ​ |
 +====== Работа с одноплатным компьютером ПМ-ВЕНТ ======
 +
 +Для питания одноплатного компьютера требуется переменное напряжение 24В. Питание подают на разъем X1.
 +
 +Одноплатный компьютер ПМ-ВЕНТ имеет консольный интерфейс пользователя,​ т.е. всю системную информацию устройство выводит в текстовом режиме на терминальное устройство,​ подключенное к разъему X30 (Mini-USB "​Тип B"). Ввод команд от пользователя также осуществляется через терминальное устройство.
 +
 +Параметры консольного порта:​\\
 +Скорость:​ 115200 бод в секунду\\
 +Длина слова: 8 бит\\
 +Стоповый бит: 1 бит\\
 +Контроль четности:​ нет\\
 +Аппаратное управление потоком:​ нет\\
 +
 +При первом подключении консоли Windows обнаружит новое устройство,​ для которого необходимо установить драйвера. На плате установлена микросхема FT232RL, поэтому драйвера скачивают отсюда:​ http://​www.ftdichip.com/​Drivers/​VCP.htm. Для работы с компьютером ПМ-ВЕНТ в Linux не требуется дополнительных действий,​ т.к. в большинстве дистибутивов Linux поддержка FTDI чипов уже включена и загрузка специального модуля выполняется автоматически.
 +
 +* Windows: В программе HyperTerminal необходимо выставить скорость 115200, 8 бит, без контроля четности,​ стоповый бит 1, без управления потоком.
 +
 +* Linux: В программе minicom выбирают устройство (обычно это) »/​dev/​ttyUSB0» и устанавливают те же настройки,​ что и для HyperTerminal. ​
 +
 +===== Назначение сигналов модуля SomIQ-AM35 =====
 +
 +Разъем X2
 +^ № контакта ^ Назначение ^ Примечания |
 +| 1 | VMMC | питание SD |
 +| 2 | USB HOST DN | |
 +| 3 | MMC1_CD (ETK_D15/​GPIO_29) | Card Detect |
 +| 4 | USB HOST DP | |
 +| - | | |
 +| 34 | MMC1 CLK | |
 +| 35 | - | |
 +| 36 | MMC1 CMD | |
 +| 37 | USB0 VBUS | USB OTG |
 +| 38 | MMC1 DATA0 | |
 +| 39 | USB0 DP | USB OTG |
 +| 40 | MMC1 DATA2 | |
 +| 41 | USB0 DN | USB OTG |
 +| 42 | MMC1 DATA1 | |
 +| 43 | - | |
 +| 44 | MMC1 DATA3 | |
 +| 45 | USB0 ID | USB OTG |
 +| 46 | GPIO 127 (MMC1_DAT5) | 6 DIP (1) |
 +| 47 | MMC1 WP (MMC1_DAT4/​GPIO_126) | SD Write Protect |
 +| 48 | GPIO 129 (MMC1_DAT7) | 6 DIP (2) |
 +| 49 | - | |
 +| 50 | GPIO 159 (MCBSP1_DR) | 6 DIP (3) |
 +| 51 | - | |
 +| 52 | GPIO 158 (MCBSP1_DX) | 6 DIP (4) |
 +| 53 | - | |
 +| 54 | GPIO 157 (MCBSP1_FSR) | 6 DIP (5) |
 +| 55 | - | |
 +| 56 | GPIO 161 (MCBSP1_FSX) | 6 DIP (6) |
 +| - | - | |
 +| 63 | GPIO 119 (MCBSP2_DX) | Digital in 4 |
 +| 64 | - | |
 +| 65 | GPIO 116 (MCBSP2_FSX) | Digital in 1 |
 +| 66 | - | |
 +| 67 | GPIO 117 (MCBSP2_CLKX) | Digital in 2 |
 +| 68 | - | |
 +| 69 | GPIO 118 (MCBSP2_DR) | Digital in 3 |
 +| 70 | GPIO 155 (MCBSP4_FSX) | Relay 9 |
 +| - | - | |
 +| 73 | GPIO 97 (CCDC_VD) | Digital in 6 |
 +| 74 | GND | |
 +| 75 | GPIO 96 (CCDC_HD) | Digital in 5 |
 +| 76 | GPIO 98 (CCDC_WEN) | Digital in 7 |
 +| - | - | |
 +| 85 | GPIO 105 (CCDC_D6) | Relay 7 |
 +| 86 | GPIO 106 (CCDC_D7) | Relay 8 |
 +| 87 | GPIO 103 (CCDC_D4) | Relay 5 |
 +| 88 | GPIO 104 (CCDC_D5) | Relay 6 |
 +| 89 | GPIO 101 (CCDC_D2) | Relay 3 |
 +| 90 | GPIO 102 (CCDC_D3) | Relay 4 |
 +| 91 | GPIO 99 (CCDC_D0) | Relay 1 |
 +| 92 | GPIO 100 (CCDC_D1) | Relay 2 |
 +
 +Разъем X3
 +^ № контакта ^ Назначение ^ Примечания |
 +| - | - | |
 +| 9 | GPIO 136 (MMC2_DATA4) | WLAN EN (Tiwi-R2) |
 +| 10 | GPIO 137 (MMC2_DATA5) | WLAN IRQ (Tiwi-R2) |
 +| 11 | SDIO_D2 (MMC2_DATA2) | SDIO_D2 (Tiwi-R2) |
 +| 12 | SDIO_D3 (MMC2_DATA3) | SDIO_D3 (Tiwi-R2) |
 +| 13 | SDIO_D0 (MMC2_DATA0) | SDIO_D0 (Tiwi-R2) |
 +| 14 | SDIO_D1 (MMC2_DATA1) | SDIO_D1 (Tiwi-R2) |
 +| 15 | SDIO_CLK (MMC2_CLK) | SDIO_CLK (Tiwi-R2) |
 +| 16 | SDIO_CMD (MMC2_CMD) | SDIO_CMD (Tiwi-R2) |
 +| - | - | |
 +| 23 | BOOT[5] | Не используется пока |
 +| - | - | |
 +| 36 | RESET | CPU RESET |
 +| - | - | |
 +| 41 | CAN_TX | |
 +| 42 | - | |
 +| 43 | CAN_RX | |
 +| - | - | |
 +| 46 | UART3_RX | Консоль |
 +| 47 | UART3_TX | Консоль |
 +| - | - | |
 +| 94 | I2C3_SDA | I2C данные |
 +| 95 | GPIO 119 (MCBSP3_DX) | ADC Busy (Pulled-UP) |
 +| 96 | I2C3_SCL | I2C clock |
 +| 97 | GPIO 116 (MCBSP3_FSX) | ADC Start conversion (#low) |
 +
 +===== Сборка ПО =====
 +Всё ПО скомпилировано в дистрибутиве Linux Ubuntu 10.04.
 +
 +Компилятор:​ [[https://​sourcery.mentor.com/​sgpp/​lite/​arm/​portal/​package6488/​public/​arm-none-linux-gnueabi/​arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2|CodeSourcery 2010q1]]
 +
 +Как установить компилятор описано здесь: [[arm-gcc]]
 +==== Подготовка SD карты ====
 +Подойдет любая SD карта ёмкостью около 2ГБ (зависит от размера файловой системы). Скачиваем скрипт для форматирования карты:
 +[[http://​www.mentorel.com/​tmp/​mkcard.txt]]
 +
 +Выполняем его на неподмонтированной карте (например,​ /dev/sdc):
 +<​code>​
 +sudo LANG=c ./​mkcard.txt /dev/sdc
 +</​code>​
 +Следите за возможными сообщениями об ошибках и, если всё ОК, то получите два раздела:​
 +  * FAT32 (сюда записывают MLO, u-boot.bin, uImage)
 +  * Ext3 (здесь находится файловая система)
 +==== x-loader ====
 +1) скачиваем исходники xloader для SomIQ-AM35
 +<​code>​
 +git clone git://​github.com/​mentorel/​xload-am35.git
 +</​code>​
 +2) компилируем
 +
 +Сначала необходимо прописать путь к компилятору
 +<​code>​
 +export PATH=/​opt/​arm-2010q1/​bin:​$PATH
 +make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm distclean
 +make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm am3517somiq_config
 +make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm
 +</​code>​
 +3) Получаем файл x-load.bin, который преобразуем в нужный формат:​
 +Утилиту signGP скачивают отсюда:​ [[http://​code.google.com/​p/​beagleboard/​downloads/​list]]
 +<​code>​
 +signGP x-load.bin
 +mv x-load.bin.ift MLO
 +</​code>​
 +4) Полученный файл MLO необходимо записать на __свеже-отформатированную__ партицию FAT32 карты SD.
 +==== u-boot ====
 +//​Примечание:​ данную версию u-boot возможно скомпилировать компилятором версии Mentor Graphics 2010q1 и выше. Подробности здесь: [[arm-gcc]]//​
 +
 +1) скачиваем исходники u-boot для SomIQ-AM35
 +<​code>​
 +wget http://​mentorel.com/​tmp/​uboot-am35somiq.tgz
 +</​code>​
 +2) компилируем
 +<​code>​
 +make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm distclean
 +make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm am3517somiq_config
 +make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm ​
 +</​code>​
 +3) Полученный файл u-boot.bin записываем на партицию FAT32 карты SD
 +==== ядро Linux ====
 +
 +Данное ядро версии 2.6.37 было портировано с платформы AM3517EVM. Данное ядро не поддерживает нужный нам чип Wifi, но зато поддерживает почти всю остальную периферию (RTC и управление контроллером питания не поддерживаются).
 +
 +1) Скачиваем исходные тексты ядра
 +<​code>​
 +wget http://​mentorel.com/​tmp/​kernel-am3517somiq.tgz
 +</​code>​
 +
 +2) компилируем (используем компилятор arm-2010q1)
 +<​code>​
 +make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm am3517somiq_defconfig
 +make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm uImage modules
 +</​code>​
 +полученный файл ядра uImage записывают на партицию FAT32 карты SD
 +
 +3) Устанавливаем модули **Ядра Linux** на карту SD\\
 +Далее предполагается,​ что партиция ext2 SD карты подмонтирована к директории /​media/​rootfs
 +<​code>​
 +sudo make ARCH=arm modules_install INSTALL_MOD_PATH=/​media/​rootfs
 +</​code>​
 +
 +==== Компиляция WLAN драйвера для wl1271 ====
 +В ядре 2.6.37 для AM3517EVM драйвер wl1271 не подходит для нашей платы, поэтому будем использовать открытые драйвера для беспроводных чипов **compat-wireless**. Подробности здесь: [[http://​linuxwireless.org/​en/​users/​Drivers/​wl12xx]]
 +
 +1) Скачиваем исходные тексты драйвера
 +<​code>​
 +wget http://​mentorel.com/​downloads/​compat-wireless-2.6.37.tar.gz
 +</​code>​
 +
 +2) Распаковываем архив
 +<​code>​
 +tar xzf compat-wireless-2.6.37.tar.gz
 +</​code>​
 +Получилась директория **compat-wireless-2.6** и в нее нужно зайти.
 +
 +3) Компиляция драйвера wl1271\\
 +Обратите внимание,​ что ядро **уже** должно быть скомпилировано с модулями. Т.е. в директории с ядром должны быть все объектные файлы. Для простоты предположим,​ что полный путь к ядру Linux для нашей платформы такой (вы подставите свой путь): /​home/​user/​kernel-am3517somiq. Тогда команды для компиляции драйвера wl1271 будут такими:​
 +<​code>​
 +cd compat-wireless-2.6
 +./​scripts/​driver-select wl12xx
 +make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- KLIB=/​home/​user/​kernel-am3517somiq KLIB_BUILD=/​home/​user/​kernel-am3517somiq
 +</​code>​
 +Ошибок компиляции быть не должно!
 +
 +4) Установка модулей на файловую систему\\
 +**//​Далее описаны инструкции работы с уже установленной файловой системой на SD карту//​**
 +
 +Сначала соберем модули,​ полученный при компиляции:​
 +<​code>​
 +find ./ | grep ko$ | xargs tar cvjf wireless-compat_modules.tar.bz2
 +</​code>​
 +Теперь нужно скопировать содержимое данного архива в директорию /​lib/​modules/​2.6.37/​updates **на** SD карте. Это можно выполнить либо подмонтировав SD карту на ПК, либо на рабочей платформе распаковать архив. Перенести файл архива на рабочую платформу можно по сети с помощью команды wget или через USB-диск,​ подключенный к разъему USB-host на плате.
 +
 +Далее команды выполняются на файловой системе нашего устройства:​
 +<​code>​
 +cd /​lib/​modules/​2.6.37
 +mkdir updates
 +cd updates
 +tar xf wireless-compat_modules.tar.bz2
 +</​code>​
 +
 +5) Установка загрузочных файлов для wl1271 в файловой системе одноплатного компьютера
 +Сначала скачаем последнюю версию загрузочных файлов для wl1271 (это бинарные файлы, которые загружаются непосредственно в чип WLAN).
 +<​code>​
 +git clone git://​git.kernel.org/​pub/​scm/​linux/​kernel/​git/​firmware/​linux-firmware.git
 +</​code>​
 +Получится директория **linux-firmware** из которой нам потребуется только папка **ti-connectivity**. Эту папку со всем содержимым необходимо скопировать в файловую систему в директорию /​lib/​firmware. Т.е. должна появится директория с полным именем:​ **/​lib/​firmware/​ti-connectivity**. После загрузки системы необходимо обновить информацию о модулях. ​
 +
 +6) **На загруженной системе выполняют команду "​depmod -a" и перезагружают плату**
 +==== Установка файловой системы ====
 +Образ файловой системы был собран с помощью web-утилиты [[http://​narcissus.angstrom-distribution.org/​]] для платформы am3517-evm. В систему были добавлены i2c-tools и wireless-tools. Полученный образ файловой системы может быть скачан здесь: [[http://​mentorel.com/​tmp/​image-am3517-evm.tar.gz]]
 +
 +1) Скачиваем
 +<​code>​
 +wget http://​mentorel.com/​tmp/​image-am3517-evm.tar.gz
 +</​code>​
 +
 +2) Монтируем раздел sdc2
 +<​code>​
 +sudo mount /dev/sdc2 /​media/​rootfs
 +</​code>​
 +
 +3) записываем образ файловой системы на раздел SD карты
 +<​code>​
 +cd /​media/​rootfs
 +sudo tar xzf image-am3517-evm.tar.gz
 +</​code>​
 +
 +4) Вносим исправления,​ чтобы файловая система грузилась с нашим ядром
 +<​code>​
 +wget http://​mentorel.com/​tmp/​fs.patch
 +sudo patch -p1 < fs.patch
 +</​code>​
 +
 +5) Отмонтируйте оба раздела SD карты и можно загружать плату.
 +
 +**SD карту устанавливают в разъем X27.**
 +==== busybox ====
 +1) Скачиваем и распаковываем [[http://​busybox.net/​downloads/​busybox-1.20.1.tar.bz2|busybox]]
 +<​code>​
 +wget http://​busybox.net/​downloads/​busybox-1.20.1.tar.bz2
 +tar xf busybox-1.20.1.tar.bz2
 +</​code>​
 +
 +2) Компилируем
 +<​code>​
 +make ARCH=arm oldconfig
 +make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
 +</​code>​
 +
 +3) Устанавливаем
 +<​code>​
 +sudo applets/​install.sh /​media/​rootfs
 +</​code>​
 +===== Результаты тестирования =====
 +
 +==== Ethernet ====
 +<​code>​
 +root@am3517-crane:​~#​ ifconfig ​
 +eth0      Link encap:​Ethernet ​ HWaddr 7C:​8E:​E4:​22:​01:​44  ​
 +          inet addr:​192.168.0.111 ​ Bcast:​0.0.0.0 ​ Mask:​255.255.255.0
 +          UP BROADCAST RUNNING MULTICAST ​ MTU:​1500 ​ Metric:1
 +          RX packets:9 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
 +          collisions:​0 txqueuelen:​1000 ​
 +          RX bytes:2660 (2.5 KiB)  TX bytes:6421 (6.2 KiB)
 +          Interrupt:​67 ​
 +
 +lo        Link encap:Local Loopback  ​
 +          inet addr:​127.0.0.1 ​ Mask:​255.0.0.0
 +          UP LOOPBACK RUNNING ​ MTU:​16436 ​ Metric:1
 +          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 +          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 +          collisions:​0 txqueuelen:​0 ​
 +          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 +
 +root@am3517-crane:​~#​ ping ya.ru
 +PING ya.ru (213.180.193.3):​ 56 data bytes
 +64 bytes from 213.180.193.3:​ seq=0 ttl=56 time=2.289 ms
 +64 bytes from 213.180.193.3:​ seq=1 ttl=56 time=2.471 ms
 +64 bytes from 213.180.193.3:​ seq=2 ttl=56 time=2.564 ms
 +
 +--- ya.ru ping statistics ---
 +3 packets transmitted,​ 3 packets received, 0% packet loss
 +round-trip min/avg/max = 2.289/​2.441/​2.564 ms
 +
 +
 +root@am3517-crane:​~#​ time wget ftp://​192.168.0.104/​file
 +Connecting to 192.168.0.104 (192.168.0.104:​21)
 +file                 100% |*******************************| ​  117M 00:00:00 ETA
 +real    0m 35.42s
 +user    0m 1.09s
 +sys     0m 16.38s
 +</​code>​
 +==== USB ====
 +=== USB HOST ===
 +К данному интерфейсу подключена микросхема FT4232HL, которая имеет 4 порта полных RS232 портов. Для данного устройства используется 3 порта RS232 (UART) для обеспечения 3-х интерфейсов RS-485. ​
 +
 +Лог загрузки ядра для микросхемы FT4232HL:
 +<​code>​
 +USB Serial support registered for FTDI USB Serial Device
 +ftdi_sio 1-1:1.0: FTDI USB Serial Device converter detected
 +usb 1-1: Detected FT4232H
 +usb 1-1: Number of endpoints 2
 +usb 1-1: Endpoint 1 MaxPacketSize 512
 +usb 1-1: Endpoint 2 MaxPacketSize 512
 +usb 1-1: Setting MaxPacketSize 512
 +usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0
 +ftdi_sio 1-1:1.1: FTDI USB Serial Device converter detected
 +usb 1-1: Detected FT4232H
 +usb 1-1: Number of endpoints 2
 +usb 1-1: Endpoint 1 MaxPacketSize 512
 +usb 1-1: Endpoint 2 MaxPacketSize 512
 +usb 1-1: Setting MaxPacketSize 512
 +usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB1
 +ftdi_sio 1-1:1.2: FTDI USB Serial Device converter detected
 +usb 1-1: Detected FT4232H
 +usb 1-1: Number of endpoints 2
 +usb 1-1: Endpoint 1 MaxPacketSize 512
 +usb 1-1: Endpoint 2 MaxPacketSize 512
 +usb 1-1: Setting MaxPacketSize 512
 +usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB2
 +ftdi_sio 1-1:1.3: FTDI USB Serial Device converter detected
 +usb 1-1: Detected FT4232H
 +usb 1-1: Number of endpoints 2
 +usb 1-1: Endpoint 1 MaxPacketSize 512
 +usb 1-1: Endpoint 2 MaxPacketSize 512
 +usb 1-1: Setting MaxPacketSize 512
 +usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB3
 +usbcore: registered new interface driver ftdi_sio
 +ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver
 +</​code>​
 +Данный лог доказывает,​ что USB Host в режиме High Speed работает,​ т.к. микросхема FT4232H поддерживает только HS режим USB. Драйвер ftdio_sio сам создал необходимые ноды устройств в /dev: ttyUSB0, ttyUSB1, ttyUSB2, ttyUSB3. Эти ноды необходимы для дальнейшей работы с соответствующими интерфейсами RS-485.
 +=== USB OTG ===
 +Подключаем USB HUB к разъему X29 (USB-A), ядро выдает сообщение:​
 +<​code>​
 +root@am3517-crane:​~#​
 +musb_h_ep0_irq 1119: no URB for end 0
 +usb 1-1: new high speed USB device using musb_hdrc and address 3
 +usb 1-1: New USB device found, idVendor=0409,​ idProduct=0059
 +usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
 +hub 1-1:1.0: USB hub found
 +hub 1-1:1.0: 4 ports detected
 +</​code>​
 +Интерфейс USB OTG в режиме USB-host работает.
 +==== GPIO ====
 +Чтобы было проще проверять функционал GPIO все линии GPIO были добавлены в sysfs, поэтому работать с Реле и линиями ввода можно с помощью команд **cat** и **echo**. На SD карте, поставляемой с одноплатным компьютером присутствуют набор скриптов для настройки и управления линиями GPIO. Также этот набор скриптов находится по адресу:​ [[http://​mentorel.com/​tmp/​gpio.tgz]]. В файле readme.txt описано как пользоваться скриптами.
 +
 +По уровням управляющих сигналов:​ 0 - реле в "​разрыве",​ 1 - "​короткое"​
 +=== Реле 1 ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​out"​ > /​sys/​class/​gpio/​gpio99/​direction ​
 +root@am3517-crane:​~#​ echo "​0"​ > /​sys/​class/​gpio/​gpio99/​value ​  
 +root@am3517-crane:​~#​ echo "​1"​ > /​sys/​class/​gpio/​gpio99/​value ​
 +</​code>​
 +слышны характерные щелчки и тестер,​ подключенный к контактам разъема Х18 соответственно показывает КЗ либо Разрыв.
 +=== Реле 2 ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​out"​ > /​sys/​class/​gpio/​gpio100/​direction ​
 +root@am3517-crane:​~#​ echo "​0"​ > /​sys/​class/​gpio/​gpio100/​value ​  
 +root@am3517-crane:​~#​ echo "​1"​ > /​sys/​class/​gpio/​gpio100/​value ​
 +</​code>​
 +слышны характерные щелчки и тестер,​ подключенный к контактам разъема Х19 соответственно показывает КЗ либо Разрыв.
 +=== Реле 3 ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​out"​ > /​sys/​class/​gpio/​gpio101/​direction ​
 +root@am3517-crane:​~#​ echo "​0"​ > /​sys/​class/​gpio/​gpio101/​value ​  
 +root@am3517-crane:​~#​ echo "​1"​ > /​sys/​class/​gpio/​gpio101/​value ​
 +</​code>​
 +слышны характерные щелчки и тестер,​ подключенный к контактам разъема Х20 соответственно показывает КЗ либо Разрыв.
 +=== Реле 4 ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​out"​ > /​sys/​class/​gpio/​gpio102/​direction ​
 +root@am3517-crane:​~#​ echo "​0"​ > /​sys/​class/​gpio/​gpio102/​value ​  
 +root@am3517-crane:​~#​ echo "​1"​ > /​sys/​class/​gpio/​gpio102/​value ​
 +</​code>​
 +слышны характерные щелчки и тестер,​ подключенный к контактам разъема Х21 соответственно показывает КЗ либо Разрыв.
 +=== Реле 5 ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​out"​ > /​sys/​class/​gpio/​gpio103/​direction ​
 +root@am3517-crane:​~#​ echo "​0"​ > /​sys/​class/​gpio/​gpio103/​value ​  
 +root@am3517-crane:​~#​ echo "​1"​ > /​sys/​class/​gpio/​gpio103/​value ​
 +</​code>​
 +слышны характерные щелчки и тестер,​ подключенный к контактам разъема Х23 соответственно показывает КЗ либо Разрыв.
 +=== Реле 6 ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​out"​ > /​sys/​class/​gpio/​gpio104/​direction ​
 +root@am3517-crane:​~#​ echo "​0"​ > /​sys/​class/​gpio/​gpio104/​value ​  
 +root@am3517-crane:​~#​ echo "​1"​ > /​sys/​class/​gpio/​gpio104/​value ​
 +</​code>​
 +слышны характерные щелчки и тестер,​ подключенный к контактам разъема Х24 соответственно показывает КЗ либо Разрыв.
 +=== Реле 7 ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​out"​ > /​sys/​class/​gpio/​gpio105/​direction
 +root@am3517-crane:​~#​ echo "​1"​ > /​sys/​class/​gpio/​gpio105/​value
 +root@am3517-crane:​~#​ echo "​0"​ > /​sys/​class/​gpio/​gpio105/​value
 +</​code>​
 +слышны характерные щелчки и тестер,​ подключенный к контактам разъема Х25 соответственно показывает КЗ либо Разрыв.
 +=== Реле 8 ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​out"​ > /​sys/​class/​gpio/​gpio106/​direction
 +root@am3517-crane:​~#​ echo "​1"​ > /​sys/​class/​gpio/​gpio106/​value
 +root@am3517-crane:​~#​ echo "​0"​ > /​sys/​class/​gpio/​gpio106/​value
 +</​code>​
 +слышны характерные щелчки и тестер,​ подключенный к контактам разъема Х26 соответственно показывает КЗ либо Разрыв.
 +=== Реле 9 ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​out"​ > /​sys/​class/​gpio/​gpio155/​direction
 +root@am3517-crane:​~#​ echo "​1"​ > /​sys/​class/​gpio/​gpio155/​value
 +root@am3517-crane:​~#​ echo "​0"​ > /​sys/​class/​gpio/​gpio155/​value
 +</​code>​
 +слышны характерные щелчки и тестер,​ подключенный к контактам разъема Х22 соответственно показывает КЗ либо Разрыв между крайними контактами и центральным.
 +
 +**Далее цифровые входы (проверялись напряжением 10В)**
 +=== DIN 1 (разъем X32) ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​in"​ > /​sys/​class/​gpio/​gpio116/​direction ​
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio116/​value ​
 +1
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio116/​value
 +0
 +</​code>​
 +
 +=== DIN 2 (разъем X33) ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​in"​ > /​sys/​class/​gpio/​gpio117/​direction ​
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio117/​value ​
 +1
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio117/​value
 +0
 +</​code>​
 +
 +=== DIN 3 (разъем X34) ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​in"​ > /​sys/​class/​gpio/​gpio118/​direction ​
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio118/​value ​
 +1
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio118/​value
 +0
 +</​code>​
 +
 +=== DIN 4 (разъем X35) ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​in"​ > /​sys/​class/​gpio/​gpio119/​direction ​
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio119/​value ​
 +1
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio119/​value
 +0
 +</​code>​
 +
 +=== DIN 5 (разъем X36) ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​in"​ > /​sys/​class/​gpio/​gpio96/​direction ​
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio96/​value ​
 +1
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio96/​value
 +0
 +</​code>​
 +
 +=== DIN 6 (разъем X37) ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​in"​ > /​sys/​class/​gpio/​gpio97/​direction ​
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio97/​value ​
 +1
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio97/​value
 +0
 +</​code>​
 +
 +=== DIN 7 (разъем X38) ===
 +<​code>​
 +root@am3517-crane:​~#​ echo "​in"​ > /​sys/​class/​gpio/​gpio98/​direction ​
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio98/​value ​
 +1
 +root@am3517-crane:​~#​ cat /​sys/​class/​gpio/​gpio98/​value
 +0
 +</​code>​
 +
 +**Дип-переключатель 6ти сдвиговый**
 +
 +Сначала настраивают линии GPIO на ввод и потом можно смотреть состояние соответствующих линий посредством команд **cat** и **echo**
 +
 +<​code>​
 +echo "​in"​ > /​sys/​class/​gpio/​gpio127/​direction
 +echo "​in"​ > /​sys/​class/​gpio/​gpio129/​direction
 +echo "​in"​ > /​sys/​class/​gpio/​gpio159/​direction
 +echo "​in"​ > /​sys/​class/​gpio/​gpio158/​direction
 +echo "​in"​ > /​sys/​class/​gpio/​gpio157/​direction
 +echo "​in"​ > /​sys/​class/​gpio/​gpio161/​direction
 +</​code>​
 +
 +Теперь можно смотреть состояния сдвигового переключателя
 +<​code>​
 +echo "​DIP-SW 1 = " `cat /​sys/​class/​gpio/​gpio127/​value`
 +echo "​DIP-SW 2 = " `cat /​sys/​class/​gpio/​gpio129/​value`
 +echo "​DIP-SW 3 = " `cat /​sys/​class/​gpio/​gpio159/​value`
 +echo "​DIP-SW 4 = " `cat /​sys/​class/​gpio/​gpio158/​value`
 +echo "​DIP-SW 5 = " `cat /​sys/​class/​gpio/​gpio157/​value`
 +echo "​DIP-SW 6 = " `cat /​sys/​class/​gpio/​gpio161/​value`
 +</​code>​
 +
 +==== I2C шина ====
 +АЦП и ЦАП подключены к процессору через шину I2C. У процессора используется шина I2C-3.
 +
 +Проверяем есть ли устройства на шине i2c-3:
 +<​code>​
 +root@am3517-crane:​~#​ i2cdetect -r 3 
 +WARNING! This program can confuse your I2C bus, cause data loss and worse!
 +I will probe file /dev/i2c-3 using read byte commands.
 +I will probe address range 0x03-0x77.
 +Continue? [Y/n] y
 +     ​0 ​ 1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
 +00:          -- -- -- -- -- -- -- -- -- 0c 0d -- -- 
 +10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- -- 
 +20: -- 21 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 +30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 +40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 +50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 +60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
 +70: -- -- -- -- -- -- -- --
 +</​code>​
 +Согласно документации:​
 +  * Микросхема DA7, АЦП AD7993-0 (AS pin = GND): i2c address = 0x21
 +  * Микросхема DD2, 1-Wire Master DS2482-800 (AD0=AD1=AD2 = GND): i2c address = 0x18
 +  * Микросхема DA11, ЦАП AD5315 (A0 pin = GND): i2c address = 0x0c
 +  * Микросхема DA10, ЦАП AD5315 (A0 pin = 5V): i2c address = 0x0d
 +Таким образом,​ шина i2c полностью рабочая,​ включая цифровые интерфейсы микросхем,​ подключенных к шине.
 +==== ADC (АЦП) ====
 +
 +Для тестирования была написана утилита,​ которая в режиме SMbus выполняет оцифровку заданного канала АЦП ad7993. Текст программы [[http://​mentorel.com/​tmp/​ad5315.tgz|здесь]]
 +
 +Для компиляции программы:​
 +
 +  * Скачиваем исходные тексты:​
 +<​code>​
 +wget http://​mentorel.com/​tmp/​ad799x.tgz
 +</​code>​
 +
 +  * Распаковываем:​
 +<​code>​
 +tar xzf ad799x.tgz
 +cd ad799x
 +</​code>​
 +
 +  * Прописываем путь к компилятору:​
 +<​code>​
 +export PATH=/​opt/​arm-2010q1/​bin:​$PATH
 +</​code>​
 +
 +  * Компилируем:​
 +<​code>​
 +maxx@ubuntu:​ad799x$ make
 +arm-none-linux-gnueabi-gcc -g -Wall -O -c -o main.o main.c
 +arm-none-linux-gnueabi-gcc -o adc-read main.o
 +maxx@ubuntu:​ad799x$ ls
 +adc-read ​ i2c-dev.h ​ main.c ​ main.o ​ Makefile
 +</​code>​
 +Получаем исполняемый файл **adc-read**,​ который необходимо выполнять на конечной платформе.
 +
 +Пример работы программы adc-read:
 +<​code>​
 +root@am3517-pmvent:​~#​ ./​adc-read ​
 +programm usage:
 +adc-read <​dac_i2c_addr>​ <channel number>
 +channel number: 1-4
 +root@am3517-pmvent:​~#​ ./adc-read 33 1
 +ADC[1]: HEX=0xa Voltage=0.10V
 +</​code>​
 +Здесь использованы значения:​\\
 +  - 33 - адрес микросхемы на шине i2c (0x21)
 +  - 1 - номер канала АЦП (нумерация 1, 2, 3, 4 - не подключен)
 +
 +  * канал 1 - разъем X11
 +  * канал 2 - разъем X10
 +  * канал 3 - разъем X9
 +
 +По схеме на входе АЦП стоит делитель 1/2, который делит входное напряжение пополам. Опорное напряжение на АЦП равно 5В. Поэтому любое значение из регистра результата (REG_VAL) рассчитывается по формуле:​
 +<​code>​
 +Vin = REG_VAL * 2 * 5 / 1024
 +</​code>​
 +==== DAC (ЦАП) ====
 +Для тестирования была написана утилита,​ которая выполняет загрузку сдвигового регистра микросхемы AD5315. Текст программы [[http://​mentorel.com/​tmp/​ad5315.tgz|здесь]]
 +
 +Для компиляции программы:​
 +
 +  * Скачиваем исходные тексты:​
 +<​code>​
 +wget http://​mentorel.com/​tmp/​ad5315.tgz
 +</​code>​
 +
 +  * Распаковываем:​
 +<​code>​
 +tar xzf ad5315.tgz
 +cd ad5315
 +</​code>​
 +
 +  * Прописываем путь к компилятору:​
 +<​code>​
 +export PATH=/​opt/​arm-2009q1/​bin:​$PATH
 +</​code>​
 +
 +  * Компилируем:​
 +<​code>​
 +maxx@ubuntu:​ad5315$ make
 +arm-none-linux-gnueabi-gcc -g -Wall -O -c -o main.o main.c
 +arm-none-linux-gnueabi-gcc -o dac-write main.o ​
 +maxx@ubuntu:​ad5315$ ls
 +dac-write ​ main.c ​ main.o ​ Makefile
 +</​code>​
 +Получаем исполняемый файл **dac-write**,​ который необходимо выполнять на конечной платформе.
 +
 +Пример работы прогрмаммы dac-write:
 +<​code>​
 +root@am3517-crane:​~#​ ./dac-write 13 1 512
 +DAC: set i2c address to d
 +DAC: set channel number to 1
 +DAC: pointer reg = 0x01
 +DAC: set shift register to 512
 +DAC: shift register MSB=0x28 LSB=0x00
 +</​code>​
 +Таким образом мы загрузили в ЦАП с адресом 0x0d (13), в первый канал (DACA) значение 512, соответствующее половине разрядной сетки ЦАП, т.е. на выходе ЦАП имеем напряжение Udac=Vref/​2. В чем мы и убеждаемся с помощью вольтметра. Однако после ЦАП стоит операционный усилитель с коэффициентом усиления 2. Т.е. Uвых = 2 х Udac. Записываем значение 1023 в канал ЦАП и измеряем выходное напряжение на соответствующем разъеме.
 +
 +Проверены 5 каналов:​\\
 +  * ЦАП по адресу 13 (DA10) имеет 4 канала:​
 +    * канал 1 (DACA) - разъем X13;
 +    * канал 2 (DACB) - разъем X12;
 +    * канал 3 (DACC) - разъем X15;
 +    * канал 4 (DACD) - разъем X14;
 +  * ЦАП по адресу 12 (DA11) имеет 1 канал (DACA) - разъем X16
 +==== 1-Wire ====
 +На плате установлен 1w-мастер DS2482, имеющий 8 каналов. На изделии используется только 5. Микросхема DS2482 способна сама определять тип подключаемых устройств и выводит соответствующие сообщение на терминал.
 +
 +Для работы 1-wire мастера необходимо выполнить следующие дейсвтия:​
 +  * загрузить модуль драйвера для устройства,​ подключенного к DS2482
 +  * загрузить модуль драйвера DS2482
 +  * сообщить адрес DS2482 на i2c-шине
 +<​code>​
 +root@am3517-pmvent:​~#​ modprobe w1_therm
 +root@am3517-pmvent:​~#​ modprobe ds2482
 +root@am3517-pmvent:​~#​ echo ds2482 0x18 > /​sys/​bus/​i2c/​devices/​i2c-3/​new_device
 +[   ​64.357482] i2c i2c-3: new_device: Instantiated device ds2482 at 0x18
 +root@am3517-pmvent:​~#​ ls /​sys/​bus/​w1/​devices/​
 +28-000000a995a1 ​ w1_bus_master3 ​  ​w1_bus_master6
 +w1_bus_master1 ​  ​w1_bus_master4 ​  ​w1_bus_master7
 +w1_bus_master2 ​  ​w1_bus_master5 ​  ​w1_bus_master8
 +root@am3517-pmvent:​~#​ cat /​sys/​bus/​w1/​devices/​28-000000a995a1/​w1_slave ​
 +f3 01 4b 46 7f ff 0d 10 d3 : crc=d3 YES
 +f3 01 4b 46 7f ff 0d 10 d3 t=31187
 +root@am3517-pmvent:​~#​ cat /​sys/​bus/​w1/​devices/​28-000000a995a1/​w1_slave | tail -n
 +1 | awk -F= '​{print $2/1000 " degrees Celsius"​}'​
 +31.562 degrees Celsius
 +</​code>​
 +В предыдущем примере мы считали значения температуры с датчика DS18B20+
 +
 +Нумерация каналов в схеме:
 +  - канал IO0 микросхемы,​ разъем X4
 +  - канал IO1 микросхемы,​ разъем X5
 +  - канал IO2 микросхемы,​ разъем X6
 +  - канал IO7 микросхемы,​ разъем X7
 +  - канал IO6 микросхемы,​ разъем X8
 +
 +=== Проблема с динамическим подключением ===
 +В данной версии ядра присутствует проблема с "​гонками"​ между sysfs и регистрацией драйверов. Поэтому,​ при подключенном датчиком к одному каналу,​ затем вытаскиваем его и подключаем его к другому каналу,​ то сам модуль ds2482 перестает работает,​ но его можно реанимировать. Вообще,​ перед сменой каналов можно сначала выгрузить модуль ведомого драйвера,​ затем модуль ведущего ds2482 и затем снова загрузить нужные модули. В таком случае можно менять каналы ds2482 как угодно. ​
 +
 +Пример для одного датчика DS18B20+, который подключен к одному каналу,​ а затем его переключили к другому каналу ds2482:
 +<​code>​
 +root@am3517-pmvent:​~#​ lsmod
 +Module ​                 Size  Used by
 +ds2482 ​                 3373  0 
 +w1_therm ​               2580  0 
 +root@am3517-pmvent:​~#​ rmmod w1_therm
 +[  832.960327] w1_master_driver w1_bus_master1:​ Family 28 for 28.000000a995a1.2a is not registered.
 +root@am3517-pmvent:​~#​ rmmod ds2482
 +root@am3517-pmvent:​~#​ modprobe w1_therm
 +root@am3517-pmvent:​~#​ modprobe ds2482
 +root@am3517-pmvent:​~#​ ls /​sys/​bus/​w1/​devices/​
 +28-000000a995a1 ​ w1_bus_master3 ​  ​w1_bus_master6
 +w1_bus_master1 ​  ​w1_bus_master4 ​  ​w1_bus_master7
 +w1_bus_master2 ​  ​w1_bus_master5 ​  ​w1_bus_master8
 +root@am3517-pmvent:​~#​ cat /​sys/​bus/​w1/​devices/​28-000000a995a1/​w1_slave ​
 +d7 01 4b 46 7f ff 09 10 55 : crc=55 YES
 +d7 01 4b 46 7f ff 09 10 55 t=29437
 +</​code>​
 +==== CAN ====
 +
 +На плате установлена микросхема физического уровня CAN: ISO1050DUB, позиционное обозначение DD4. Для согласования волнового сопротивления установлен резистор 120 Ом, который подключается между линиями CANH/CANL с помощью перемычки XT1.
 +
 +[[http://​designsomething.org/​craneboard/​m/​video/​2139.aspx]]
 +
 +[[http://​designsomething.org/​cfs-file.ashx/​__key/​communityserver-components-sitefiles/​CraneBoard/​CAN_5F00_INTERFACE_5F00_CONNECTIVITY_5F00_ON_5F00_CRANEBOARD.pdf]]
 +
 +[[http://​www.armadeus.com/​wiki/​index.php?​title=CAN_bus_Linux_driver]]
 +
 +<​code>​
 +# opkg install canutils iproute2
 +Installing canutils (4.0.6-r1.0.5) to root...
 +Downloading http://​www.angstrom-distribution.org/​feeds/​unstable/​ipk/​glibc/​armv5t
 +e/​base/​canutils_4.0.6-r1.0.5_armv5te.ipk.
 +Installing libsocketcan2 (0.0.8-r0.0.5) to root...
 +Downloading http://​www.angstrom-distribution.org/​feeds/​unstable/​ipk/​glibc/​armv5t
 +e/​base/​libsocketcan2_0.0.8-r0.0.5_armv5te.ipk.
 +Installing iproute2 (2.6.38-r4.0.9) to root...
 +Downloading http://​www.angstrom-distribution.org/​feeds/​next/​ipk/​eglibc/​armv5te/​b
 +ase/​iproute2_2.6.38-r4.0.9_armv5te.ipk.
 +Configuring iproute2.
 +update-alternatives:​ Linking //bin/ip to /​sbin/​ip.iproute2
 +Configuring libsocketcan2.
 +Configuring canutils.
 +</​code>​
 +<​code>​
 +root@am3517-pmvent:​~#​ ip link set can0 type can bitrate 125000
 +root@am3517-pmvent:​~#​ ifconfig can0 up
 +[ 3723.351562] ti_hecc ti_hecc: setting CANBTC=0xc0028
 +</​code>​
 +==== RS-485 ====
 +Микросхема FT4232H по умолчанию настраивает линии свои линии RI#/TXDEN в режиме RI# (rs232), однако для управления направлением передачи данных RS-485 (полудуплекс) необходимо сконфигурировать микросхему FT4232H так, чтобы линии RI#/TXDEN перешли из режима RI в режим TXDEN. Для этого выполняют следующие действия (используя ОС Windows):
 +
 +1) Скачивают и распаковывают драйвера VCP (virtual com port)\\
 +[[http://​www.ftdichip.com/​Drivers/​CDM/​CDM%202.08.24%20WHQL%20Certified.zip]]
 +
 +2) Подключают специальный кабель к разъему X39 (как показано на картинке) и порту USB персонального компьютера
 +
 +{{x39.jpg}}
 +
 +3) На запрос Windows об обнаружении нового устройства указывают путь к драйверам,​ полученным в шаге 1
 +
 +4) После установки драйверов лучше отключить USB кабель от ПК и подключить его заново,​ чтобы система выполнила нумерацию USB устройств с установленными драйверами
 +
 +Теперь можно использовать утилиту FT_PROG 2.6.8 - EEPROM Programming Utility.
 +
 +Утилита для конфигурации памяти EEPROM, подключенной к FT4232HL, находится здесь: [[http://​www.ftdichip.com/​Support/​Utilities/​FT_Prog%20v2.6.8.zip]]. Утилиту необходимо скачать и она не требует установки.
 +
 +1) Запустить FT_Prog.exe
 +
 +2) В меню Devices->​Scan and Parse\\
 +если все предыдущие действия выполнены правильно,​ то утилита считывает внутренние параметры микросхемы FT4232HL, а также содержимое EEPROM.
 +
 +3) Выбираем HardwareSpecifics->​Port_A\\
 +Устанавливаем галочку напротив "RI as RS485 Enable"​
 +
 +4) Повторяем шаг 3 для портов Port_B, Port_C, Port_D
 +
 +5) В меню File выбираем Program Device
 +
 +6) Закрываем программу
 +
 +Теперь микросхема FT4232HL будет управлять направлением передачи данных интерфейсных микросхем RS-485.
 +
 +Для тестирования интерфейса необходим кабель,​ сделанный по схеме, изображенной на следующем рисунке:​\\
 +{{wiki:​rs-485.jpg}}
 +
 +Интерфейс rs-485, соответствующий /​dev/​ttyUSB0,​ обеспечен микросхемой ADM3485 и имеет следующее назначение контактов (разъем X40):
 +  - нет подключений
 +  - нет подключений
 +  - RS-485 "​B"​
 +  - RS-485 "​A"​
 +  - нет подключений
 +  - нет подключений
 +Для согласования волнового сопротивления имеется резистор 120 Ом, подключаемый перемычкой XT2.
 +
 +Интерфейсы rs-485, соответствующие /​dev/​ttyUSB1 (разъем X41) и /​dev/​ttyUSB2 (разъем X42), требуют внешнего питания 24В (по ТЗ, а ток от 6В будет работать). Микросхема [[http://​www.maxim-ic.com/​datasheet/​index.mvp/​id/​5681|MAX13410EES]] имеет встроенный линейный регулятор напряжения и допускает питающее напряжение +6..+28В. Контакты на разъемах X41 и X42:
 +  - 24В
 +  - Земля (общий)
 +  - RS-485 "​B"​
 +  - RS-485 "​A"​
 +  - 24В
 +  - Земля (общий)
 +  * разъем X41 - для согласования волнового сопротивления имеется резистор 120 Ом, подключаемый перемычкой XT3.
 +  * разъем X42 - для согласования волнового сопротивления имеется резистор 120 Ом, подключаемый перемычкой XT4.
 + 
 +С помощью простых команд echo и cat посылают и принимают данные между двумя устройствами.
 +
 +Если тестирование выполняется на одной плате с одним терминальным соединением,​ то с помощью следующей команды можно посылать символ "​1"​ в интерфейс /​dev/​ttyUSB0 (rs-485 канал "​0",​ разъем X40):
 +<​code>​
 +root@am3517-pmvent:​~#​ while [ 1 ] ; do echo "​1"​ > /​dev/​ttyUSB0 && sleep 1 ; done &
 +</​code>​
 +При этом поочередно переставляя кабель в два другие разъема rs-485 на плате и читая данные с двух других интерфейсов /​dev/​ttyUSB1 (разъем X41) и /​dev/​ttyUSB2 (разъем X42) можно убедится в работоспособности интерфейсов rs-485
 +<​code>​
 +root@am3517-pmvent:​~#​ cat /​dev/​ttyUSB1
 +</​code>​
 +<​code>​
 +root@am3517-pmvent:​~#​ cat /​dev/​ttyUSB2
 +</​code>​
 +==== WLAN 802.11 ====
 +//​Работа модуля WLAN возможна только при подключенной антенне! Антенну подключают к UFL разъему на самом модуле Tiwi-R2.//
 +
 +Для проверки работоспособности WLAN модуля используйте команды,​ описанные здесь: [[wlan-setup]]
 +
 +Обратите внимание,​ что интерфейс wlan0 будет иметь MAC-адрес DE:​AD:​BE:​EF:​00:​00 при старте. Это значение по умолчанию,​ которое назначается автоматически. Чтобы избежать конфликтов в сети при активации нескольких wifi интерфейсов каждому из них необходимо присвоить свой MAC-адрес.
 +<​code>​
 +ifconfig wlan0 down
 +ifconfig wlan0 hw ether 00:​22:​33:​44:​55:​66
 +ifconfig wlan0 up
 +</​code>​
 +Дополнительная информация по этой теме здесь: [[http://​omappedia.org/​wiki/​Mac80211_based_open_source_architecture]]
  
wiki/pmvent.txt · Последние изменения: 2012/11/20 19:14 (внешнее изменение)