Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM900: максимально допустимая погрешность к скорости передачи USART
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Страницы: 1, 2
Tahoe
Цитата(ArtemKAD @ May 29 2012, 18:17) *
Таких UART-ов которые требуют корректности всех 16 семплов для последнего бита сейчас нет.
Спешу огорчить - есть. Точнее есть такие программеры, которые делают на ПЛИС мосты на несколько UART. wink.gif
ArtemKAD
Цитата
Цитата
А кто вам сказал, что все выбрки должны быть правильными?
В каком именно месте? Можно, наконец, от общих слов ( очень дурная манера, кстати ), к конкретике?

Вот тут:
Цитата
то для "нормального" режима ( 16х ), максимально допустимый разбег частот будет: 1/( WORD_LNGTH * Fsmpl ) = 1/(10*16) = 1/160 = 0.00625, оно же 0,625%. Т.е. с момента синхронизации, UART-приемник сделает 160 сэмплирований и если последний сэмпл успевает "вписаться", то все будет стабильно работать.


Ваш расчет исходит из того, что правильными должны оставаться все 160 сэмплов.

Цитата
Точнее есть такие программеры, которые делают на ПЛИС мосты на несколько UART

Там скорее сделают вариант с одной точкой - по фронту смещенного тактового фиксируют в сдвиговый регистр точечное значение по центру каждого бита.
Tahoe
Цитата(ArtemKAD @ May 29 2012, 18:54) *
Ваш расчет исходит из того, что правильными должны оставаться все 160 сэмплов.
Разумеется. Когда что-то объясняют, идут от общего к частному. Так что в данном случае, даже не могу себя упрекнуть за не верную формулировку. Но если уж читать, то читать до конца:
Цитата(Tahoe @ May 28 2012, 19:43) *
В реальности, если выход сэмплера работает на мажоритарную схему, можно даже считать не 160 сэмплирований, а, например, 158 или 153. Т.е. что бы стоп-бит ещё определялся как стоп-бит.


Ребят, вы три страницы мусолили, но не могли толком описать, как расчитывать погрешность. А теперь пытаетесь того, кто все подробно разжевал, на чем-то подловить? Как-то это глупо и не продуктивно.


Цитата(ArtemKAD @ May 29 2012, 18:54) *
Там скорее сделают вариант с одной точкой

Я говорю о примере из жизни. Причем формально, программер написавший такой код был прав.

А если хочется "разминки для ума", то предлагаю подумать, как реализовано сэмплирование и как считать погрешность, в случае, когда STOP_BIT=1,5 wink.gif
=F8=
Цитата(Tahoe @ May 29 2012, 18:11) *
Ребят, вы три страницы мусолили, но не могли толком описать, как расчитывать погрешность. А теперь пытаетесь того, кто все подробно разжевал, на чем-то подловить? Как-то это глупо и не продуктивно.


lol.gif Скажите Вы мегатолстый троль или у Вас ЧСВ over 9000?
ArtemKAD
Цитата
Ребят, вы три страницы мусолили, но не могли толком описать, как расчитывать погрешность.

По моему я вполне объяснил. И было это объяснение на предыдущей странице:
http://electronix.ru/forum/index.php?s=&am...st&p=985845
Цитата
Каждый принимаемый байт начинает прием с фронта старт-бита (точность определения фронта - 1/8 или 1/16 бита - точнее сложно сказать т.к. обычно есть оба варианта, а уже какой использовать решает разработчик в зависимости от частот) и задача точности - центр последнего бита не должен уйти более чем пол бита в любую сторону. С учетом того, что каждый байт это 10 бит (старт, стоп, 8 бит передачи) получаем разницу частот не больше чем +/- 5% (1/20). Тут конечно не совсем точно - надо учесть точность фиксации фронта - это еще 1/80 или 1/160 - и в принципе для оценки достаточно...
Итого - разница частот для гарантированного приема во всем диапазоне температур и во всем диапазоне питающих процессор напряжений не должна уходить более чем на 3,75% от частоты нулевой ошибки UART.

Цитата
Но если уж читать, то читать до конца

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

Формально программер был чайником который полез в область в которой он чуть больше нуля. Прежде чем писать код для UART-а он был обязан взять учебник по основам метрологии и понять что такой "допуск" и зачем он нужен.
Tahoe
Цитата(ArtemKAD @ May 30 2012, 00:33) *
По моему я вполне объяснил. И было это объяснение на предыдущей странице:http://electronix.ru/forum/index.php?s=&am...st&p=985845

Это, кстати, был один из немногих толковых постов в этой теме. Проблема в том, что это лишь пол-дела. SIM900 соединяется с внешним UART, а не с таким же SIM900. Соотв., методика расчета погрешности нужна общая, а не заточеная под один конец приема.

Цитата(ArtemKAD @ May 30 2012, 00:33) *
Формально программер был чайником который полез в область в которой он чуть больше нуля. Прежде чем писать код для UART-а он был обязан взять учебник по основам метрологии и понять что такой "допуск" и зачем он нужен.
А причем тут учебник по метрологии и допуски? Его дело было соблюсти стандарты/рекомендации и в этом к нему никаких претензий нет. Оптимально он это сделал или нет - дело десятое. Пусть лучше не оптимально, но работает, чем криво посчитать погрешность и получить супер-оптимизированный продукт, работающий только с частью оборудования.
CADiLO
Многие применяют простое решение - это ставить на контроллер кварц 18.432мгц вместо 20мгц.
Падение производительности минимальное, а частота UART всегда точная.
ArtemKAD
Цитата
Проблема в том, что это лишь пол-дела. SIM900 соединяется с внешним UART, а не с таким же SIM900. Соотв., методика расчета погрешности нужна общая, а не заточеная под один конец приема.

А нам и нужен один конец - тот который мы делаем. Т.к. если бы у нас была связь двух SIM900 проблема их связи была бы проблемой разработчиков SIM900.
Цитата
Его дело было соблюсти стандарты/рекомендации и в этом к нему никаких претензий нет.

В тех самых стандартах/рекомендациях сказано, что значение бита соответствует значению уровня в центре временного промежутка соответствующего этому биту. Не уровень на всем промежутке, а только в его центре.
Tahoe
Цитата(ArtemKAD @ May 30 2012, 12:25) *
А нам и нужен один конец - тот который мы делаем.

Я оценил шутку. "ATZ" модуль распознает, а вот мы "OK" нет. Пол-UARTа...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.