Pull to refresh

UART и с чем его едят

Reading time 10 min
Views 789K
Circuit design *
После Vogue истерии появилось множество вопросов, как подключить плату к компьютеру. И многие люди даже не понимают, что же такое UART. И я решил рассказать здесь какой это мощный инструмент.

image
Роутер превращается в компьютер, если к нему по UART подключить клавиатуру и дисплей

От телеграфа к COM-порту


Протокол UART (Universal asynchronous receiver/transmitter) или, по-русски, УАПП (универсальный асинхронный приемопередатчик) — старейший и самый распространенный на сегодняшний день физический протокол передачи данных. Наиболее известен из семейства UART протокол RS-232 (в народе – COM-порт, тот самый который стоит у тебя в компе). Это, наверное, самый древний компьютерный интерфейс. Он дожил до наших дней и не потерял своей актуальности.

Надо сказать, что изначально интерфейс УАПП появился в США как средство для передачи телеграфных сообщений, и рабочих бит там было пять (как в азбуке Морзе). Для передачи использовались механические устройства. Потом появились компьютеры, и коды ASCII, которые потребовали семь бит. В начале 60-х на смену пришла всем известная 8-битная таблица ASCII, и тогда формат передачи стал занимать полноценный байт, плюс управляющие три бита.
Читать дальше →
Total votes 198: ↑192 and ↓6 +186
Comments 96

Взаимодействие схемы в Proteus'е с внешним миром

Reading time 3 min
Views 21K
Programming microcontrollers *
Sandbox

Введение


Думаю многие из тех, кто как-то связан с разработкой электронных устройств, хотя бы раз слышали о программном комплексе Proteus от Labcenter Electronics. Какая бы не была обширная библиотека компонентов, доступных для моделирования, «жизнь» схемы ограничена пределами окна эмулятора, за редким исключением. Уже существует несколько моделей, которые могу, например, записывать какие-то данные в файл или даже представляться системе как USB устройства, но пока они могут решить небольшой класс задач.

Задача


При работе над курсовым проектом, в рамках которого необходимо разработать систему радиоуправления самолётом, возникла необходимость связи модели с ПК. Так как одним из самых простых интерфейсов для связи с ПК является RS-232, он и был выбран(использовался переходник usb-uart).

Так как же отлаживать эту систему на самом начальном этапе, когда ещё не найдены довольно грубые ошибки, которые могут привести к выходу из строя электронных компонентов, и не возиться с частой прошивкой микроконтроллер(ов)?
Читать дальше →
Rating 0
Comments 0

MSP430, учимся программировать и отлаживать железо (часть 3)

Reading time 6 min
Views 55K
Programming microcontrollers *

Возможно Вы уже не первый раз садитесь за программирование Вашего MSP430. Если это не так, то рекомендую ознакомиться с предыдущими статьями по данной тематике: часть 1, часть 2.
В этой статье мы рассмотрим инструмент для графической настройки периферии нашего микроконтроллера — Grace, познакомимся с принципом работы watchdog и поработаем с виртуальным COM-портом (через программатор). Уже традиционно будет рассмотрен небольшой пример кода, и предоставлены все необходимые для понимания ссылки.

Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 0

Бюджетный Serial to Ethernet адаптер за один вечер

Reading time 2 min
Views 77K
Developing for Arduino *
Иногда возникает необходимость мониторить устройства по последовательному порту, причем расположить рядом с устройством комп не всегда удобно, а иногда просто не возможно. И тут на выручку приходят различные Serial to Ethernet адаптеры, которые хороши всем, кроме цены. Давайте посмотрим, что можно сделать подешевле и попроще.

Читать дальше →
Total votes 42: ↑40 and ↓2 +38
Comments 14

Новый Vogue. Теперь банановый

Reading time 3 min
Views 97K
Information Security *
Tutorial
Прикручиваем аппаратную консоль к Transcend WiFi SDHC


Прокачаная карточка

В очередной раз производители железок радуют нас хакабельными железками. При чём, если раньше Americhip порадовали только жителей Москвы, и мы своими силами доставляли это в регионы, то сегодня Transcend порадовал весь мир мегахакабельным устройством.
Продолжим славную традицию и расскажем как же прикрутить аппаратную консоль к данной карточке

Читать дальше →
Total votes 179: ↑173 and ↓6 +167
Comments 120

Поздравление по гиковски, без написания дров

Reading time 6 min
Views 18K
Configuring Linux **nix *


Прочитал статью «Создание собственных драйверов под Linux» от камрада dlinyj и загорелся идеей озвученной в конце статьи. А именно

