Electronics

Установка Armbian на планшет Icoo D70gt. Часть 3

В предыдущих частях удалось запустить систему на планшете и настроить тачскрин.

Но как всегда хочется большего - например установить X-server, что бы получить все преимущества графического интерфейса.

Установка Armbian на планшет Icoo D70gt. Часть 2

Поскольку предыдущая статья получилась очень уж объёмной, я решил разбить её на две части.

В этой части я рассмотрю некоторые аспекты настройки системы и устройств ввода, таких как кнопки планшета, тачскрин и G-сенсор.

Установка Armbian на планшет Icoo D70gt

Наверное одно из самых недолговечных домашних электронных устройств - это планшет. Недлоговечное не в плане быстрой поломки (хотя и такое за ними водится), а в плане быстрого устаревания.

ПО ориентируется на флагманы, а устройство из среднего или низшего ценового диапазона ещё год назад вполне сносно работавшее вызывает только желание приложить его об стену.

Возможен и вариант частично работающего устройства: например разбит тачскрин, окончательно и бесповоротно сдох аккумулятор, может даже и сам экран разбит.

В любом случае, пока живы “мозги” планшета, можно постараться извлечь из планшета пользу установив на него ОС с ядром Linux.

FlashROM: программирование SPI Flash

FlashROM - консольная утилита для идентификации, чтения, записи, проверки и стирания микросхем Flash памяти. Основное назначение - это перепрошивка BIOS, etc, а потому в списке устройств программирования много весьма специфичных. Но так же поддерживаются распространённые программаторы/адаптеры: ft2232_spi, serprog, buspirate_spi, rayer_spi, pony_spi Адаптеры rayer и pony подключается на LPT порт, так что в современных реалиях их использование затруднительно. SerProg serprog это не конкретный адаптер, а протокол взаимодействия с адаптером по UART интерфейсу (или через эмуляцию UART на USB).

Обжимной инструмент

Долгие поиски адекватного инструмента для обжимания dupont-коннекторов (он же crimping tool) наконец привели к желаемому результату.

Обычные обжимки имеют одноуровневые губки, так что при попытке обжать коннектор, мы получали плохое соединение металла коннектора с зачищенным концом провода (или вообще не получали никакого соединения). Приходилось извращаться либо с пайкой, либо подгибая зачищенный конец провода на изоляцию.

Nokia 1202 LCD

Данный дисплей устанавливается в ряд бюджетных моделей телефонов Nokia 1202/1203/1280. Доступность, простой последовательный интерфейс и относительная лёгкость подключения позволяет использовать данный дисплей как в радиолюбительских конструкциях, так и в более серьёзных проектах. Если же Вам необходим цветной дисплей более высокого разрешения, то можно воспользоваться бюджетным LCD от Nokia 1661/5030/ 1616/1800/1662. LCD pinout Pin Name Description 0 not used 1 !

LPC-Link

Как многим заинтересованным лицам известно, хитрые платы LPCXpresso снабжены мега-дебаггером LPC-Link. Выпуск среды разработки code red в нативном виде под Linux позволил нам, сирым и убогим, познать радость пользования этим самым LPC-link’ом. В общих и целых чертах мы имеем следующее: Микроконтроллер задействованный в LPC-link начисто лишен какой бы то ни было долговременной памяти. Фирмварь в него надо грузить каждый раз после перетыкания и перед тем как начать шить target контроллер нам надо проверить, что там вообще на usb шине творится, в плане девайсов.

H018IN01

A high quality Color TFT-LCD Display for electronic applications. Возможности: Screen resolution: 128x160 Screen size: 1.8 inch (38x30mm) Screen type: TFT Controller chip: NT3915 Built-in backlight SPI support Документация: Specification Controller

Segger J-Link

Распространённое аппаратное средство для отладки МК с ядром ARM по интерфейсу JTAG и SWD((В openocd так и нет нормальной поддержки этого интерфейса)). Оригинальный J-Link стоит достаточно дорого - более трёхсот долларов, что достаточно ощутимо для радиолюбительского кошелька. Но китайские товарищи расстарались, и наклепали вполне приличных клонов за небольшие деньги. Возможно, это мне попался такой экземпляр китайского клона, но в условиях производство с обилием силовых агрегатов вокруг, отладчик подвисал каждые несколько минут.

