Страница 2 из 2
Re: Программный UART -= H E L P =-
Добавлено: 26 май 2016, 03:40
lavrentyi
Re: Программный UART -= H E L P =-
Добавлено: 26 май 2016, 08:46
lavrentyi
Чутка подправил код. Вы писали про эти изменения..?...
Re: Программный UART -= H E L P =-
Добавлено: 26 май 2016, 09:05
rhf-admin
1. А почему в коде нет калибровки генератора? Или это я не нашёл? По идее это первое, что нужно сделать:
Возможно в этом и причина того, что в протеусе работает, а на макетке - нет. Протеус - это же сферический конь в вакууме.
2. В целом, по теме, IMHO, лучше не делать никаких контрольных стартовых байтов для проверки на помеху, чтоб лишний трафик не плодить. Можно сделать сэмплирование, как в оригинальном аппаратном UART. Берём три сэмпла внутри бита, с небольшими задержками. Если все три совпадают - значит не помеха.
Конечно если скорость большая, то можно так и не успеть, но если маленькая, мне кажется лучше так.
Re: Программный UART -= H E L P =-
Добавлено: 26 май 2016, 09:25
lavrentyi
1. А почему в коде нет калибровки генератора? Или это я не нашёл? По идее это первое, что нужно сделать:
Приступил к работе в этом направлении.
2. В целом, по теме, IMHO, лучше не делать никаких контрольных стартовых байтов для проверки на помеху, чтоб лишний трафик не плодить. Можно сделать сэмплирование, как в оригинальном аппаратном UART. Берём три сэмпла внутри бита, с небольшими задержками. Если все три совпадают - значит не помеха.
Конечно если скорость большая, то можно так и не успеть, но если маленькая, мне кажется лучше так.
Прошу прощения за свое невежество. Можно здесь более доступней.
Re: Программный UART -= H E L P =-
Добавлено: 26 май 2016, 09:42
rhf-admin
Сейчас: происходит прерывание - отсчитываем полбита - читаем значение бита.
Надо: происходит прерывание - отсчитываем, скажем, 3/8 бита - читаем первое значение - отсчитываем ещё 1/8 - читаем второе значение - ещё 1/8 - читаем третье значение и сравниваем все три значения. Если они одинаковые - бит считан правильно.
Оригинальный аппаратный uart примерно так и делает.
P.S. Но начни с генератора.
Re: Программный UART -= H E L P =-
Добавлено: 26 май 2016, 09:56
lavrentyi
Re: Программный UART -= H E L P =-
Добавлено: 26 май 2016, 10:01
lavrentyi
По крайнему вашему изложению. Можете куском кода выразить если не затруднит.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Т.е. данный код будет проверять каждый принятый байт пакета или только первый.?
Re: Программный UART -= H E L P =-
Добавлено: 26 май 2016, 13:34
lavrentyi