Сейчас ничего не мешает заплатить на месяц 500 рублей (а если скинемся, сумма будет совсем мелкой), и арендовать сервак на виртуалке. Туда поставить программулину, которая будет рассылать сообщения. Либо jabber либо какие-то другие способы (да хоть nc и telnet всё сделать). А на компе поставить приёмник этих сообщений. И на Новый Год все мы будем иметь поздравления.


И принял решение таки влиться в общую тусовку, получить и отправить своё гиковское поздравление. Искать LPT-порт на своем ноутбуке я не стал, знаю, что его нет. Зато вспомнил, что несколько лет назад делал дисплей подключаемый к COM-порту. Точнее не совсем к СОМ-порту, это переходник USB-to-UART, о котором dlinyj говорил в этом посте «UART и с чем его едят». В результате было принято решение сделать на нём.

Интересно? Читаем дальше
Total votes 50: ↑44 and ↓6 +38
Comments 40

Организация TCP/IP стека для МК на основе embedded module Tibbo

Reading time 6 min
Views 18K
СканКод corporate blog
В данной обзорной статье речь пойдет об организации TCP/IP стека в вашем проекте на основе встраиваемых модулей от Tibbo Technology.

TCP стек от Tibbo

Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Comments 3

Разработка и отладка UEFI-драйверов на Intel Galileo, часть 2: готовим плацдарм

Reading time 9 min
Views 12K
Website development *System Programming *UEFI *
Tutorial

Здравствуйте, уважаемые хабровчане.
Опрос в первой части показал, что тема разработки UEFI-драйверов достаточно интересна сообществу, поэтому я приступаю к написанию дальнейших частей этого цикла. В этой речь пойдет о подготовке платы Intel Galileo к работе, необходимом и желательном железе и ПО, сборке и установке BSP. В результате получится недорогая аппаратная платформа, пригодная для аппаратной отладки UEFI-драйверов и доступная любому энтузиасту.
Поехали!
Total votes 30: ↑29 and ↓1 +28
Comments 22

Трёхканальный UART АЦП на ATtiny13

Reading time 4 min
Views 52K
DIY


Привет хабр. Я уже давно вынашивал сделать UART Аналогового-Цифрового Преобразователя на ATtiny13, зачем делать именно на ATtiny13 ведь есть, к примеру, ATmega8 имеет аж 6 (для DIP корпуса) портов на которых, при помощи мультиплексора, можно проводить измерение АЦП?
Причин несколько:

— ATtiny13 стоит дешевле;
— В ATtiny13 более оптимально используются ресурсы микроконтроллера;
— Размеры;
— Энергопотребление;
— Просто мне так захотелось.

Конечно на мои аргументы можно найти множество контраргументов, например ATmega8 при использовании V-USB может превратится в плату ввода/вывода которой не нужен переходник с UART на USB, правда кроме последнего, и с этим пожалуй не поспоришь.

Поставил себе за цель получить опыт работы с программный UART'ом именно на ATtiny13, а опыт как говорится, бесценный. По-любому пригодится для будущих проектов.
Ну ладно, не буду тянуть и покажу, как работает в железе:



Пару слов по схеме, кстати, вот она:
Хотя бы схему посмотрю
Total votes 28: ↑22 and ↓6 +16
Comments 14

Command line interpreter на микроконтроллере своими руками

Reading time 4 min
Views 28K
Programming microcontrollers *
В каждом разрабатываемом устройстве у меня присутствовал отладочный вывод в UART, как в самый распространённый и простой интерфейс.
И каждый раз, рано или поздно, мне хотелось помимо пассивного вывода сделать ввод команд через тот же UART. Обычно это происходило когда мне хотелось для отладки выводить какой-нибудь очень большой объём информации по запросу (например состояние NANDFLASH, при разработке собственной файловой системы). А иногда хотелось программно управлять ножками GPIO, чтобы отрепетировать работу с какой-нибудь переферией на плате.
Так или иначе мне был необходим CLI, который позволяет обрабатывать разные команды. Если кто-то натыкался на уже готовый инструмент для этих целей — буду благодарен за ссылку в комментариях. А пока я написал собствыенный.
Читать дальше →
Total votes 19: ↑13 and ↓6 +7
Comments 38

Восстановление D-link DVG-N5204SP через UART

Reading time 4 min
Views 24K
Network technologies *
Sandbox
image

Тема прошивок роутеров через UART интерфейс сильно изъезжена, изжевана, но я не смог найти информации именно по своему роутеру, поэтому думаю, что данная тема будет полезна, тем более, что на форумах есть несколько вопросов по этому поводу, так и оставшиеся без ответа.

Попал мне в руки сабжевый роутер, попал на халяву, так как «что-то не работало».

Принеся домой, обнаружил, что роутер наотрез отказывается поднимать LAN порты, при том, что остальными индикаторами при загрузке он подмаргивает, и WAN порт поднимает. Сброс кнопкой Reset не помог, хотя лампочки вели себя так же, как при ресете.

