Pull to refresh
  • by relevance
  • by date
  • by rating

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

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
Views344.2K
Comments 91

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

Programming microcontrollers
Sandbox

Введение


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

Задача


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

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

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

Programming microcontrollers

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

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

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

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

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

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

Information Security
Tutorial
Прикручиваем аппаратную консоль к Transcend WiFi SDHC


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

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

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

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

Configuring Linux*nix


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

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


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

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

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

Website developmentSystem ProgrammingUEFI
Tutorial

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

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

DIY


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

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

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

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



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

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

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

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

Network technologies
Sandbox
image

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

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

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

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

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

Programming microcontrollers
(цена за 10 шт магазина Чип и Дип на момент публикации)

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

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

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
Views24.5K
Comments 47

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

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

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

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
Views204.3K
Comments 12

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

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

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

Принципы


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

MIPSfpga: вне канона

FPGA

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

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

System Analysis and DesignAssemblerConcurrent computingFPGAProgramming 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
Views23.1K
Comments 11

Реализация стабильного UART, со скоростью 921600 baud и более, на языке Verilog под ПЛИС

FPGAProgramming microcontrollers
Sandbox


Всем привет. Пару недель назад я начал потихоньку изучать программирование под ПЛИС. Для этих целей мною была заказана у китайцев самая дешевая плата на основе Altera Max II EPM240T100C5N чипа. Установив Quartus v15, стал изучать Verilog стандарта 2001 года. Наморгавшись светодиодами решил попробовать реализовать какой-нибудь протокол передачи данных. Естественно им стал UART :) Посмотрев на чужие примеры в сети, мне не очень понравилось излишнее нагромождение логики, множество дополнительных счетчиков, а главное, проблемы с синхронизацией в приемнике и, как следствие, не стабильность работы на высоких скоростях. Конечно можно найти и качественные реализации, полностью конфигурируемые, да и вообще, с «идеальным кодом», но так не будет ни какого спортивного интереса.
Читать дальше →
Total votes 22: ↑22 and ↓0 +22
Views42.2K
Comments 30

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

Open sourceProgrammingCDevelopment for LinuxProgramming microcontrollers
Tutorial

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


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


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


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

WRN устройство

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