Использование часов UART 3,6864 МГц для микроконтроллера

Я хочу использовать внешний генератор 3,6864 МГц для синхронизации моего ATMEGA328p, чтобы обеспечить «безошибочную» последовательную связь. Когда я посмотрел на эту страницу, я увидел, что 3,68464 МГц также представлены как 2 * 1,8432 МГц. Я не понимаю, что это значит. Означает ли это, что мне придется использовать два такта 1,8432 МГц, чтобы каким-то образом сгенерировать 3,6864 МГц? Или это просто показывает мне, как появилось это значение (3,6864 МГц)? Если первое верно, как я МОГУ генерировать 3,6864 МГц с двумя генераторами на более низкой частоте? Доступны ли генераторы с такими «множественными» частотами 1,8432 МГц?

Будет ли это сообщение действительно безошибочным, как утверждает ссылка на страницу?

Как мне подключить генератор к микроконтроллеру? Таблица данных меня немного смутила, потому что в разделе 8.4 создается впечатление, что я размещаю осциллятор между XTAL1 и XTAL2, а в 8.8 предлагается подключить его к XTAL2, а XTAL1 не подключен. Так что здесь есть некоторая путаница, хотя я склонен думать, что последнее - это то, что я ищу. Но как я могу соединить два вывода генератора только с выводом XTAL1?

I want to use a 3.6864 MHz external oscillatorВы имеете в виду двухконтактный кристалл ? Если это так, вы следуете тому, что показано в разделе 8.2, включая два внешних конденсатора.
В разделе 8.4 говорится о кварцевом генераторе , выводы которого должны быть подключены к XTAL1 и XTAL2 соответственно (плюс соответствующие конденсаторы), а в разделе 8.8 говорится о внешнем источнике тактового сигнала , который содержит кварцевый генератор, конденсаторы и все схемы, необходимые для генерации таких часов. Сегодня я наткнулся на ответ, объясняющий различия между ними .
Последовательная связь на основе UART, использующая тактовую частоту 16x, может выдерживать относительно большие колебания частоты кристалла, не вызывая ошибок. Частота, которая находится в пределах 1% от идеальной, так же хороша, как и ваша точная частота, и ее довольно легко достичь, если вы начнете с более высокой частоты кристалла.
@JoeHass Не приведет ли длительное общение (скажем, примерно на 1 секунду) к накоплению ошибок?
Нет, в этом виде связи приемник ресинхронизируется с передатчиком в начале каждого байта. Приемник ищет задний фронт каждого начального бита и использует его в качестве контрольной точки. Затем приемник производит выборку каждого бита в середине ожидаемой длительности бита. Таким образом, накопленная ошибка синхронизации может составлять почти половину битового времени, когда приходит стоповый бит, а связь все еще успешна.
Единственная ситуация, когда вам нужно побеспокоиться о выборе правильной частоты кристалла, — это когда микроконтроллер имеет низкую тактовую частоту, но вы хотите использовать последовательную связь с высокой скоростью передачи данных. Вы должны быть в состоянии разделить частоту кристалла до 16-кратной скорости передачи данных с разницей менее 2% по отношению к идеальной скорости передачи данных.

Ответы (1)

Таблица данных меня немного смутила, потому что в разделе 8.4 создается впечатление, что я размещаю осциллятор между XTAL1 и XTAL2, а в 8.8 предлагается подключить его к XTAL2, а XTAL1 не подключен.

Микроконтроллер имеет несколько вариантов источника синхронизации (внутренний или внешний).
Один из них — подключение внешнего кристалла к XTAL1 — XTAL2 (раздел 8.2).

введите описание изображения здесь

Другой источник синхронизации может использовать внешний генератор (это означает внешнее устройство, которое генерирует тактовые импульсы), который можно использовать как

введите описание изображения здесь

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

Что касается вашего вопроса о UART, вы должны проверить раздел 19.11, в котором есть несколько таблиц, показывающих процент ошибок для данной номинальной скорости передачи и используемой частоты кварца.

Для вашего конкретного случая с кристаллом 3,6864 МГц таблица, в которой показаны возможные скорости передачи данных и процент ошибок,

введите описание изображения здесь

и его вполне можно использовать с ошибкой 0% для всех распространенных скоростей передачи данных.

Чтобы быть уверенным, я буду использовать кварц 3,6864 МГц, а не 2 кварца половинной частоты, верно? Звучит нелепо, я знаю, но то, как сайт, на который я ссылался, представлял эти часы, вызвал у меня изрядную долю сомнений.
@Analon Да, вам нужно использовать только один кристалл, подключенный к XTAL1-XTAL2, и соответствующие конденсаторы.
Обратите внимание, что ошибка 0% относится только к ошибке деления основной тактовой частоты для создания тактовой частоты в бодах. Эта таблица не относится к ошибкам при передаче и приеме данных. "Безошибочная связь" зависит от многих других факторов.