C утилитой для ПК и платой — программатором,
с использованием SPL,
с полноценной системой команд и проверкой CRC32,
с гарантией доставки и переотправки сбойной или потерянной команды,
с проверками ошибок, отладочными сообщениями и урезанным printf'ом.
Оптимизирован под современные USB-UART преобразователи и потоковую передачу.
Рубрика «uart» - 4
STM32F405: прошить 400кб за 10 секунд или быстрый UART-загрузчик заточенный под USB-UART, размером менее 4 килобайт
2016-07-28 в 12:43, admin, рубрики: bootloader, stm32, STM32F4, uart, обновление прошивки, программирование микроконтроллеров, Разработка систем связи, системное программированиеАдаптеры сопряжения RS-422 с поддержкой скоростей до 1Мбод для системной шины PCI
2016-07-21 в 9:04, admin, рубрики: PCI serail port, RS-422, uart, Разработка систем передачи данных, Разработка систем связи, метки: RS-422Аннотация
В статье рассмотрен вариант модификации серийно выпускаемых многопортовых адаптеров расширения ввода-вывода, построенных на микросхемах NetMOS / MosChip MSC98XX-CV и SystemBase SB16C1052PCI, для реализации последовательного физического интерфейса RS-422 со скоростями обмена данными до 1 Мбод.
Текст
Со времен компьютеров IBM PC последовательные порты персональных ЭВМ, рабочих станций и серверов, функционирующие по протоколу UART, в большинстве случаев используют физический сигнальный интерфейс RS-232. Раньше последовательные порты, или COM-порты в терминологии системного программного обеспечения, применялись главным образом для подключения манипуляторов типа мышь и модемов для коммутируемых телефонных линий и прочих низкоскоростных каналов связи. В современной вычислительной технике эти периферийные устройства подключаются по шине USB. Тем не менее, последовательные порты RS-232 продолжают использоваться для сопряжения с различным технологическим оборудованием, например, со сканером штрих-кода, а также для различных отладочных и диагностических нужд для работы в режиме терминала со встроенным программным обеспечением таких устройств, как сетевые коммутаторы третьего уровня, контроллеры, источники бесперебойного питания и т.п.
Последовательный сигнальный интерфейс RS-232 использует двухполярные сигналы с амплитудой от 5 до 15 вольт, при этом отрицательное напряжение соответствует логической единице, а положительное напряжение – логическому нулю. Сигналами с такой амплитудой невозможно передавать данные на высоких скоростях, в силу чего максимальная скорость для стандартного последовательного порта ограничена 115,2 кбод. При синхронизации UART класса 16С550 от сигнала с частотой 1,8432МГц скорости 115,2 кбод соответствует установка регистра DLL в ноль, а регистра DLM в 00000001.
Читать полностью »
Как «чайник» делал UART <-> RS232 конвертер для Orange Pi
2016-07-10 в 21:07, admin, рубрики: Altium Designer, diy или сделай сам, FeCl3, MAX232, Proteus, RS232, uart, печатная платаВведение
Началось всё с того, что я купил себе Orange Pi, поддавшись рекламному слогану «аналог Rasberi Pi всего за 15$». Девайс был заказан на алиэкспрессе и прибыл через пятнадцать дней ещё в феврале. Тогда же были куплены все необходимые дополнительные компоненты: радиатор на процессор, 15 ваттный блок питания, карточка micro SD объемом 32 Гб, HDMI-кабель для подключения монитора. За неимением времени он пылился в ящике стола аж до июня. И вот наконец дошли руки проверить его работоспособность.
На стандартных прошивках, предлагаемых на официальном сайте работоспособность не вызвала нареканий. Но стандартные прошивки меня не устраивают по той причине, что уж так я устроен — любой попавший мне в руки девайс должен быть кастомизирован по полной программе. Поэтому в руки был взят U-boot, исходники которого скачаны с официального FTP, а так же сборка Arch Linux для ARM. В качестве опорного мануала и отправной точки для копания был взят вот этот мануал для Banana Pi.
Путем некоторых нехитрых манипуляций (описание которых более подходит для хабра) и загрузчик и арч были водружены на карту памяти и устройство было включено. Однако, после загрузки меня ждал черный экран и горящий зеленый светодиод на «апельсине».
Ну не беда, подумал я. На «апельсине» распаян UART, подключусь как я к нему терминалом да посмотрю что происходит. Были куплены необходимые детали и провод и спаян вот такой кабель (картинка под спойлером)