Ну что-ж, халява есть халява, и уж очень хотелось использовать этот роутер для выхода в интернет через 3G\4G операторские флэшки в загородном доме. Да ещё и с возможностью поднятия на нём SIP Мегафона ради интереса.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 10

UART в ATtiny13 или Как вывести данные из МК за 52р

Reading time 3 min
Views 74K
Programming microcontrollers *
(цена за 10 шт магазина Чип и Дип на момент публикации)

Я никогда не мог удержаться от покупки разных электронных штук, и однажды у меня стало на 10 очень мелких МК больше. Я люблю ATtiny13 — дешево и сердито. Когда я их покупал, я твердо помнил, что у них «Даже АЦП есть, не то что таймер!» и сильно радовался их малой цене.
Однако, когда я столкнул ATtiny13 с реальной задачей, оказалось что одной очень важной штуки в нем нету, а именно, интерфейсов для передачи данных (разумеется, не считая GPIO). Ну а если GPIO есть, то написать все что угодно можно! Подумал я и пошел гуглить… И красивого готового решения под avr-gcc не нагуглил… О создании (надеюсь) такого решения, данная статья — добро пожаловать под кат.
Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Comments 78

Ещё один программный UART на ATtiny13

Reading time 3 min
Views 48K
Developing for Arduino *


Привет всем хаброюзерам. Совсем недавно, товарищ Himura опубликовал свою статью UART в ATtiny13 или Как вывести данные из МК за 52р, и тут я вспомнил, что имею кроме предыдущих наработок по этой теме, а именно Трёхканальный UART АЦП на ATtiny13, есть ещё кое-что, часть которой я вырезал из довольно таки любопытного проекта Happy Christmas and Happy New Year wishes from Attiny13, там есть и программный UART, как чтение так и отправка, и ещё кое что по SPI, вообщем рекомендую заглянуть всем кто заинтересовался, правда ресурс англоязычный.
Вот видео работы:


Заглянуть под капот
Total votes 19: ↑19 and ↓0 +19
Comments 47

Расчёт параметров предделителя для 8250-совместимых USART

Reading time 2 min
Views 5.7K
Programming microcontrollers *
Tutorial
Сегодняшним вечером я расскажу сказку о том, как можно эффективно вычислить параметры предделителя, который обычно используется для задания тактовой частоты USART портов, в частности 8250-совместимых, применяемых в Intel SoC.
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Comments 0

CH341A, USB-UART-конвертер и I2C/SPI-программатор за $5

Reading time 4 min
Views 239K
Programming *
Когда-то давным-давно я писал пару статей о широко известном в узких кругах чипе FTDI FT232H и различных его применениях. Всем хорош был FT232H для DIY, но и у него нашлось несколько недостатков — относительно неприятный для ручной пайки корпус LQFP48 (для истинных любителей хардкора есть еще вариант в QFN48, паяй — не хочу, DIHALT не даст соврать), цена за оригинальный чип от 250 рублей, вероятность проблем с драйверами на поддельных чипах и некоторая функциональная избыточность, к примеру, поддержка JTAG нужна далеко не всем.

Решение, как обычно, пришло из Поднебесной, в которой после нескольких лет тупого передирания творческой адаптации чужих чипов наконец выпустили свой собственный конвертер USB-TTL — WinChipHead CH341A в корпусе SOP-28 (не DIP, но тоже паяется без проблем).

Производство чипа было начато году приблизительно в 2006, но в поле моего зрения он попал только в 2014, когда I2C/SPI-программаторы на этом чипе наводнили европейский EBAY, причем продавцы предлагали цену от 3,5 евро вместе с доставкой, что при средней стоимости хорошего китайского программатора вроде MiniPro TL866A в 50 евро оказалось настолько заманчивым предложением, что устоять не получилось.

Если вам все еще интересно, что умеет этот китайский чип за 1$ и стоит ли платить больше, если не видно разницы — прошу под кат.
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Comments 12

Создаем хардварный логгер клавиатуры

Reading time 13 min
Views 49K
Programming microcontrollers *
У тебя наверняка не раз возникала ситуация, когда программные логгеры клавы не могли решить поставленных задач. Например, отловить пароль от биоса с помощью программного кейлоггера, загружаемого системой, невозможно. Лично я столкнулся с подобной проблемой, когда мне нужно было узнать админский пароль в локальной сети одной фирмы. Тогда я и подумал, что было бы очень круто сделать «железный» логгер, который бы подключался между клавиатурой и компьютером и ловил все нажатые клавиши, начиная с включения компьютера. В предлагаемой статье изложены принципы работы PS/2 интерфейса, и перехват данных, передаваемых по нему.

