реклама на сайте
подробности

 
 
> UART - сэмплирование битов в первой части
toweroff
сообщение Nov 14 2017, 10:40
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Добрый день
Есть физический интерфейс на витой паре, сигнал в нем выглядит вот так
Прикрепленное изображение

По сути, это обычный UART, но "0" передается вот в таком виде. Обычный же UART сэмплирует три отсечки в середине бита, потом уже принимается решение о "чистоте" сэмпла и его значении
Очень не хочется ловить каждый бит, пока надежда на использование стандартных аппаратных интерфейсов не совсем померла sm.gif
Есть идея использовать 32-битный SPI, с периодом тактирования как раз в 35мс и запускать по компаратору, который ловит старт-бит. У меня Start + 8 + Parity + Stop. Получается, один отсчет стоп-бита потеряется, да и фиг с ним

Что еще можно придумать? Пока смотрел LPC и STM32F, L. Вроде как не нашел переназначения тактов сэмплирования (или плохо смотрел?)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
k155la3
сообщение Nov 14 2017, 12:11
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Данные приходят асинхронно, те. в любой момент.
Как привязать старт SPI к обработке посылки ? (Если это узел USART, то он отрабатывает автономно и будет "успевать")
Работать скорее всего будт, эдакий bit-bang по приему. Вопрос в микросекундных таймингах.
Если стартовать SPI по апп. прерыванию - то у него д.б наивысший приоритет и разрешена вложенность.
Иначе старт SPI может уплыть относительно начала посылки по приемной линии.
-----
Еслибы тайминги были не микросекундные, то саму линию можно было бы завести на вход аппаратного прерывания
и реализовать программный USART с нужной спецификой. Узел таймер придется задействовать.

ps
Внешний "выпрямитель саксафона" в виде контроллера, который растягивает до нужного размера стартовый импульс
+ линия задержки остального "паравоза" на соотв-ее кол-во тактов.
1 вход, 1 выход.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 14 2017, 12:22
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(k155la3 @ Nov 14 2017, 15:11) *
Как привязать старт SPI к обработке посылки ?


Цитата
Есть идея использовать 32-битный SPI, с периодом тактирования как раз в 35мс и запускать по компаратору, который ловит старт-бит.


Цитата(k155la3 @ Nov 14 2017, 15:11) *
Еслибы тайминги были не микросекундные...

Скорость 9600, тактовая 30 МГц. Теоретически, вполне возможно с приоритетным прерыванием компаратора

Цитата(k155la3 @ Nov 14 2017, 15:11) *
Внешний "выпрямитель саксафона" в виде контроллера, который растягивает до нужного размера стартовый импульс

Скорость не меняется, одновибратор не проще? laughing.gif

Если б только прием... мне и передавать нужно в таком формате. Хотя, если одновибратор да по фронту, да две штуки их - на прием и передачу...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 00:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016