Изучение ассемблера на PIC32: COM, буферизованная запись

PIC
Учимся работать со структурами данных, вложенными функциями. Использование препроцессора языка C совместно с ассемблером. На этот раз микроконтроллер PIC будет выводить «Hello World» через COM порт.


Читать дальше

Изучение ассемблера на PIC32: последовательный порт (COM)

PIC
Передаем один байт с платы Chipkit Uno32 на компьютер через UART. Углубляемся в архитектуру процессоров MIPS32.


Читать дальше

UART (USART) на STM32L (STM32)

Введение
На момент написания данной статьи в сети существовало множество примеров по работе с UART’ом на микроконтроллерах серии STM32. В основном данные примеры сводятся к приему/передачи одного байта без использования прерываний. Основной акцент в статьях делается на инициализации портов ввода/вывода и UART’а, с небольшими примерами. В некоторых статьях описывается работа прерываний, но не создаются полноценные функции приема/передачи.

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



Читать дальше

UART + RS485 - Готовое решение на FT232RL

Тема конечно избитая, но вдруг кому понадобится.


Читать дальше

Необходим совет по работе с AVR и proteus

Есть следующая задача — нужен коммутатор UART (1 ком порт раскидать на 11 портов).
Использую Atmega16 + max232 (1 на входе и 6 на выходе).
Выбрал atmega16 потому, что необходимо 24 пина под I/O — 2 пина (RX TX ком порта) и 22 пина (11-RX и 11-TX ) для подключения периферии (сервера с консолью по ком порту).
Итак цель — получить возможность коммутировать один COM порт на 11 COM потребителей.
Первое что пришло в голову — просто соединить передающие пины с принимающими портами. По i2c приходит команда переключить порт
и вызывается макрос который в зависимости от состояния пина ставит требуемый порт. Библиотека для работы с i2c — сторонняя (Pascal Stang — Copyright (C) 2002-2003).


Читать дальше

DMX-512, STM32

Как-то понадобилось изучить протокол — DMX-512.
И научится правильно «принимать» посылки.
В интернете, о протоколе DMX — информации достаточно DMX
Простите за низкое качество фото.




Читать дальше

Преобразователь USB/UART, совмещенный с программатором для микроконтроллеров AVR (APU-2M)

AVR
Похожие устройтсва:

APU-2,
APU-2N (Narrow)
APU-2MM (Module Mini-USB)

Продолжаю цикл заметок «Проекты-малыши»

В данной заметке будет кратко рассмотрено устройство, позволяющее преобразовывать данные, поступающие по интерфейсу USB, в данные, съедобные для UART-модуля обычного микроконтроллера (и в другую сторону, естественно, тоже). Преобразование упомянутых интерфейсов производится посредством широко известной (в узких кругах) микросхемы FT232RL (линии шины CBUS которой также выведены для удобства пользователя на выходной разъем). У рассматриваемого устройства есть еще одна полезная фича – в него встроен программатор для микроконтроллеров AVR конторы Atmel. Внешний вид преобразователя показан на рисунке ниже:






Читать дальше

UART загрузчика для STM8S103F3 топик-ссылка

Писать в 2 места чревато ошибками, по этому только ссылка на статью с целью обратной связи. Кто протестирует - буду рад услышать результаты. Кто просто имеет идеи - тоже не возбраняется к высказыванию. Кратко: Загрузчик для STM8S*03F3 работает по UART с терминалом. Принимает файлы формата Intel HEX. Находиться в старших адресах памяти и не требует специальной сборки целевой прошивки (<= 7кБ исключая последний 1кБ Flash-памяти). Написано на ASM в STVD, проект полностью открытый.

USB программатор для микроконтроллеров AVR с преобразователем интерфейса USB/UART (встраиваемый модуль)

AVR
Похожие программаторы:

APU-2,
APU-2N (Narrow),
APU-2M (Module USB)

Продолжаю цикл заметок «проекты-малыши»

На днях собрал себе еще один вариант USB программатора для микроконтроллеров AVR на базе чипа FT232RL (назвал я этот программатор APU-2MM):



Данное устройство совмещает в себе функции программатора и преобразователя USB-UART. Т.е., при использовании рассматриваемого модуля через один и тот же интерфейсный шнур (в данном случае, видимо, USB A – Mini USB B) можно:

— осуществить связь компьютера с исполняющим устройством, выполненном, в частности, на базе микроконтроллера AVR (т.е., преобразовать данные шины USB в данные «шины» UART),

— прошить микроконтроллер AVR, на базе которого выполнено исполняющее устройство.

Сразу хочу оговориться, что в камень заливается «оригинальная» прошивка, т.е. hex-файл, сгенерированный (обычно) средой разработки. Никаких шифрований и прочих изысков не подразумевается. Прошивка микроконтроллера по USB идет точно так же, как если бы мы просто вставили программатор в разъем “ISP” на таргет-плате.



Читать дальше

Отладка по UART или встроенный GDB server

AVR
Хочу подробно описать в деталях и коде, как можно отлаживать AVR по UART, не прибегая к использованию внутрисхемной отладке по JTAG, не тратя лишние пины, а задействуя лишь UART, прерывания по таймеру и возможности самопрограммирования FLASH-памяти контроллера.
В этой статье речь пойдет о программной заглушке, которая будет приостанавливать выполнение основной программы, возвращать состояние процессора, читать и писать в память, короче, выполнять роль отладчика, исполняясь непосредственно на контроллере.

Я был оч удивлен, когда на просторах сети не нашел ни одного достойного решения для, казалось бы, нужной задачи, как отладка AVR по UART. На запрос «avr gdb stub» я получил пару куцих решений, которые уже давным давно не поддерживаются, несовместимы с текущей версией gdb и содержат ряд существенных недостатков: отсутсвие исполнения интрукций по шагам или же замедление исполнения отлаживаемой программы в сотни раз. Мне показалось, что это хороший шанс попытаться разобраться в теме и, возможно, улучшить существующие решения.



Читать дальше