image
Парочка аппаратных логгеров клавиатуры

Принципы


Для того чтобы сконструировать подобное устройство, сначала нужно разобраться с тем, как же работает клавиатура. Есть два основных типа клавиатур: АТ (старый стандарт) и PS/2. Отличаются они только разъемами: АТ имеет DIN, а PS/2 — miniDIN. Первый — большой круглый разъемчик с пятью штырьками, второй — маленький, как у мышки, с шестью пинами. По протоколу обмена они полностью совместимы. Наверняка, ты видел переходники с широких старых разъемов на новые маленькие. Этот стандарт появился еще в 1984 году вместе с первым персональным компьютером IBM PC и используется по сей день, практически не претерпев никаких изменений.
Читать дальше →
Total votes 230: ↑212 and ↓18 +194
Comments 84

MIPSfpga: вне канона

Reading time 10 min
Views 15K
FPGA *

В течении последних трёх недель в МИЭТ, МГУ, МИФИ, МФТИ и других российских ВУЗах прошли семинары по процессору на ПЛИС MIPSfpga. В рамках семинаров прошли лабораторные работы на которых демонстрировалось как применять MIPSfpga на практике.
В публикации я расскажу о своих экспериментах с MIPSfpga, которые выходят за рамки лабораторных работ, рассмотрю возможности интеграции процессорного ядра MIPSfpga с IP-блоками opencores.org. Также поведаю о портировании MIPSfpga на некоторые платы на базе ПЛИС Altera (приведены значения Fmax и показатели использования ресурсов ПЛИС).
Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Comments 6

Как начать работать с MIPSfpga

Reading time 3 min
Views 25K
System Analysis and Design *Assembler *Concurrent computing *FPGA *Programming microcontrollers *
MIPSfpga — это пакет, который содержит процессорное ядро в исходниках на Verilog, которое можно менять, добавлять новые инструкции, строить многопроцессорные системы, менять одновременно софтвер и хардвер, симулировать на симуляторе верилога, синтезировать для ПЛИС/FPGA и т.д. Его можно в целях эксперимента например запускать с частотой 1 такт в секунду и выводить наружу информацию о состоянии кэша, конвейера, и любых структур внутри процессора. При этом ядро MIPS microAptiv UP внутри MIPSfpga — это то же ядро которое например используется в платформе IoT Samsung Artik 1 и Microchip PIC32MZ, т.е. студенты получают возможность работать с тем же кодом, с которым работают инженеры в Samsung и Microchip.

MIPSfpga не предназначен для введения в предмет с абсолютного нуля. Для его плодотворного использования нужно чтобы студент или исследователь уже знал основы цифровой схемотехники, умел бы программировать на Си и на ассемблере, а также представлял бы концепции микроархитектуры — конвейера, конфликтов конвейера и т.д. Желательно, чтобы до работы с MIPSfpga студент уже бы построил собственный простой процессор с нуля и мог бы сравнивать свой простой процессор с процессором, используемым в промышленности и совместимым с развитой экосистемой разработки.



Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Comments 11

RS232 устройство 3-в-1 для домашнего Linux сервера: Часть 2 (Серверная)

Reading time 11 min
Views 18K
Open source *Programming *C *Development for Linux *Programming microcontrollers *
Tutorial

Для устранения некоторых недостатков сервера, собранного из бытовых комплектующих, недавно разработал устройство, которым хочу поделиться. Его подробное описание, со схемой и исходными кодами, находится в первой части.


В этой части статьи будет рассмотрено как взаимодействовать с последовательным портом из пространства ядра (kernel space) и как организовать работу с несколькими подсистемами устройства через RS232 в Linux.


Устройство включает в себя следующие подсистемы:


  • Аппаратный сторожевой таймер, работающий с watchdog демоном;
  • Генератор истинно случайных чисел;
  • Радиомодуль nRF24L01+ для сбора данных с автономных датчиков.

WRN устройство

Читать дальше →
Total votes 18: ↑17 and ↓1 +16
Comments 6

STM32F405: прошить 400кб за 10 секунд или быстрый UART-загрузчик заточенный под USB-UART, размером менее 4 килобайт

Reading time 19 min
Views 30K
System Programming *Development of communication systems *Programming microcontrollers *

C утилитой для ПК и платой — программатором,
с использованием SPL,
с полноценной системой команд и проверкой CRC32,
с гарантией доставки и переотправки сбойной или потерянной команды,
с проверками ошибок, отладочными сообщениями и урезанным printf'ом.
Оптимизирован под современные USB-UART преобразователи и потоковую передачу.



Читать дальше →
Total votes 45: ↑45 and ↓0 +45
Comments 63