Silicon labs EC2/EC3 debugger linux driver

Поддержка оригинальных Silabs-овских дебаггеров EC2 и EC3 обеспечивается с помощью пакета http://ec2drv.sourceforge.net/|ec2drv Установка ec2drv В первую очередь, нам надо инсталлировать все необходимые утилиты и бибилиотеки. На Debian-based системах это можно сделать командой: apt-get install autoconf libtool libboost-dev libusb-dev libreadline5-dev subversion libboost-regex-dev Получаем исходный код: svn co https://ec2drv.svn.sourceforge.net/svnroot/ec2drv/ec2drv/trunk ec2drv Переходим в каталог проекта и инициируем automake: cd ec2drv make -f Makefile.cvs ./configure Поскольку пакет ec2drv не обновлялся с 2006 года, для установки на современные системы потребуется побить в бубен.

Оптимизация задержек

Микроконтроллеры обычно работают напрямую с физическим миром, а не только с астрактным миром цифр. А реальность не терпит поспешностей. Иногда нужно немного подождать. Казалось бы, чего уж проще - написать процедуру задержки. А ведь нет! Написать то легко, а вот каков результат будет в машинных кодах? Три команды или тридцать три?

Вот и мне потребовалось реализовать задержку в сишной программе для ATtiny2313. Микроконтроллер ресурсами не блещет, а потому каждая команда на счету.

Прошивка LPC2xxx по последовательному порту

Микроконтроллеры NXP LPC2xxx имеют встроенный загрузчик, позволяющий прошивать память программ (flash) через последовательный порт (UART). Для входа в режим загрузчика во время аппаратного(?) сброса на определённых ногах микроконтроллера должны присутствовать логические уровни: Ноль на P0.14 для LPC210x Ноль на P2.10 для LPC2368, LPC2478 … LPC21ISP Наиболее оптимальный вариант для прошивки микроконтроллераконтроллера через последовательный порт - воспользоваться консольной программой lpc21isp. Сборка приложения проста и осуществляется одной командой make.

AVR Dragon

AVR Dragon средство программирования и отладки микроконтроллеров AVR. Позволяет отлаживать код размером до 32кб, хотя существует возможность доработки. Поддерживает программирование через интерфейс AVR ISP (6 pin), параллельный и последовательный высоковольтные интерфейсы. Отладка и программирование производится через интерфейсы AVR JTAG (10 pin) и dW (debug Wire). Ранние версии AVR Dragon имеют схемотехническую ошибку из-за которой велика вероятность выхода из строя цепей питания. Способ исправления описан в руководстве. AvrDuDe поддерживает все интерфейсы AVR Dragon, для отладки следует воспользоваться приложением AVaRICE - промежуточным звеном между железом AVR Dragon-а и отладчиком avr-gdb.

RS-232 pinout

DB-9 DB-25 Name 8P8C Dir Color 1 DCD 8 (бел) in black 2 RXD 6 (желт) in brown 3 TXD 3 (черн) out red 4 DTR 2 (ор) out orange 5 GND 5 (зел) pow yellow 6 DSR 1 (син) in green 7 RTS 4 (крас) out blue 8 CTS 7 (кор) in purple 9 RI in white Cisco cable Name 8P8C Color DB-9f CTS 1 Black 8 DSR 2 Brown 6 RXD 3 Red 2 GND 4 Orange 5 GND 5 Yellow 5 TXD 6 Green 3 DTR 7 Blue 4 RTS 8 Gray 7

Inex PX-200

PICkit2 совместимый программатор. Скачать исходный код консольного приложения для posix совместимых систем можно с официального сайта Microchip. Распакуем полученный код и соберём его командой make linux. Для возможности работы из под обычного юзера пропишем правило для udev #/etc/udev/rules.d/77-pickit.rules SYSFS{idVendor}=="04d8", SYSFS{idProduct}=="0033", GROUP="usb", SYMLINK+="pickit2" И добавим вашего пользователя в группу usb: sudo adduser your_login usb Возможно потребуется обновление программного обеспечения программатора: ./pk2cmd -D PK2V023200.hex

