Перейти к содержанию
    

Программный UART. Чем ловить старт бит ?

Контроллер Mega8, нужет 2й UART

Везде где приходилось встречать упоминание о софтовом УАРТе, старт бит ловят компаратором.

Может потому что этот переферийный модуль более распостранён?

Мне бы удобнее было ловить от внешнего прерывания: INT0, INT1.

В чём я при этом буду неправ ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

програмно второй UART ( нормальный не получить) это с ограничениями, компромисами и всеравно криво.

у нас норально не получилось, по понятным причинам. Пришлось перейти на 162_ой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

програмно второй UART ( нормальный не получить) это с ограничениями, компромисами и всеравно криво.

у нас норально не получилось, по понятным причинам. Пришлось перейти на 162_ой.

 

А полноценный не нужно. Нужно медленно писать, редко и медленно читать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Везде где приходилось встречать упоминание о софтовом УАРТе, старт бит ловят компаратором.

Мало искали.

//* EXT_INT0 - External Interrupt Routine 0

//* This routine is executed when a negative edge on the incoming serial

//* signal is detected. It disables further external interrupts and enables

//* timer interrupts (bit-timer) because the UART must now receive the

//* incoming data.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Контроллер Mega8, нужет 2й UART

Везде где приходилось встречать упоминание о софтовом УАРТе, старт бит ловят компаратором.

Аналоговым компаратором ? А нахрена ? Или речь о компараторах таймера ?

Может потому что этот переферийный модуль более распостранён?

Мне бы удобнее было ловить от внешнего прерывания: INT0, INT1.

В чём я при этом буду неправ ?

Если скорость не очень большая, то почему бы и нет. Я предпочитаю использовать ICP, а семплер по компаратору таймера. Фронт старт-бита ловится точно, а вот семплер будет гулять в зависимости от времени входа в прерывание (а если старт-бит ловить по INT, то и здесь будет гулять, что явно не на пользу надежности, даже если крутится цикл без прерываний и cli). В случае ICP на полтора бита можно при необходимости прикрыть прерывания...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

До 19200 бод софтовый уарт не представляет сложностей, и уж тем более криво слепить его - это надо очень постараться. Старт-бит ловится интом, для приема можно использовать любое свободное прерывание таймера. Если же нужен дуплекс- тут конечно посложнее, надо еще одно прерывание от таймера и сделать так, чтобы оно было с наивысшим приоритетом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Контроллер Mega8, нужет 2й UART

Везде где приходилось встречать упоминание о софтовом УАРТе, старт бит ловят компаратором.

Может потому что этот переферийный модуль более распостранён?

Мне бы удобнее было ловить от внешнего прерывания: INT0, INT1.

В чём я при этом буду неправ ?

 

Делал на внешних прерываниях. Работает надёжно до 57600 включительно без какого-либо использования АСМа. Можно было и 115200, но надо было всё вылизывать. 9600 сделаете вообще легко.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

До 19200 бод софтовый уарт не представляет сложностей, и уж тем более криво слепить его - это надо очень постараться. Старт-бит ловится интом, для приема можно использовать любое свободное прерывание таймера. Если же нужен дуплекс- тут конечно посложнее, надо еще одно прерывание от таймера и сделать так, чтобы оно было с наивысшим приоритетом.

С передачей как раз намного проше. Делал для отладки передачу на выводе с output compare. Точность понятное дело отличная. Прием был не актуален, так что не писал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...