Тот кто в теме, сразу поймет в чем я был не прав, сделав такой кабель, и таких среди читающих больше половины. Я же заподозрил неладное после того как увидел кракозябры, которые плевал в терминал мой «апельсин». Именно понимание причины моей глупейшей ошибки и побудило меня к действиям, описанным ниже.
RS232 устройство 3-в-1 для домашнего Linux сервера: Часть 2 (Серверная)
2016-05-19 в 12:53, admin, рубрики: C, daemon, driver, linux, open source, true rng, uart, watchdog, демон, Драйвер, Программирование, программирование микроконтроллеров, Разработка под Linux, случайные числа, сторожевой таймерRS232 устройство 3-в-1 для домашнего Linux сервера: Часть 2 (Серверная)
- Часть 1 (Аппаратная)
- Часть 2 (Серверная)
Для устранения некоторых недостатков сервера, собранного из бытовых комплектующих, разработал недавно устройство, которым хочу поделиться. Его подробное описание, со схемой и исходными кодами, доступно на Geektimes в первой части.
Устройство получило наименование WRN от составляющих его подсистем:
- Аппаратный сторожевой таймер, работающий с watchdog демоном;
- Генератор истинно случайных чисел;
- Радиомодуль nRF24L01+ для сбора данных с автономных датчиков.
В этой части статьи будет рассмотрено как взаимодействовать с последовательным портом из пространства ядра (kernel space) и как организовать работу с несколькими подсистемами устройства через RS232 в Linux.
RS232 устройство 3-в-1 для домашнего Linux сервера: Часть 1 (Аппаратная)
2016-05-19 в 12:53, admin, рубрики: atmelstudio, avrdude, diy или сделай сам, kicad, open source, true rng, uart, watchdog, ЛУТ, микроконтроллер, случайные числа, сторожевой таймер, схемотехника, Электроника для начинающих- Часть 1 (Аппаратная)
- Часть 2 (Серверная)
Серверы, собранные из специально не предназначенных для этого комплектующих, обычно имеют два недостатка. У них отсутствует аппаратный сторожевой таймер и часто не хватает энтропии для ряда сервисов. Нехватка энтропии особенно актуальна для не сильно нагруженных серверов. Это связанно с тем, что ядро Linux в качестве источника энтропии использует активность системы, а именно: сетевого оборудования, дисковой подсистемы и аппаратных прерываний.
Также в домашнем сервере часто возникает необходимость иметь более экономный, по сравнению с Wi-Fi, радиомодуль для коммуникации с автономными датчиками.
Существует большой выбор устройств, с помощью которых можно решить любую из этих проблем, но подключение каждого из них требует отдельный порт. Оценив ситуацию, в итоге решил разработать устройство 3-в-1 подключаемое в RS232 (COM) порт. Остальные требования получились следующими:
- Аппаратный сторожевой таймер, пригодный для работы со стандартным демоном
watchdog
; - Генератор истинных случайных чисел на базе эффекта обратного лавинного пробоя p-n перехода;
- Радиомодуль nRF24L01+ для сбора данных с автономных датчиков.
Таким образом устройство получило наименование WRN от названий составляющих его подсистем: WDT (WatchDog Timer), RNG (Random Number Generator), nRF24L01+.
Аудио плеер на AVR
2016-04-06 в 6:34, admin, рубрики: avr, uart, Железо, звук, микроконтроллер, цап, Электроника для начинающих
Во время очередной ревизии радиоэлектронного барахла и распихивания по коробочкам мне попался контроллер AVR atxmega256a3u. Дабы развеять скуку было решено сделать некое подобие звуковой карты, а точнее ЦАП, подключаемый к компьютеру. Что из этого получилось смотрите под катом.
Читать полностью »
Реализация стабильного UART, со скоростью 921600 baud и более, на языке Verilog под ПЛИС
2016-02-26 в 7:39, admin, рубрики: Altera, cpld, fpga, uart, Verilog, программирование микроконтроллеров
Пару недель назад я начал потихоньку изучать программирование под ПЛИС. Для этих целей мною была заказана у китайцев самая дешевая плата на основе Altera Max II EPM240T100C5N чипа. Установив Quartus v15, стал изучать Verilog стандарта 2001 года. Наморгавшись светодиодами решил попробовать реализовать какой-нибудь протокол передачи данных. Естественно им стал UART. Посмотрев на чужие примеры в сети, понял, что мне не очень нравится излишнее нагромождение логики, множество дополнительных счетчиков, а главное — проблемы с синхронизацией в приемнике и, как следствие, нестабильность работы на высоких скоростях. Конечно, можно найти и качественные реализации, полностью конфигурируемые, да и вообще с «идеальным кодом», но так не будет никакого спортивного интереса.
Читать полностью »
Как начать работать с MIPSfpga
2016-01-16 в 5:59, admin, рубрики: Altera, fpga, imagination technologies, mips, MIPS microAptiv UP, MIPSfpga, SPI, uart, Verilog, vhdl, xilinx, Анализ и проектирование систем, параллельное программирование, ПЛИС, программирование микроконтроллеров, метки: плисMIPSfpga — это пакет, который содержит процессорное ядро в исходниках на Verilog, которое можно менять, добавлять новые инструкции, строить многопроцессорные системы, менять одновременно софтвер и хардвер, симулировать на симуляторе верилога, синтезировать для ПЛИС/FPGA и т.д. Его можно в целях эксперимента например запускать с частотой 1 такт в секунду и выводить наружу информацию о состоянии кэша, конвейера, и любых структур внутри процессора. При этом ядро MIPS microAptiv UP внутри MIPSfpga — это то же ядро которое например используется в платформе IoT Samsung Artik 1 и Microchip PIC32MZ, т.е. студенты получают возможность работать с тем же кодом, с которым работают инженеры в Samsung и Microchip.
MIPSfpga не предназначен для введения в предмет с абсолютного нуля. Для его плодотворного использования нужно чтобы студент или исследователь уже знал основы цифровой схемотехники, умел бы программировать на Си и на ассемблере, а также представлял бы концепции микроархитектуры — конвейера, конфликтов конвейера и т.д. Желательно, чтобы до работы с MIPSfpga студент уже бы построил собственный простой процессор с нуля и мог бы сравнивать свой простой процессор с процессором, используемым в промышленности и совместимым с развитой экосистемой разработки.
Фотографии, материалы и перипетии семинара MIPSfpga в МИФИ
2015-11-25 в 8:23, admin, рубрики: Altera, BusBlaster, fpga, imagination technologies, mips, MIPS microAptiv UP, MIPSfpga, openocd, Semiconductor IP, Terasic, uart, xilinx, МИФИ, НИИСИ, ПЛИС, программирование микроконтроллеров, Производство и разработка электроники, Процессоры, Электроника для начинающихВ конце октября в МИФИ состоялся семинар по MIPSfpga — один из серии семинаров, организованных российскими вузами совместно с Imagination Technologies, Microchip Technology в партнерстве с Гамма Санкт-Петербург, представителями Xilinx в России компанией Макро Групп, с участием докладчиков из MathWorks и НИИСИ. Ниже — смесь из фотографий, ссылок на материалы, заметок о подготовке семинара и о мифишной культуре.
Ниже фотография МИФИ снаружи. Слово «ядерный» напоминает, что в МИФИ стоит ядерный реактор, поэтому туда трудно попасть, особенно с американским паспортом — пропуск мне готовили недели две, а приказ о семинаре подписывал ректор. На входе стоит автоматчик с Калашниковым (!)
Читать полностью »
MIPSfpga: вне канона
2015-11-12 в 13:26, admin, рубрики: AHB-Lite, Altera, Cyclone, fpga, MAX10, mips, MIPSfpga, nmon, opencores, openocd, Quartus, Terasic, uart, Wishbone, Железо, платы Марсоход, Производство и разработка электроники, Процессоры, Электроника для начинающих
В течении последних трёх недель в МИЭТ, МГУ, МИФИ, МФТИ и других российских ВУЗах прошли семинары по процессору на ПЛИС MIPSfpga. В рамках семинаров прошли лабораторные работы на которых демонстрировалось как применять MIPSfpga на практике.
В публикации я расскажу о своих экспериментах с MIPSfpga, которые выходят за рамки лабораторных работ, рассмотрю возможности интеграции процессорного ядра MIPSfpga с IP-блоками opencores.org. Также поведаю о портировании MIPSfpga на некоторые платы на базе ПЛИС Altera (приведены значения Fmax и показатели использования ресурсов ПЛИС).
Читать полностью »