Как выбрать частоту кристалла?


8

Я видел такие вопросы , как этого , что говорить о выборе кристалла для UART , и я видел такие вопросы , как это , что уже 32,768 кГц для RTC. Но как мне выбрать правильный кристалл для моего приложения.

На данный момент я не уверен, какой бод UART я буду использовать, но он будет одним из стандартных. Было бы неплохо иметь возможность получать полуточное время в миллисекундах, но это не является обязательным требованием. Интуитивно я думаю, что использование самого быстрого кристалла, который может использовать мой микро, даст мне большую гибкость, но есть ли что-то, чего мне не хватает? Есть ли «универсальная» частота, которую используют люди?


с большой осторожностью ... :)
vicatcu

Ответы:


11

Честно говоря, я мог часами описывать разные частоты и зачем их использовать, но у кого-то уже есть!

http://en.wikipedia.org/wiki/Crystal_oscillator_frequencies

В этой таблице есть столбец UART, в котором указано, на какие частоты UART она делится.

Он также сообщает вам, когда частота является стандартным кристаллом для конкретной системы связи.


Разве не было бы хорошо, если бы была какая-то хорошая частота кристалла, которую все использовали.
Kellenjb

1
Разве не было бы хорошо, если бы в каждой части мира были одинаковые розетки в зданиях, жизнь продолжалась, если вы не перепутаете розетки.
Кортук

2

Интуитивно понятно, что я бы использовал МЕДЛЕННЫЙ кристалл, который работает для моего приложения. Вы получите меньший сдвиг тактовой частоты, и следы цепи обычно ведут себя лучше на низких частотах.

Кроме того, если вы хотите делать вещи каждые несколько миллисекунд, вы можете сделать что-то вроде следующего:

Fosc = 25MHz. 
T=1/Fosc = 40ns; 
1ms/40ns = 25000 cycles/ms;
0xFFFF-25000=0x9E57;

on overflow TMR1:  //assuming TMR1 is 16 bit and counts every clock cycle
doEveryMillisecond;
incrementMillisecondTimer;
TMR1 = 0x9E57;

Не уверен, какую микросхему вы используете, но у MPLAB есть утилиты для определения времени, которое требуется для событий, так что вы можете использовать это для настройки значения сброса TMR1, чтобы справиться с любыми издержками и / или неточными часами. Кристаллы могут варьироваться настолько, что это невозможно в производственной среде ... не уверен.


В качестве дополнения к этому, если вы не знаете, какой XTAL использовать в своем виджете, не выбирайте его вообще. Просто оставьте место на печатной плате незаполненным и подождите, пока вам не понадобится стабильность (например, калибровка внутреннего RC-генератора недостаточно хороша для желаемой скорости передачи) или скорости. Не исправляй то, что не сломалось!
Тыблу

Согласен - если у вашего MCU есть внутренний генератор, попробуйте сначала использовать его. Убедитесь, что вы правильно настроили слова / предохранители. Кроме того, вы должны рассмотреть возможность использования разъема на вашей печатной плате, чтобы вам не приходилось иметь дело с пайкой / распаиванием кристаллов ... бонус в том, что вы можете легко поменять их местами.
Исаак

1
@isaac, кристалл является одним из крупнейших источников электромагнитных помех на плате, он должен быть как можно ближе к плоскости заземления, не проходить через разъемы и иметь следы экрана вокруг него.
Кортук

@isaac, также, если у вас дрейф часов в 10 частей на миллион, не имеет значения, какая у вас скорость кристалла. Все они будут делиться на одну и ту же потенциальную ошибку, поскольку часы с большей скоростью должны иметь больший делитель. Более медленный кристалл означает худшее разрешение на других вещах.
Кортук

@isaac У меня никогда не было проблем с кристаллами 40 МГц. Я просто прикрепляю их как можно ближе к микрофону. и ответ @kortuk - та же самая причина, почему я не думал, что смещение часов было проблемой. Я полагал, что более высокие тактовые частоты позволят мне приблизиться точно к 1 мс.
Kellenjb
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.