wiki:pmvent2
no way to compare when less than two revisions
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версияСледующая версия | |||
— | wiki:pmvent2 [2018/08/22 13:53] – [Ядро Linux] maxx | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | **Одноплатный компьютер ПМ-Вент v02** | ||
+ | ====== Компиляция ПО ====== | ||
+ | ===== u-boot ===== | ||
+ | ==== GCC Toolchain ==== | ||
+ | < | ||
+ | wget -c https:// | ||
+ | tar xf gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz | ||
+ | export CC=`pwd`/ | ||
+ | </ | ||
+ | ==== U-Boot Download ==== | ||
+ | |||
+ | Download U-Boot via git: | ||
+ | < | ||
+ | git clone git:// | ||
+ | cd u-boot/ | ||
+ | git checkout v2014.10 -b tmp | ||
+ | </ | ||
+ | |||
+ | ==== U-Boot Patches ==== | ||
+ | Патч для платы pmvent0223 | ||
+ | < | ||
+ | wget http:// | ||
+ | patch -p1 < pmvent0223-u-boot-2014.diff | ||
+ | </ | ||
+ | ==== U-Boot Configure and Build ==== | ||
+ | |||
+ | < | ||
+ | make ARCH=arm CROSS_COMPILE=${CC} distclean | ||
+ | make ARCH=arm CROSS_COMPILE=${CC} am335x_nand4k_defconfig | ||
+ | make ARCH=arm CROSS_COMPILE=${CC} | ||
+ | </ | ||
+ | ===== Ядро Linux ===== | ||
+ | < | ||
+ | git clone https:// | ||
+ | cd bb-kernel/ | ||
+ | git checkout 4.14.51-bone16 | ||
+ | </ | ||
+ | Скачиваем и применяем патч: | ||
+ | < | ||
+ | wget http:// | ||
+ | patch -p1 < pmvent-bb-kernel-4.14.patch | ||
+ | </ | ||
+ | Запускаем компиляцию | ||
+ | < | ||
+ | ./ | ||
+ | </ | ||
+ | |||
+ | ====== Описание ====== | ||
+ | ===== Назначение сигналов модуля uSomIQ ===== | ||
+ | ==== Разъем P2 ==== | ||
+ | ^ № контакта ^ Название линии ЦПУ ^ Назначение ^ | ||
+ | | 18 | MCASP0_ACLKR.GPIO3_18 | Дип-перекл 1 | | ||
+ | | 20 | MCASP0_AHCLKR.GPIO3_17 | Дип-перекл 2 | | ||
+ | | 22 | MCASP0_AXR0.GPIO3_16 | Дип-перекл 3 | | ||
+ | | 24 | MCASP0_FSX.GPIO3_15 | Дип-перекл 4 | | ||
+ | | 26 | MCASP0_AHCLKX.GPIO3_21 | Дип-перекл 5 | | ||
+ | | 28 | MCASP0_ACLKX.GPIO3_14 | Дип-перекл 6 | | ||
+ | | 29 | UART0_RX | Консоль | | ||
+ | | 31 | UART0_TX | Консоль | | ||
+ | | 33 | I2C2_SCL | | | ||
+ | | 35 | I2C2_SDA | | | ||
+ | | 36 | SYS_RESETn | Сброс процессора | | ||
+ | | 37 | I2C1_SDA | | | ||
+ | | 38 | EVENT_INTR1.GPIO0_20 | USR_LED1 | | ||
+ | | 39 | I2C1_SCL | | | ||
+ | | 40 | EVENT_INTR0.GPIO0_19 | USR_LED2 | | ||
+ | | 41 | SPI0_CS1.GPIO0_6 | KSZ8851 IRQ | | ||
+ | | 43 | ECAP0_IN_PWM0_OUT.GPIO0_7 | KSZ8851 nRESET | | ||
+ | | 44 | DCAN_RX | CAN RX | | ||
+ | | 45 | SPI0_MOSI | KSZ8851 | | ||
+ | | 46 | DCAN_TX | CAN TX | | ||
+ | | 47 | SPI0_MISO | KSZ8851 | | ||
+ | | 48 | MMC0_DAT3 | MicroSD | | ||
+ | | 49 | SPI0_SCLK | KSZ8851 | | ||
+ | | 50 | MMC0_DAT2 | MicroSD | | ||
+ | | 51 | SPI0_CS0 | KSZ8851 | | ||
+ | | 52 | MMC0_DAT1 | MicroSD | | ||
+ | | 54 | MMC0_DAT0 | MicroSD | | ||
+ | | 55 | USB0_DRVBUS.GPIO0_18 | MicroSD CD | | ||
+ | | 56 | MMC0_CMD | MicroSD | | ||
+ | | 58 | MMC0_CLKO | MicroSD | | ||
+ | | 61 | USB0_P | USB HOST | | ||
+ | | 62 | ETH_RX_P | Ethernet 2 | | ||
+ | | 63 | USB0_N | USB HOST | | ||
+ | | 64 | ETH_RX_N | Ethernet 2 | | ||
+ | | 67 | ETH_speed100 | Ethernet 2 | | ||
+ | | 68 | ETH_TX_P | Ethernet 2 | | ||
+ | | 69 | ETH_ALINK | Ethernet 2 | | ||
+ | | 70 | ETH_TX_N | Ethernet 2 | | ||
+ | ==== Разъем P3 ==== | ||
+ | ^ № контакта ^ Название линии ЦПУ ^ Назначение ^ | ||
+ | | 35 | GPMC_CSN2.MMC1_CMD | WIFI SDIO_CMD | | ||
+ | | 37 | GPMC_CSN1.MMC1_CLK | WIFI SDIO_CLK | | ||
+ | | 39 | GPMC_CLK.GPIO2_1 | WIFI IRQ | | ||
+ | | 40 | GPMC_AD8.MMC1_DAT0 | WIFI SDIO_D0 | | ||
+ | | 41 | GPMC_AD11.MMC1_DAT3 | WIFI SDIO_D3 | | ||
+ | | 42 | GPMC_AD9.MMC1_DAT1 | WIFI SDIO_D1 | | ||
+ | | 43 | GPMC_AD12.GPIO1_12 | WIFI EN | | ||
+ | | 44 | GPMC_AD10.MMC1_DAT2 | WIFI SDIO_D2 | | ||
+ | | 45 | GPMC_AD13.GPIO1_13 | DI7 | | ||
+ | | 46 | GPMC_AD14.GPIO1_14 | DO1 | | ||
+ | | 47 | GPMC_A0.GPIO1_16 | DI6 | | ||
+ | | 48 | GPMC_AD15.GPIO1_15 | DO2 | | ||
+ | | 49 | GPMC_A1.GPIO1_17 | DI5 | | ||
+ | | 50 | GPMC_A6.GPIO1_22 | DO3 | | ||
+ | | 51 | GPMC_A2.GPIO1_18 | DI4 | | ||
+ | | 52 | GPMC_A7.GPIO1_23 | DO4 | | ||
+ | | 53 | GPMC_A3.GPIO1_19 | DI3 | | ||
+ | | 54 | GPMC_A8.GPIO1_24 | DO5 | | ||
+ | | 55 | GPMC_A4.GPIO1_20 | DI2 | | ||
+ | | 56 | GPMC_A9.GPIO1_25 | DO6 | | ||
+ | | 57 | GPMC_A5.GPIO1_21 | DI1 | | ||
+ | | 58 | GPMC_A10.GPIO1_26 | DO7 | | ||
+ | | 60 | GPMC_A11.GPIO1_27 | DO8 | | ||
+ | | 66 | GPMC_BE1.GPIO1_28 | DO9 | | ||
+ | | 67 | USB1_P | FTDI FT4232 | | ||
+ | | 69 | USB1_N | FTDI FT4232 | | ||
+ | ===== Номера GPIO ===== | ||
+ | ^ Функция ^ Номер GPIO в Sysfs ^ | ||
+ | | DIP Switch 1 | 114 | | ||
+ | | DIP Switch 2 | 113 | | ||
+ | | DIP Switch 3 | 112 | | ||
+ | | DIP Switch 4 | 111 | | ||
+ | | DIP Switch 5 | 117 | | ||
+ | | DIP Switch 6 | 110 | | ||
+ | | Digital Input 1 | 53 | | ||
+ | | Digital Input 2 | 52 | | ||
+ | | Digital Input 3 | 51 | | ||
+ | | Digital Input 4 | 50 | | ||
+ | | Digital Input 5 | 49 | | ||
+ | | Digital Input 6 | 48 | | ||
+ | | Digital Input 7 | 45 | | ||
+ | | Digital Output 1 | 60 | | ||
+ | | Digital Output 2 | 59 | | ||
+ | | Digital Output 3 | 58 | | ||
+ | | Digital Output 4 | 57 | | ||
+ | | Digital Output 5 | 56 | | ||
+ | | Digital Output 6 | 55 | | ||
+ | | Digital Output 7 | 54 | | ||
+ | | Digital Output 8 | 47 | | ||
+ | | Digital Output 9 | 46 | | ||
+ | |||
+ | |||
+ | ====== Тестирование ====== | ||
+ | ===== Результаты ===== | ||
+ | ^ Функция ^ Работает? | ||
+ | | Консоль | Да | | | ||
+ | | LEDs | Да | Status1-heartbeat, | ||
+ | | MicroSD | Да | Загрузка с карты | | ||
+ | | USB Host | Да | USB-флешка работает | | ||
+ | | USB-FT4232 | Да | Микросхема определилась ядром | | ||
+ | | USB-FT4232-PC | Да | Подключил к ПК и прочитал значения регистров в EEPROM | | ||
+ | | Ethernet 1 (ksz8851) | Да | | | ||
+ | | Ethernet 2 (встроенный) | Да | | | ||
+ | | Реле (DO1-DO9) | Да | | | ||
+ | | Ц.Входы (DI1-D7) | Да | | | ||
+ | | Дип-переключатель | Да | | | ||
+ | | 1-wire | Да | Подключал один датчик температуры | | ||
+ | | АЦП | Да | | | ||
+ | | ЦАП | Да | | | ||
+ | | RTC | Да | С батарейкой время считает, | ||
+ | | WIFI-Infrastructure | Да | | | ||
+ | | WIFI-SoftAP | | | | ||
+ | | CAN | | | | ||
+ | | RS-485 | Да | Связь между портами COM1< | ||
+ | ===== Методика проверки ===== | ||
+ | ==== GPIO ==== | ||
+ | === DIN === | ||
+ | < | ||
+ | root@arm: | ||
+ | DIN 1 = 1 | ||
+ | DIN 2 = 1 | ||
+ | DIN 3 = 1 | ||
+ | DIN 4 = 1 | ||
+ | DIN 5 = 1 | ||
+ | DIN 6 = 1 | ||
+ | DIN 7 = 1 | ||
+ | root@arm: | ||
+ | DIN 1 = 0 | ||
+ | DIN 2 = 1 | ||
+ | DIN 3 = 1 | ||
+ | DIN 4 = 1 | ||
+ | DIN 5 = 1 | ||
+ | DIN 6 = 1 | ||
+ | DIN 7 = 1 | ||
+ | root@arm: | ||
+ | DIN 1 = 1 | ||
+ | DIN 2 = 0 | ||
+ | DIN 3 = 1 | ||
+ | DIN 4 = 1 | ||
+ | DIN 5 = 1 | ||
+ | DIN 6 = 1 | ||
+ | DIN 7 = 1 | ||
+ | root@arm: | ||
+ | DIN 1 = 1 | ||
+ | DIN 2 = 1 | ||
+ | DIN 3 = 0 | ||
+ | DIN 4 = 1 | ||
+ | DIN 5 = 1 | ||
+ | DIN 6 = 1 | ||
+ | DIN 7 = 1 | ||
+ | root@arm: | ||
+ | DIN 1 = 1 | ||
+ | DIN 2 = 1 | ||
+ | DIN 3 = 1 | ||
+ | DIN 4 = 0 | ||
+ | DIN 5 = 1 | ||
+ | DIN 6 = 1 | ||
+ | DIN 7 = 1 | ||
+ | root@arm: | ||
+ | DIN 1 = 1 | ||
+ | DIN 2 = 1 | ||
+ | DIN 3 = 1 | ||
+ | DIN 4 = 1 | ||
+ | DIN 5 = 0 | ||
+ | DIN 6 = 1 | ||
+ | DIN 7 = 1 | ||
+ | root@arm: | ||
+ | DIN 1 = 1 | ||
+ | DIN 2 = 1 | ||
+ | DIN 3 = 1 | ||
+ | DIN 4 = 1 | ||
+ | DIN 5 = 1 | ||
+ | DIN 6 = 0 | ||
+ | DIN 7 = 1 | ||
+ | root@arm: | ||
+ | DIN 1 = 1 | ||
+ | DIN 2 = 1 | ||
+ | DIN 3 = 1 | ||
+ | DIN 4 = 1 | ||
+ | DIN 5 = 1 | ||
+ | DIN 6 = 1 | ||
+ | DIN 7 = 0 | ||
+ | </ | ||
+ | === DOUT === | ||
+ | После старта ядра все реле находятся в разомкнутом состоянии, | ||
+ | < | ||
+ | root@arm: | ||
+ | root@arm: | ||
+ | root@arm: | ||
+ | root@arm: | ||
+ | root@arm: | ||
+ | root@arm: | ||
+ | root@arm: | ||
+ | root@arm: | ||
+ | root@arm: | ||
+ | </ | ||
+ | Убеждаемся, | ||
+ | === ДИП-переключатель === | ||
+ | Проверяем с помощью скрипта dipsw.sh, который имеет содержимое: | ||
+ | < | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | </ | ||
+ | Последовательное чтение значений и сдвиг переключателей по одному с 1-го | ||
+ | < | ||
+ | root@arm: | ||
+ | DIP-SW 1 = 1 | ||
+ | DIP-SW 2 = 1 | ||
+ | DIP-SW 3 = 1 | ||
+ | DIP-SW 4 = 1 | ||
+ | DIP-SW 5 = 1 | ||
+ | DIP-SW 6 = 1 | ||
+ | root@arm: | ||
+ | DIP-SW 1 = 0 | ||
+ | DIP-SW 2 = 1 | ||
+ | DIP-SW 3 = 1 | ||
+ | DIP-SW 4 = 1 | ||
+ | DIP-SW 5 = 1 | ||
+ | DIP-SW 6 = 1 | ||
+ | root@arm: | ||
+ | DIP-SW 1 = 0 | ||
+ | DIP-SW 2 = 0 | ||
+ | DIP-SW 3 = 1 | ||
+ | DIP-SW 4 = 1 | ||
+ | DIP-SW 5 = 1 | ||
+ | DIP-SW 6 = 1 | ||
+ | root@arm: | ||
+ | DIP-SW 1 = 0 | ||
+ | DIP-SW 2 = 0 | ||
+ | DIP-SW 3 = 0 | ||
+ | DIP-SW 4 = 1 | ||
+ | DIP-SW 5 = 1 | ||
+ | DIP-SW 6 = 1 | ||
+ | root@arm: | ||
+ | DIP-SW 1 = 0 | ||
+ | DIP-SW 2 = 0 | ||
+ | DIP-SW 3 = 0 | ||
+ | DIP-SW 4 = 0 | ||
+ | DIP-SW 5 = 1 | ||
+ | DIP-SW 6 = 1 | ||
+ | root@arm: | ||
+ | DIP-SW 1 = 0 | ||
+ | DIP-SW 2 = 0 | ||
+ | DIP-SW 3 = 0 | ||
+ | DIP-SW 4 = 0 | ||
+ | DIP-SW 5 = 0 | ||
+ | DIP-SW 6 = 1 | ||
+ | root@arm: | ||
+ | DIP-SW 1 = 0 | ||
+ | DIP-SW 2 = 0 | ||
+ | DIP-SW 3 = 0 | ||
+ | DIP-SW 4 = 0 | ||
+ | DIP-SW 5 = 0 | ||
+ | DIP-SW 6 = 0 | ||
+ | </ | ||
+ | ==== 1-wire ==== | ||
+ | **Для ядра 3.2:** | ||
+ | < | ||
+ | modprobe w1_therm | ||
+ | modprobe ds2482 | ||
+ | echo ds2482 0x18 > / | ||
+ | </ | ||
+ | **Для ядра 3.18, 4.14:** | ||
+ | < | ||
+ | modprobe w1_therm strong_pullup=0 | ||
+ | modprobe ds2482 | ||
+ | echo ds2482 0x18 > / | ||
+ | </ | ||
+ | Узнаем какое устройство появилось в системе: | ||
+ | < | ||
+ | root@arm:~# ls / | ||
+ | 28-000002000d1c/ | ||
+ | w1_bus_master1/ | ||
+ | w1_bus_master2/ | ||
+ | </ | ||
+ | Видно, что 28-000002000d1c является датчиком температуры (класс устройства 28). Считаем температуру: | ||
+ | < | ||
+ | root@arm:~# cat / | ||
+ | af 01 4b 46 7f ff 01 10 bc : crc=bc YES | ||
+ | af 01 4b 46 7f ff 01 10 bc t=26937 | ||
+ | </ | ||
+ | Текущее значение температуры 26.937 градусов Цельсия | ||
+ | ==== АЦП ==== | ||
+ | Адрес АЦП 32 (0x21) на шине i2c-3 (ядро 3.2) либо на i2c-2 (ядро 3.18). | ||
+ | |||
+ | Компиляция тестового приложения adc-read: | ||
+ | < | ||
+ | ubuntu: | ||
+ | ubuntu: | ||
+ | / | ||
+ | / | ||
+ | ubuntu: | ||
+ | adc-read | ||
+ | </ | ||
+ | Поместите исполняемый файл adc-read в файловую систему на компьютере ПМ-Вент. Далее, подключаем источник напряжения и выполняем чтение поканально (на макете канал 2 не подключен): | ||
+ | < | ||
+ | root@arm:~# ./adc-read 33 1 | ||
+ | ADC[4]: HEX=0x2cf Voltage=7.02V | ||
+ | root@arm:~# ./adc-read 33 3 | ||
+ | ADC[4]: HEX=0x2cd Voltage=7.00V | ||
+ | root@arm:~# ./adc-read 33 4 | ||
+ | ADC[4]: HEX=0x2cc Voltage=6.99V | ||
+ | </ | ||
+ | |||
+ | ==== ЦАП ==== | ||
+ | Компиляция тестового приложения dac-write: | ||
+ | < | ||
+ | ubuntu:$ export CC=/ | ||
+ | ubuntu: | ||
+ | / | ||
+ | / | ||
+ | ubuntu: | ||
+ | dac-write | ||
+ | </ | ||
+ | Поместите исполняемый файл dac-write в файловую систему на компьютере ПМ-Вент. | ||
+ | |||
+ | 1) Записываем нули в выходные каналы ЦАП: | ||
+ | < | ||
+ | root@arm:~# ./dac-write 13 1 0 | ||
+ | DAC: set i2c address to d | ||
+ | DAC: set channel number to 1 | ||
+ | DAC: pointer reg = 0x01 | ||
+ | DAC: set shift register to 0 | ||
+ | DAC: shift register MSB=0x20 LSB=0x00 | ||
+ | root@arm:~# ./dac-write 13 2 0 | ||
+ | DAC: set i2c address to d | ||
+ | DAC: set channel number to 2 | ||
+ | DAC: pointer reg = 0x02 | ||
+ | DAC: set shift register to 0 | ||
+ | DAC: shift register MSB=0x20 LSB=0x00 | ||
+ | root@arm:~# ./dac-write 13 3 0 | ||
+ | DAC: set i2c address to d | ||
+ | DAC: set channel number to 3 | ||
+ | DAC: pointer reg = 0x04 | ||
+ | DAC: set shift register to 0 | ||
+ | DAC: shift register MSB=0x20 LSB=0x00 | ||
+ | root@arm:~# ./dac-write 13 4 0 | ||
+ | DAC: set i2c address to d | ||
+ | DAC: set channel number to 4 | ||
+ | DAC: pointer reg = 0x08 | ||
+ | DAC: set shift register to 0 | ||
+ | DAC: shift register MSB=0x20 LSB=0x00 | ||
+ | root@arm:~# ./dac-write 14 0 0 | ||
+ | DAC: set i2c address to e | ||
+ | ERROR: DAC channel number 1-4 | ||
+ | root@arm:~# ./dac-write 14 1 0 | ||
+ | DAC: set i2c address to e | ||
+ | DAC: set channel number to 1 | ||
+ | DAC: pointer reg = 0x01 | ||
+ | DAC: set shift register to 0 | ||
+ | DAC: shift register MSB=0x20 LSB=0x00 | ||
+ | ERROR: i2c transaction failed | ||
+ | root@arm:~# ./dac-write 12 1 0 | ||
+ | DAC: set i2c address to c | ||
+ | DAC: set channel number to 1 | ||
+ | DAC: pointer reg = 0x01 | ||
+ | DAC: set shift register to 0 | ||
+ | DAC: shift register MSB=0x20 LSB=0x00 | ||
+ | root@arm:~# ./dac-write 12 2 0 | ||
+ | DAC: set i2c address to c | ||
+ | DAC: set channel number to 2 | ||
+ | DAC: pointer reg = 0x02 | ||
+ | DAC: set shift register to 0 | ||
+ | DAC: shift register MSB=0x20 LSB=0x00 | ||
+ | root@arm:~# ./dac-write 12 3 0 | ||
+ | DAC: set i2c address to c | ||
+ | DAC: set channel number to 3 | ||
+ | DAC: pointer reg = 0x04 | ||
+ | DAC: set shift register to 0 | ||
+ | DAC: shift register MSB=0x20 LSB=0x00 | ||
+ | root@arm:~# ./dac-write 12 4 0 | ||
+ | DAC: set i2c address to c | ||
+ | DAC: set channel number to 4 | ||
+ | DAC: pointer reg = 0x08 | ||
+ | DAC: set shift register to 0 | ||
+ | DAC: shift register MSB=0x20 LSB=0x00 | ||
+ | </ | ||
+ | Проверяем вольтметром фактическое значение напряжение на выходах AO1 - AO8. На макете значения были от 0.04 до 0.06 вольт (измерено мультиметром Mastech M9508). | ||
+ | |||
+ | 2) Записываем 512 в выходные каналы ЦАП, чтобы получить на выходе 5В: | ||
+ | < | ||
+ | root@arm:~# ./dac-write 12 1 512 | ||
+ | DAC: set i2c address to c | ||
+ | DAC: set channel number to 1 | ||
+ | DAC: pointer reg = 0x01 | ||
+ | DAC: set shift register to 512 | ||
+ | DAC: shift register MSB=0x28 LSB=0x00 | ||
+ | root@arm:~# ./dac-write 12 2 512 | ||
+ | DAC: set i2c address to c | ||
+ | DAC: set channel number to 2 | ||
+ | DAC: pointer reg = 0x02 | ||
+ | DAC: set shift register to 512 | ||
+ | DAC: shift register MSB=0x28 LSB=0x00 | ||
+ | root@arm:~# ./dac-write 12 3 512 | ||
+ | DAC: set i2c address to c | ||
+ | DAC: set channel number to 3 | ||
+ | DAC: pointer reg = 0x04 | ||
+ | DAC: set shift register to 512 | ||
+ | DAC: shift register MSB=0x28 LSB=0x00 | ||
+ | root@arm:~# ./dac-write 12 4 512 | ||
+ | DAC: set i2c address to c | ||
+ | DAC: set channel number to 4 | ||
+ | DAC: pointer reg = 0x08 | ||
+ | DAC: set shift register to 512 | ||
+ | DAC: shift register MSB=0x28 LSB=0x00 | ||
+ | root@arm:~# ./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 | ||
+ | root@arm:~# ./dac-write 13 2 512 | ||
+ | DAC: set i2c address to d | ||
+ | DAC: set channel number to 2 | ||
+ | DAC: pointer reg = 0x02 | ||
+ | DAC: set shift register to 512 | ||
+ | DAC: shift register MSB=0x28 LSB=0x00 | ||
+ | root@arm:~# ./dac-write 13 3 512 | ||
+ | DAC: set i2c address to d | ||
+ | DAC: set channel number to 3 | ||
+ | DAC: pointer reg = 0x04 | ||
+ | DAC: set shift register to 512 | ||
+ | DAC: shift register MSB=0x28 LSB=0x00 | ||
+ | root@arm:~# ./dac-write 13 4 512 | ||
+ | DAC: set i2c address to d | ||
+ | DAC: set channel number to 4 | ||
+ | DAC: pointer reg = 0x08 | ||
+ | DAC: set shift register to 512 | ||
+ | DAC: shift register MSB=0x28 LSB=0x00 | ||
+ | </ | ||
+ | Измеренное напряжение: | ||
+ | ^ Канал ^ AO1 ^ AO2 ^ AO3 ^ AO4 ^ AO5 ^ AO6 ^ AO7 ^ AO8 ^ | ||
+ | ^ Напряжение, | ||
+ | 3) Записываем 1023 в выходные каналы ЦАП, чтобы получить на выходе 10В: | ||
+ | < | ||
+ | root@arm:~# ./dac-write 12 1 1023 | ||
+ | DAC: set i2c address to c | ||
+ | DAC: set channel number to 1 | ||
+ | DAC: pointer reg = 0x01 | ||
+ | DAC: set shift register to 1023 | ||
+ | DAC: shift register MSB=0x2f LSB=0xfc | ||
+ | root@arm:~# ./dac-write 12 2 1023 | ||
+ | DAC: set i2c address to c | ||
+ | DAC: set channel number to 2 | ||
+ | DAC: pointer reg = 0x02 | ||
+ | DAC: set shift register to 1023 | ||
+ | DAC: shift register MSB=0x2f LSB=0xfc | ||
+ | root@arm:~# ./dac-write 12 3 1023 | ||
+ | DAC: set i2c address to c | ||
+ | DAC: set channel number to 3 | ||
+ | DAC: pointer reg = 0x04 | ||
+ | DAC: set shift register to 1023 | ||
+ | DAC: shift register MSB=0x2f LSB=0xfc | ||
+ | root@arm:~# ./dac-write 12 4 1023 | ||
+ | DAC: set i2c address to c | ||
+ | DAC: set channel number to 4 | ||
+ | DAC: pointer reg = 0x08 | ||
+ | DAC: set shift register to 1023 | ||
+ | DAC: shift register MSB=0x2f LSB=0xfc | ||
+ | root@arm:~# ./dac-write 13 1 1023 | ||
+ | DAC: set i2c address to d | ||
+ | DAC: set channel number to 1 | ||
+ | DAC: pointer reg = 0x01 | ||
+ | DAC: set shift register to 1023 | ||
+ | DAC: shift register MSB=0x2f LSB=0xfc | ||
+ | root@arm:~# ./dac-write 13 2 1023 | ||
+ | DAC: set i2c address to d | ||
+ | DAC: set channel number to 2 | ||
+ | DAC: pointer reg = 0x02 | ||
+ | DAC: set shift register to 1023 | ||
+ | DAC: shift register MSB=0x2f LSB=0xfc | ||
+ | root@arm:~# ./dac-write 13 3 1023 | ||
+ | DAC: set i2c address to d | ||
+ | DAC: set channel number to 3 | ||
+ | DAC: pointer reg = 0x04 | ||
+ | DAC: set shift register to 1023 | ||
+ | DAC: shift register MSB=0x2f LSB=0xfc | ||
+ | root@arm:~# ./dac-write 13 4 1023 | ||
+ | DAC: set i2c address to d | ||
+ | DAC: set channel number to 4 | ||
+ | DAC: pointer reg = 0x08 | ||
+ | DAC: set shift register to 1023 | ||
+ | DAC: shift register MSB=0x2f LSB=0xfc | ||
+ | </ | ||
+ | Измеренное напряжение: | ||
+ | ^ Канал ^ AO1 ^ AO2 ^ AO3 ^ AO4 ^ AO5 ^ AO6 ^ AO7 ^ AO8 ^ | ||
+ | ^ Напряжение, | ||
+ | ==== RS-485 ==== | ||
+ | === COM1 === | ||
+ | < | ||
+ | ./ | ||
+ | 18-01-2015 00: | ||
+ | Opening / | ||
+ | 18-01-2015 00: | ||
+ | 18-01-2015 00: | ||
+ | 18-01-2015 00: | ||
+ | 18-01-2015 00: | ||
+ | [56][04][00][01][00][01][6D][ED] | ||
+ | Waiting for a confirmation... | ||
+ | < | ||
+ | Reg [0] 3025 | ||
+ | </ | ||
+ | === COM2 === | ||
+ | < | ||
+ | ./ | ||
+ | 18-01-2015 00: | ||
+ | Opening / | ||
+ | 18-01-2015 00: | ||
+ | 18-01-2015 00: | ||
+ | 18-01-2015 00: | ||
+ | 18-01-2015 00: | ||
+ | [56][04][00][01][00][01][6D][ED] | ||
+ | Waiting for a confirmation... | ||
+ | < | ||
+ | Reg [0] 3025 | ||
+ | </ | ||
+ | === COM3 === | ||
+ | < | ||
+ | ./ | ||
+ | 18-01-2015 00: | ||
+ | Opening / | ||
+ | 18-01-2015 00: | ||
+ | 18-01-2015 00: | ||
+ | 18-01-2015 00: | ||
+ | 18-01-2015 00: | ||
+ | [56][04][00][01][00][01][6D][ED] | ||
+ | Waiting for a confirmation... | ||
+ | < | ||
+ | Reg [0] 3025 | ||
+ | </ | ||
+ | ==== CAN ==== | ||
+ | ==== Wifi ==== | ||
+ | === Подключение к точке доступа === | ||
+ | < | ||
+ | root@arm:~# ifconfig -a | ||
+ | can0 Link encap: | ||
+ | NOARP MTU: | ||
+ | RX packets:0 errors:0 dropped:0 overruns:0 frame:0 | ||
+ | TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions: | ||
+ | RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) | ||
+ | Interrupt: | ||
+ | |||
+ | eth0 Link encap: | ||
+ | BROADCAST MULTICAST | ||
+ | RX packets:0 errors:0 dropped:0 overruns:0 frame:0 | ||
+ | TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions: | ||
+ | RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) | ||
+ | |||
+ | eth1 Link encap: | ||
+ | inet addr: | ||
+ | inet6 addr: fe80:: | ||
+ | UP BROADCAST RUNNING MULTICAST | ||
+ | RX packets:46 errors:0 dropped:0 overruns:0 frame:0 | ||
+ | TX packets:35 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions: | ||
+ | RX bytes:4702 (4.5 KiB) TX bytes:3162 (3.0 KiB) | ||
+ | Interrupt: | ||
+ | |||
+ | lo Link encap:Local Loopback | ||
+ | inet addr: | ||
+ | inet6 addr: ::1/128 Scope:Host | ||
+ | UP LOOPBACK RUNNING | ||
+ | RX packets:6 errors:0 dropped:0 overruns:0 frame:0 | ||
+ | TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions: | ||
+ | RX bytes:344 (344.0 B) TX bytes:344 (344.0 B) | ||
+ | |||
+ | wlan0 Link encap: | ||
+ | BROADCAST MULTICAST | ||
+ | RX packets:0 errors:0 dropped:0 overruns:0 frame:0 | ||
+ | TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 | ||
+ | collisions: | ||
+ | RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) | ||
+ | |||
+ | root@arm:~# ip link set wlan0 up | ||
+ | [ | ||
+ | [ | ||
+ | root@arm:~# iwlist wlan0 scan | ||
+ | wlan0 Scan completed : | ||
+ | Cell 01 - Address: B8: | ||
+ | Channel:1 | ||
+ | Frequency: | ||
+ | Quality=22/ | ||
+ | Encryption key:on | ||
+ | ESSID:" | ||
+ | Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s | ||
+ | 18 Mb/s; 36 Mb/s; 54 Mb/s | ||
+ | Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s | ||
+ | Mode:Master | ||
+ | Extra: | ||
+ | Extra: Last beacon: 1850ms ago | ||
+ | IE: Unknown: 00036C6176 | ||
+ | IE: Unknown: 010882848B961224486C | ||
+ | IE: Unknown: 030101 | ||
+ | IE: Unknown: 32040C183060 | ||
+ | IE: Unknown: 0706525520010E14 | ||
+ | IE: Unknown: 050400010000 | ||
+ | IE: Unknown: 2A0104 | ||
+ | IE: WPA Version 1 | ||
+ | Group Cipher : TKIP | ||
+ | Pairwise Ciphers (1) : TKIP | ||
+ | Authentication Suites (1) : PSK | ||
+ | IE: Unknown: DD180050F2020101024003A4000027A4000042435E0062322F00 | ||
+ | IE: Unknown: 0B0500001C127A | ||
+ | IE: Unknown: DD07000C4307000000 | ||
+ | Cell 02 - Address: 20: | ||
+ | Channel:1 | ||
+ | Frequency: | ||
+ | Quality=29/ | ||
+ | Encryption key:on | ||
+ | ESSID:" | ||
+ | Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s | ||
+ | 24 Mb/s; 36 Mb/s; 54 Mb/s | ||
+ | Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s | ||
+ | Mode:Master | ||
+ | Extra: | ||
+ | Extra: Last beacon: 1840ms ago | ||
+ | IE: Unknown: 0004696E6574 | ||
+ | IE: Unknown: 010882848B962430486C | ||
+ | IE: Unknown: 030101 | ||
+ | IE: Unknown: 2A0100 | ||
+ | IE: Unknown: 2F0100 | ||
+ | IE: Unknown: 32040C121860 | ||
+ | IE: Unknown: DD870050F204104A00011010440001021041000100103B0001031047001020CF30CE27F220CF30CE27F20300D438102100074153555354656B1023000F576972656C65737320526F7574657210240009574C353030677076321042000234351054000800060050F2040001101100144153555320576972656C65737320526F75746572100800020088 | ||
+ | IE: Unknown: DD090010180201F0000000 | ||
+ | IE: WPA Version 1 | ||
+ | Group Cipher : TKIP | ||
+ | Pairwise Ciphers (1) : TKIP | ||
+ | Authentication Suites (1) : PSK | ||
+ | </ | ||
+ | |||
+ | ====== Настройка ====== | ||
+ | ===== Установка временной зоны ===== | ||
+ | < | ||
+ | dpkg-reconfigure tzdata | ||
+ | </ | ||
+ | Далее выбрать " | ||
+ | |||
+ | ===== Время на изделии ===== | ||
+ | ==== Установка времени ==== | ||
+ | === Вручную === | ||
+ | Формат команды date следующий: | ||
+ | < | ||
+ | date | ||
+ | MMDDhhmm[ | ||
+ | CC] | ||
+ | YY[. | ||
+ | ss] | ||
+ | </ | ||
+ | где:\\ | ||
+ | * MM - номер месяца | ||
+ | * DD - число | ||
+ | * hh - часы | ||
+ | * mm - минуты | ||
+ | * CCYY - год полностью (2014) | ||
+ | * .ss - секунды | ||
+ | Установим дату 25 декабря 2014г, 12:53 | ||
+ | < | ||
+ | date 122512532014 | ||
+ | </ | ||
+ | === Синхронизация времени по NTP === | ||
+ | Локальное время можно синхронизировать с точными часами, | ||
+ | < | ||
+ | apt-get install ntp | ||
+ | </ | ||
+ | Спустя несколько секунд после установки системные часы будут синхронизированы автоматически с мировым временем. Обязательное условие - активное сетевое подключение. | ||
+ | === Запись времени в RTC === | ||
+ | После записи текущего времени в RTC после перезагрузки платы или выключения питания время восстановится автоматически. Для записи времени в RTC выполните команду: | ||
+ | < | ||
+ | hwclock --systohc | ||
+ | </ | ||
+ | Для чтения текущего значения времени в RTC выполните команду | ||
+ | < | ||
+ | hwclock | ||
+ | </ | ||
+ | Для синхронизации системных часов со временем, | ||
+ | < | ||
+ | hwclock --hctosys | ||
+ | </ |
wiki/pmvent2.txt · Последнее изменение: 2022/01/12 16:51 — 127.0.0.1