cgw писал(а):
Ну 8-12Mhz с цепочкой. про резонатор ни слова.
Это круто но я так и не понял какие должны быть CKSEL3:0 и SUT1:0 чтобы подключить 12 Mhz и 16Mhz кварцевый резонатор.
И что дают K CK и ms в калькуляторе. У меня стало только больше вопросов.
Может гайдик посоветуешь на Русском как разобраться что значат CK и ms.
поскольку Start-up Time from Power-down and Power-save
и Additional Delayfrom Reset(V CC = 5.0V)
Ни о чем не говорят.
Про кварц там вообще-то, достаточно. Главное - более-менее нормально читать технический английский.
Читаю вот
этот файл, где чёрным по Английски написано:
For resonators, the maximum frequency is 8 MHz with CKOPT unprogrammed and 16 MHz with CKOPT programmed.
Переводим: Для резонаторов масимальная частота 8 МГц при незапрограммированном стстоянии бита CKOPT (1) и 16 МГц при запрограммированном (0).
В таблице чуть ниже рекомендуемые значения частот и состояния битов. Получаем:
CKOPT = 0; CKSEL[3:1] = 101/110/111; рабочая частота кварца БОЛЕЕ 1 МГц (и вплоть до 20МГц при 4.5~5.5V).
Бит CKSEL[0] совместно с битами SUT (StartUp Time) выбирают время запуска контроллера после подачи питания и до собственно, начала его работы. Внутренний механизм запуска даёт время на установление рабочей частоты кварцевого генератора.
Теперь отвечу на вопрос прямо:
Чтобы получить 12 и 16МГц, нужно выставить биты таким образом:
CKOPT = 0;
CKSEL[3:1] = 101 / 110 / 111;
Остальные биты - это длительность задержки.
SUT[1:0] = длительность задержки в тактах процессора (CK) + дополнительные милимекунды после сброса но ДО запуска.
КЕРАМИКА:
CKSEL = 0:
00 = 258 тактов + 4.1мс
01 = 258 тактов + 65мс
10 = 1000 тактов (1K) + 0 мс
11 = 1000 тактов + 4.1мс
CKSEL = 1:
00 = 1000 тактов + 65мс
КВАРЦ:
01 = 16000 тактов + 0мс (Включён Brown-Out Detect) - автосброс по питанию
10 = 16000 тактов + 4.1мс (Быстро нарастающее питание)
11 = 16000 тактов + 65мс (Медленно нарастающее питание).
То есть. SKCEL = 1111, SUT = 01 / 10 / 11
Биты BODEN и BODLEVEL - выбирайте сами. Лично я бы поставил BODEN = 0; BODLEVEL = 0;
Для Вас это те значения, при которых контроллер сможет устойчиво работать с кристаллом на 16МГц. С 12МГц кристаллом можно поставить BODLEVEL = 1.
Страница 38: Brown-Out. В таблице есть значения.