AT команды GSM модемов

PIN-код Если SIM-карта защищена PIN-кодом, после включения следует его “ввести” AT+CPIN="0000" Voice режим Для перехода в голосовой режим выполните команду: AT+FCLASS=8 После этого можно набирать номер ATD8911xxxxxxx; Обратите внимание на точку с запятой в конце номера. Она указывает, что должен быть произведён именно голосовой вызов. Ссылки по теме http://en.wikipedia.org/wiki/Voice_modem_command_set http://en.wikipedia.org/wiki/Hayes_command_set http://doc.qt.nokia.com/qtopia4.1/atcommands.html http://www.smssolutions.net/tutorials/gsm/receivesmsat/ AnyData CDMA Голосовой вызов: AT+CDV+7911xxxxxxx

LPC2368 SSP init as SPI

void sspInit(void) { // SSP1 (SPI) init sequense PCONP |= (1<<10); // PCSSP1 - power on PINSEL0 |= (2<<(7*2)) | (2<<(8*2)) | (2<<(9*2)) | (2<<(6*2)); // configure SPI1 pinouts // Serial Clock Rate: PCLK/CPSDVSR SSP1CR1 = 0x0 ; // disable SSP, must be off during changes SSP1CR0 = (8-1); // | (1<<6) /* CPOL */ | (1<<7) /* CPHA */; // | SSP_CR0_CPOL | SSP_CR0_CPHA; // DataSizeSelect=8, CPOL=1,CPHA=1 SSP1CPSR = 8; // SPICLK = PCLK/8 = 18MHz/8 = 2.

LPC2368 UART init

void uartInit(unsigned long baudrate) { /*------------------------------------------------ Setup serial port registers. ------------------------------------------------*/ PCONP |= (1<<3); // PCUART0 UART0 power/clock control bit. PINSEL0 |= (1<<(2*2)) | (1<<(2*3)); /* Enable TXD0, RXD0 */ U0LCR = 0x03; /* 8 bits, no Parity, 1 Stop bit */ U0IER = 0; /* Disable UART1 Interrupts */ U0FCR = 0x07; unsigned long DLreload; DLreload = ((Fpclk / 16UL) + (baudrate-1)) / baudrate; U0LCR |= 0x80; /* Set DLAB */ U0DLL = DLreload; U0DLM = (DLreload >> 8); U0LCR &= ~0x80; /* Clear DLAB */ } char uartGetc(void) { while (!

ModBus

Modbus — коммуникационный протокол, основанный на master-slave архитектуре. Разработан фирмой Modicon для использования в контроллерах с программируемой логикой (PLC). Стал стандартом де-факто в промышленности и широко применяется для организации связи промышленного электронного оборудования. Использует для передачи данных последовательные линии связи RS-485, RS-422, RS-232, а также сети TCP/IP. В настоящее время поддерживается некоммерческой организацией Modbus-IDA. (Материал из Википедии)

SPI to UART

Запись в TX FIFO Байт 0: Dir 7 6 5 4 3 2 1 0 DI 1 x x x x x x x DO tx_free 3 2 1 0 rx_ready 3 2 1 0 Далее передаются байты данных, в количестве не более чем tx_free. Байт N: Dir 7 6 5 4 3 2 1 0 DI data 7 6 5 4 3 2 1 0 DO tx_free 3 2 1 0 x x x x Чтение из RX FIFO Байт 0:

Atari pinouts

Monitor connection Для подключения к телевизору через “тюльпанчики” соединяем: Вывод 4 (композитный сигнал) и вывод 2 (земля) с желтым “тюльпанчиком”. Вывод 3 (звук моно) и вывод 2 (земля) с белым “тюльпанчиком”. Я купил обычный аудио кабель с “тюльпанчиками” срезал одну часть, и подключил через него. DIN 5 female * * * * * * * ******* * * * Audio output * 3 1 * Composite luminance * * * * Composite chroma * 5 4 * Composite video (not available * * on XL models) * 2 * * * Ground http://www.

PS/2

Pinout Pin Signal 1 Data 2 Reserved 3 Ground 4 + 5 V dc 5 Clock 6 Reserved Эта же распиновка справедлива и для PS/2 клавиатуры. Links The PS/2 Mouse Interface The PS/2 Mouse/Keyboard Protocol Библиотека для обработки протокола на MCU AVR.

AT90USB162

Кристаллы поставляются прошитыми загрузчиком, который позволяет программировать контроллер через интерфейс USB. FLIP tool (TODO нужна актуальная ссылка). http://dfu-programmer.sourceforge.net/ (TODO проверить). При использовании FLIP под линукс возможно понадобится дополнительно указать где расположены устройства USB: export USB_DEVFS_PATH=/dev/bus/usb

Color LCD panel LM-CC53-22NTS

:!: Приведённая информация составлена из разрозненных данных и может быть неверна. Подсветка: Вывод Цвет Название Описание 1 черн. GND 2 крас. +Vcc 3 син. CTRL# Backlight on GND 4 сер. GND Bright :?: 5 сер. ? Bright :?: Дисплей: Вывод Цвет Название Описание 1 зел.

ESP8266 WiFi SoC

https://github.com/esp8266/esp8266-wiki/wiki https://nurdspace.nl/ESP8266 Tools PlatformIO Arduino IDE Firmware ESP Link - преобразователь WiFi в Uart. NodeMCU - брать прошивки лучше именно со страницы релизов, а не бинарники из репозитория. luatool Tool for loading Lua-based scripts from file to ESP8266 with nodemcu firmware. https://github.com/nekromant/esp8266-frankenstein Прошивка TCP2UART переходника с настройкой по Web. //не проверено// [Transparent TCP-UART bridge with support to flash arduino and ARM systems(https://github.com/jeelabs/esp8266-bridge). //не проверено// Absolutely transparent bridge for the ESP8266.

JTAG

Pinout Следует иметь в виду, что разные производители могут использовать разную разводку сигналов, даже на разъёмов с одинаковым количеством пинов. Наиболее стандартизирован в этом плане 20-пиновый разъём. 20-pin Name JTAG 20 JTAG 20 Name Vref 1 2 Vtarg nTRST 3 4 GND TDI 5 6 GND TMS 7 8 GND TCK 9 10 GND RTCK 11 12 GND TDO 13 14 GND nSRST 15 16 GND dbgRQ 17 18 GND dbgACK 19 20 GND 10-pin Name Pin Pin Name Vref 1 2 Vsup nTRST 3 4 nSRST TDI 5 6 TDO TMS 7 8 GND TCK 9 10 GND 6-pin Pin Name 1 TMS 2 TDI 3 TDO 4 TCK 5 GND 6 Vcc

LCD 128*64

Характеристики: lcd type: fstn duty, bias: duty=1⁄64, bias=1⁄9 viewing direction 6 o’clock module size (LxWxH) with FPC 32x19.2x1.8mm (max) View area(LxW) 27.95x12.9mm Dots matrix (segment * comment) 128*64 dots dot size (LxW) 0.16x0.145mm dot pitch(w*H) 0.19x0.175mm lcd driver ic st7565 (sitronix) absolute maximum ratings (Ta = 25 centigrade degree) Parameter symbol Min Max Unit Supply voltgage for logic VDD -0.3 3.

Monochrome LCD panel LM211

pin имя - описание 1 D1 H/L Serial row data 2 FLM H The FLM signal indicates the begining of each display cycle 3 M H/L Control signal for AC driving 4 CL1 H L The CL1 latches the serial data in the shift registers 5 CL2 H L Clock the signal for shifting the serial data 6 D2 H/L Serial row data 7 Vdd Power supply for logic circuit 8 Vss Ground 9 Vee Power supply for LC driving 10 Vo Operation voltage for LC driving Предельные напряжения

OLED 1.04inch 96x64@65K color display

OLED Color Display for electronic applications.((Via http://mdfly.com)) Характеристики: Screen resolution: 96x64@65K color Screen size: 1.04 inch Screen type: OLED Controller chip: SSD1332 Built-in backlight Built-in DC/DC Voltage converter Vendor: LG Документация: Display specification Display pinouts SSD1332 controller manual Typical contoller settings

SIM300D

Модуль GSM модем/телефон для встраивания в устройства. Datasheet Кратко о командах ATZ - сброс модема AT+CREG? - возвращает состояние регистрации в сети AT+CSQ - мощность/качество сигнала AT+CMGF=1 - включить текстовый режим передачи SMS AT+CMGS="+7911xxxxxxx",145 - отправка сообщения (завершается Ctrl-Z (0x1A))

ST7637

Контроллер ST7637 STN LCD дисплея позволяет управлять цветным RGB дисплеем размером 132x132 пикселя. Пример работы с контроллером по параллельному интерфейсу через MCU LPC2103 можно получить из репозитория по ссылке: http://bitbucket.org/plumbum/grlib-st7637/ . Сейчас я переписываю библиотеку для разных дисплеев http://bitbucket.org/plumbum/liblcdgr/ Дисплей был извлечён из десятибаксовой фоторамки.

STM8

Шаблоны для сборки под Linux: https://bitbucket.org/plumbum/stm8templates stm8flash https://github.com/vdudouyt/stm8flash - флешер поддерживающий ST-Link/ST-Link V2 Залить прошивку stm8flash -c stlink -p stm8l150 -w blinky.bin Считать eeprom stm8flash -c stlink -p stm8l150 -s 4000 -r eeprom.bin -b 1024 Считать OPT байты можно, но читать нужно непременно 256 байт, иначе магия не работает: stm8flash -c stlinkv2 -p stm8s105 -s 4800 -r opt.bin -b 256 После этого, можно байты отредактировать и записать обратно.

WIZ120SR

Шлюзовой модуль нового поколения, осуществляющий преобразование протоколов RS-232 <-> TCP/IP. Отличительной особенностью WIZ120SR от популярного моста WIZ100SR является поддержка двух последовательных портов, а не одного. Модуль построен на базе микросхемы W5100 со встроенным блоком физического уровня PHY и на базе ARM микроконтроллера STM32F103C8T6 на основе ядра Cortex-M3. Последнее обстоятельство открывает широкий простор для творчества ;-) Подробно о модуле Распиновка модуля MCU Func Name JP1 Pin Name JP2 MCU Func +3.

nRF24L01 Радиомодули

nRF24L01 - однокристальный трансивер компании Nordic Semiconductor для диапазона частот 2.4 ГГц со встроенным протокольным процессором (Enhanced ShockBurst™). ИС разработана для сверхмаломощных приложений беспроводной связи. nRF24L01 рассчитан на работу в используемом по всему миру ISM диапазоне частот 2.400…2.4835 ГГц. Для получения завершенной РЧ системы передачи данных nRF24L01 необходимо дополнить микроконтроллером и несколькими внешними пассивными компонентами. nRF24L01 конфигурируется и управляется через последовательный интерфейс SPI. Данный интерфейс предоставляет доступ к внутренним конфигурационным регистрам в любом режиме работы микросхемы.

Модуль трансивера TR24A

Модули TR24A - ультра дешёвое решение((в районе 100 рублей)) для беспроводного обмена данными между малопотребляющими устройствами на расстояниях порядка 50-100м((Реально - меньше. Сейчас мне удалось получить неустойчивую связь на расстоянии 6м через бетонную стену. На форуме ixbt добились 20 метров по прямой. Модули построены на базе однокристального трансивера EM198810. диапазон частот: 2400MHz…2482MHz количество каналов: 81 каналов чувствительность: −85dBm…-80dBm IIP3: −14dBm…-11dBm максимальный входной уровень: +10dBm выходная мощность: +2dBm скорость данных: 1Mbps диапазон напряжения питания: 2.

Советы работы в Eagle CAD

Проектная библиотека Для создания библиотеки содержащей все используемые в проекте компоненты воспользуйтесь готовым скриптом идущим в поставке eagle: ulp/exp-project-lbr.ulp. Запустите его, ответьте на предложенные вопросы, радуйтесь жизни. P.S.: Удобно таскать компоненты из чужих проектов ;-) Board editor Слои tRestrict и bRestrict, запрещают трассировку в указаных регионах, а так же позволяют вырезать регионы из полигонов. Что бы перенести элемент на другую сторону платы, следует выбрать элемент для перемещения и нажать среднюю кнопку мыши.