HX711
HX711 это высокоторчный 24-битный аналого-цифровой преобразователь разработанный специально для прменения в весах и промышленном управлении. АЦП рассчитан на подключение мостового резистивного датчика.
HX711 это высокоторчный 24-битный аналого-цифровой преобразователь разработанный специально для прменения в весах и промышленном управлении. АЦП рассчитан на подключение мостового резистивного датчика.
Решил заняться чем-то новым, точнее хорошо забытым старым, и освоить форт на микроконтроллерах.
Перед компилируемыми ЯП форт имеет преимущество за счёт своей интерактивности - писать и отлаживать код можно непосредственно на целевом устройстве не занимаясь каждый раз сборкой и прошивкой.
С другой стороны, микроконтроллеры уже достаточно мощные, что бы запускать интерпретируемые языки, такие как Lua или JavaScript, но они отбирают для своей работы ценные ресурсы МК, да и работают сравнительно медленно.
Ядро же форт-машин компактно, и сам язык позволяет генерировать эффективный код, что позволяет на минимальном железе писать программы сопоставимые по скорости с ассемблерными, при этом обладающие хорошей переносимостью между различными архитектурами (в рамках одной реализации).
В предыдущих частях удалось запустить систему на планшете и настроить тачскрин.
Но как всегда хочется большего - например установить X-server, что бы получить все преимущества графического интерфейса.
Поскольку предыдущая статья получилась очень уж объёмной, я решил разбить её на две части.
В этой части я рассмотрю некоторые аспекты настройки системы и устройств ввода, таких как кнопки планшета, тачскрин и G-сенсор.
Наверное одно из самых недолговечных домашних электронных устройств - это планшет. Недлоговечное не в плане быстрой поломки (хотя и такое за ними водится), а в плане быстрого устаревания.
ПО ориентируется на флагманы, а устройство из среднего или низшего ценового диапазона ещё год назад вполне сносно работавшее вызывает только желание приложить его об стену.
Возможен и вариант частично работающего устройства: например разбит тачскрин, окончательно и бесповоротно сдох аккумулятор, может даже и сам экран разбит.
В любом случае, пока живы “мозги” планшета, можно постараться извлечь из планшета пользу установив на него ОС с ядром Linux.
Мы уже рассмотрели простейшее приложение для IoT SoC модулей на базе ESP8266. Сегодня я получил модули DoIt ESP32 DEVKIT V1 модули, на базе нового кристалла ESP32, так что будем пробовать его.
Попробуем написать простейшее приложение для SoC ESP8266 с помощью экосистемы PlatformIO.
В качестве «железной» части удобно взять NodeMCU любой версии или любую другую плату основанную на модуле ESP12E.
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.
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
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
Долгие поиски адекватного инструмента для обжимания dupont-коннекторов (он же crimping tool) наконец привели к желаемому результату.
Обычные обжимки имеют одноуровневые губки, так что при попытке обжать коннектор, мы получали плохое соединение металла коннектора с зачищенным концом провода (или вообще не получали никакого соединения). Приходилось извращаться либо с пайкой, либо подгибая зачищенный конец провода на изоляцию.
Данный дисплей устанавливается в ряд бюджетных моделей телефонов Nokia 1202/1203/1280. Доступность, простой последовательный интерфейс и относительная лёгкость подключения позволяет использовать данный дисплей как в радиолюбительских конструкциях, так и в более серьёзных проектах. Если же Вам необходим цветной дисплей более высокого разрешения, то можно воспользоваться бюджетным LCD от Nokia 1661/5030/ 1616/1800/1662. LCD pinout Pin Name Description 0 not used 1 !RESET Сброс контроллера дисплея 2 !
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
Микроконтроллеры обычно работают напрямую с физическим миром, а не только с астрактным миром цифр. А реальность не терпит поспешностей. Иногда нужно немного подождать. Казалось бы, чего уж проще - написать процедуру задержки. А ведь нет! Написать то легко, а вот каков результат будет в машинных кодах? Три команды или тридцать три?
Вот и мне потребовалось реализовать задержку в сишной программе для ATtiny2313. Микроконтроллер ресурсами не блещет, а потому каждая команда на счету.
Характеристики: 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.2 V LCD driving voltage V0-VSS 8.
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 Предельные напряжения
Системы реального времени для встраиваемых устройств
Контроллер ST7637 STN LCD дисплея позволяет управлять цветным RGB дисплеем размером 132x132 пикселя. Пример работы с контроллером по параллельному интерфейсу через MCU LPC2103 можно получить из репозитория по ссылке: http://bitbucket.org/plumbum/grlib-st7637/ . Сейчас я переписываю библиотеку для разных дисплеев http://bitbucket.org/plumbum/liblcdgr/ Дисплей был извлечён из десятибаксовой фоторамки.
Микроконтроллеры NXP LPC2xxx имеют встроенный загрузчик, позволяющий прошивать память программ (flash) через последовательный порт (UART). Для входа в режим загрузчика во время аппаратного(?) сброса на определённых ногах микроконтроллера должны присутствовать логические уровни: Ноль на P0.14 для LPC210x Ноль на P2.10 для LPC2368, LPC2478 … LPC21ISP Наиболее оптимальный вариант для прошивки микроконтроллераконтроллера через последовательный порт - воспользоваться консольной программой lpc21isp. Сборка приложения проста и осуществляется одной командой make. Использование программы так же не должно вызвать проблемм:
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
Варианты распиновки RS-485 http://www.lammertbies.nl/comm/cable/unitronics-rj11.html CU4 ADP485
Схема подключения и протокол обмена джойстиков игровой приставки Sony Playstation
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
Протокол LinkBell
предназначен для организации передачи небольших объёмов информации в сетях устройств, содержащих в своём составе микроконтроллеры и компьютеры.
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.
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 — коммуникационный протокол, основанный на master-slave архитектуре. Разработан фирмой Modicon для использования в контроллерах с программируемой логикой (PLC). Стал стандартом де-факто в промышленности и широко применяется для организации связи промышленного электронного оборудования. Использует для передачи данных последовательные линии связи RS-485, RS-422, RS-232, а также сети TCP/IP. В настоящее время поддерживается некоммерческой организацией Modbus-IDA. (Материал из Википедии)
Запись в 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:
Инициализирует встроенные часы реального времени (RTC) на работу с внешним кварцевым резонатором 32768 кГц и с секундными прерываниями.
Процедура инициализации и обработки прерывания по переполнению от таймера.
Статьи: http://www.boehmel.de/lanc.htm (Копия) http://www3.nb.sympatico.ca/dmeed/sony_lan.html (Копия) 2.5mm stereo jack pinout
Wiegand интерфейс был разработан для связи считывателей бесконтактных RFID карт.
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.
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.
Интерфейс “ПК” DB9 female pin Name Dir Description 1 +5V out 2 TXD out RS232 3 RXD in RS232 4 nc 5 GND 6 nc 7 A+ i/o ? RS485 8 B- i/o ? RS485 9 nc
Кристаллы поставляются прошитыми загрузчиком, который позволяет программировать контроллер через интерфейс USB. FLIP tool (TODO нужна актуальная ссылка). http://dfu-programmer.sourceforge.net/ (TODO проверить). При использовании FLIP под линукс возможно понадобится дополнительно указать где расположены устройства USB: export USB_DEVFS_PATH=/dev/bus/usb
Информация представленная на этой странице по большей части устарела.
Микропотребляющая линейка контроллеров с ядром 8051 и напряжением питания от 0.9В от Silicon labs.
:!: Приведённая информация составлена из разрозненных данных и может быть неверна. Подсветка: Вывод Цвет Название Описание 1 черн. GND 2 крас. +Vcc 3 син. CTRL# Backlight on GND 4 сер. GND Bright :?: 5 сер. ? Bright :?: Дисплей: Вывод Цвет Название Описание 1 зел.
STE2007 контроллер применяемый в монохромных дисплеях устанавливаемых в бюджетные телефоны Nokia. H018IN01 цветной дисплей с поддержкой SPI. LM-CC53-22NTS цветная TFT панель. Сборная информация. LM211 монохромная бесконтроллерная LCD панель. OLED 96x64 цветной OLED дисплей. ST7565 ST7637 дисплей и фоторамки-брелка.
nRF24L01 - однокристальный трансивер компании Nordic Semiconductor для диапазона частот 2.4 ГГц со встроенным протокольным процессором (Enhanced ShockBurst™). ИС разработана для сверхмаломощных приложений беспроводной связи. nRF24L01 рассчитан на работу в используемом по всему миру ISM диапазоне частот 2.400…2.4835 ГГц. Для получения завершенной РЧ системы передачи данных nRF24L01 необходимо дополнить микроконтроллером и несколькими внешними пассивными компонентами. nRF24L01 конфигурируется и управляется через последовательный интерфейс SPI. Данный интерфейс предоставляет доступ к внутренним конфигурационным регистрам в любом режиме работы микросхемы.
Модуль GSM модем/телефон для встраивания в устройства. Datasheet Кратко о командах ATZ - сброс модема AT+CREG? - возвращает состояние регистрации в сети AT+CSQ - мощность/качество сигнала AT+CMGF=1 - включить текстовый режим передачи SMS AT+CMGS="+7911xxxxxxx",145 - отправка сообщения (завершается Ctrl-Z (0x1A))
Шаблоны для сборки под 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 После этого, можно байты отредактировать и записать обратно. Для записи тоже нужна своя магия.
Шлюзовой модуль нового поколения, осуществляющий преобразование протоколов RS-232 <-> TCP/IP. Отличительной особенностью WIZ120SR от популярного моста WIZ100SR является поддержка двух последовательных портов, а не одного. Модуль построен на базе микросхемы W5100 со встроенным блоком физического уровня PHY и на базе ARM микроконтроллера STM32F103C8T6 на основе ядра Cortex-M3. Последнее обстоятельство открывает широкий простор для творчества ;-) Подробно о модуле Распиновка модуля MCU Func Name JP1 Pin Name JP2 MCU Func +3.
Здесь представлены аппаратные и программно-аппаратные средства разработки электроники. Смотрите так же раздел программных средств. avrdragon ch341a flashrom inex-px-200 j-link lpc-link silabs-c8051-sdcc silabs-ec2-driver-linux versaloon
Модули TR24A - ультра дешёвое решение((в районе 100 рублей)) для беспроводного обмена данными между малопотребляющими устройствами на расстояниях порядка 50-100м((Реально - меньше. Сейчас мне удалось получить неустойчивую связь на расстоянии 6м через бетонную стену. На форуме ixbt добились 20 метров по прямой. Модули построены на базе однокристального трансивера EM198810. диапазон частот: 2400MHz…2482MHz количество каналов: 81 каналов чувствительность: −85dBm…-80dBm IIP3: −14dBm…-11dBm максимальный входной уровень: +10dBm выходная мощность: +2dBm скорость данных: 1Mbps диапазон напряжения питания: 2.
Eagle CAD Tips Libraries KiCad arm-toolchain gdb OpenOCD LPC Flash urjtag FTDI eeprom CP2103 GPIO tool DjLCDSIM Dincer’s JavaScript LCD Simulator
При разработке цифровых устройств разработчик может столкнутся с проблемой связи двух и более устройств по беспроводному каналу. Это может быть инфракрасная (ИК) линия связи или радиоканал.