ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
954369 Топик полностью
Nikolay_Po (22.10.2019 11:32 - 11:36, просмотров: 465) ответил bnb62 на ATmega32U4. Понадобилось вдруг добавить в старый проект UART 115200 параллельно с USB интерфейсом. Кварц для USB PLL может быть только 8 или 16 МГц. А для UART c 0% ошибок лучше 11.0592. И чё, приехали?
Вы на UART 0x55 выводите непрерывно и к выходу TX частотомер подключён? И по шапке дадут, если частота отличается более чем на 0%? Если серьёзно, то, вроде, в режиме двойной скорости (DDR_XCK=1), даже при кварце 8МГц и делителе (35-1=34) получите 8000000/35/2=114.29кБод. Это разница от 115200 всего в 0.8%. Теряете меньше 1/10 от интервала одного бита до следующего старта, даже если длина символа 12 бит (старт+8бит+чётность+2стоп). А если кварц 16МГц, то с делителем (69-1=68) получите 16МГц/69/2=115.94кБод. Разница с целевым значением 0.64%. Система будет полностью работоспособна и будет работать без сбоев при ошибке до 1/4 интервала (двукратный запас до начала сбоев). Это 1/4/12=2.08%. Чтобы не насвинячить, берём на свою сторону не весь допуск, а полвину, 2.08%/2=1.04%. Если в них укладываемся, то совесть должна быть полностью спокойна чиста (а душа спокойна). При 8МГц-кварце +/-200миллионных, отклонение от 115200 будет до 1.0078%, что укладывается во все нормы приличия. И даже если у вас керамический резонатор с 0.5% начальной точности, 0.2% по диапазону температур и 0.2% старения, то всё равно погрешность 1.017% максимум, что в пределах приличий. Проблемы не увидел.