Программный UART -= H E L P =-

Всё об интерфейсах, протоколах, подключении к МК разных устройств, подключении контроллеров к ПК...
lavrentyi
Читатель
Читатель
Сообщения: 11
Зарегистрирован: 22 май 2016, 11:19

Re: Программный UART -= H E L P =-

Сообщение lavrentyi » 26 май 2016, 03:40

PCL FCR . Я просто не вижу где его тут привязать. Предлагаю так, Вы меня носом ткните, а я буду писать.
Вы только корректировать. А так получается что Вы за меня пишите. :? :? :? :? :? :?

lavrentyi
Читатель
Читатель
Сообщения: 11
Зарегистрирован: 22 май 2016, 11:19

Re: Программный UART -= H E L P =-

Сообщение lavrentyi » 26 май 2016, 08:46

Чутка подправил код. Вы писали про эти изменения..?... :-?

Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 2962
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
фанатичный радиохламер
Контактная информация:

Re: Программный UART -= H E L P =-

Сообщение rhf-admin » 26 май 2016, 09:05

1. А почему в коде нет калибровки генератора? Или это я не нашёл? По идее это первое, что нужно сделать:

Код: Выделить всё

bsf Status,5
Call 3FFh
movwf OSCCAL
Возможно в этом и причина того, что в протеусе работает, а на макетке - нет. Протеус - это же сферический конь в вакууме.

2. В целом, по теме, IMHO, лучше не делать никаких контрольных стартовых байтов для проверки на помеху, чтоб лишний трафик не плодить. Можно сделать сэмплирование, как в оригинальном аппаратном UART. Берём три сэмпла внутри бита, с небольшими задержками. Если все три совпадают - значит не помеха.
Конечно если скорость большая, то можно так и не успеть, но если маленькая, мне кажется лучше так.
С уважением, администрация сайта.

lavrentyi
Читатель
Читатель
Сообщения: 11
Зарегистрирован: 22 май 2016, 11:19

Re: Программный UART -= H E L P =-

Сообщение lavrentyi » 26 май 2016, 09:25

1. А почему в коде нет калибровки генератора? Или это я не нашёл? По идее это первое, что нужно сделать:

Приступил к работе в этом направлении. :o

2. В целом, по теме, IMHO, лучше не делать никаких контрольных стартовых байтов для проверки на помеху, чтоб лишний трафик не плодить. Можно сделать сэмплирование, как в оригинальном аппаратном UART. Берём три сэмпла внутри бита, с небольшими задержками. Если все три совпадают - значит не помеха.
Конечно если скорость большая, то можно так и не успеть, но если маленькая, мне кажется лучше так.

Прошу прощения за свое невежество. Можно здесь более доступней. :oops:

Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 2962
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
фанатичный радиохламер
Контактная информация:

Re: Программный UART -= H E L P =-

Сообщение rhf-admin » 26 май 2016, 09:42

Сейчас: происходит прерывание - отсчитываем полбита - читаем значение бита.
Надо: происходит прерывание - отсчитываем, скажем, 3/8 бита - читаем первое значение - отсчитываем ещё 1/8 - читаем второе значение - ещё 1/8 - читаем третье значение и сравниваем все три значения. Если они одинаковые - бит считан правильно.
Оригинальный аппаратный uart примерно так и делает.

P.S. Но начни с генератора.
С уважением, администрация сайта.

lavrentyi
Читатель
Читатель
Сообщения: 11
Зарегистрирован: 22 май 2016, 11:19

Re: Программный UART -= H E L P =-

Сообщение lavrentyi » 26 май 2016, 09:56

Да . Все заработало отлично.
:clapping: :clapping: :clapping: :D :D :D :clapping: :clapping: :clapping2: :clapping2: :clapping2: ;)

Но. Вот с этим куском кода. Без него ни как.
;--- Квитируем МК на прием n+1 байт в пакете. В данном проекте в пакете 11 байт.

movlw .12
movwf countX
call Recieve
decfsz countX,F
b $-2

;===============================================================================================
;--------- О С Н О В Н А Я П Р О Г Р А М М А -------------------------------------------------
;===============================================================================================

:-? :-? :-? :-? :-? :-? :-?

lavrentyi
Читатель
Читатель
Сообщения: 11
Зарегистрирован: 22 май 2016, 11:19

Re: Программный UART -= H E L P =-

Сообщение lavrentyi » 26 май 2016, 10:01

По крайнему вашему изложению. Можете куском кода выразить если не затруднит.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Т.е. данный код будет проверять каждый принятый байт пакета или только первый.?

lavrentyi
Читатель
Читатель
Сообщения: 11
Зарегистрирован: 22 май 2016, 11:19

Re: Программный UART -= H E L P =-

Сообщение lavrentyi » 26 май 2016, 13:34

На вопрос открытый мной в этой ветке я получил ответы. То что не получалось - получилось..
Я очень рад.. Спасибо rhf-admin за лаконичные ответы.
:D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D :D

Ответить

Вернуться в «Интерфейсы / Протоколы / Периферия»