Инструменты пользователя

Инструменты сайта


doc:doclist:clockchecker

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:doclist:clockchecker [2019/08/06 16:30]
katya [Уточнение формулы]
doc:doclist:clockchecker [2019/10/11 17:38]
katya [Пример для HSE0]
Строка 45: Строка 45:
 В итоге, более точные формулы получаются такие: В итоге, более точные формулы получаются такие:
  
-  * При CLK < HSI: 
-    * K0 = HSI / (PRES_REG2 + 1) * PRES_REG1 / CLK 
-    * K1 = CLK / (PRES_REG3 + 1) * (PRES_REG0 + 1) / HSI 
   * При HSI < CLK:   * При HSI < CLK:
     * K0 = HSI / (PRES_REG2 + 1) * (PRES_REG1 + 1) / CLK     * K0 = HSI / (PRES_REG2 + 1) * (PRES_REG1 + 1) / CLK
     * K1 = CLK / (PRES_REG3 + 1) * PRES_REG0 / HSI     * K1 = CLK / (PRES_REG3 + 1) * PRES_REG0 / HSI
 +  * При CLK < HSI:
 +    * K0 = HSI / (PRES_REG2 + 1) * PRES_REG1 / CLK
 +    * K1 = CLK / (PRES_REG3 + 1) * (PRES_REG0 + 1) / HSI
 +
  
 Как видно, тут просто исключены +1 в соответствующих коэффициентах. Для расчета необходимо выбирать ту пару формул,​ куда ожидается уход частоты CLK. Если ожидается уход частоты CLK ниже частоты HSI, то прескеллеры и значения K0,K1 подбираются по формуле для CLK < HSI. В противном случае,​ используется формула HSI > CLK. Поскольку обычно требуется высокое быстродействие,​ то чаще всего необходимы формулы для CLK < HSI.  Как видно, тут просто исключены +1 в соответствующих коэффициентах. Для расчета необходимо выбирать ту пару формул,​ куда ожидается уход частоты CLK. Если ожидается уход частоты CLK ниже частоты HSI, то прескеллеры и значения K0,K1 подбираются по формуле для CLK < HSI. В противном случае,​ используется формула HSI > CLK. Поскольку обычно требуется высокое быстродействие,​ то чаще всего необходимы формулы для CLK < HSI. 
Строка 71: Строка 72:
  
 В демо-проекте работы с ClockChecker-ом на [[https://​github.com/​StartMilandr/​MDR_Pack_v6/​tree/​master/​PACK_Gen/​Files/​Examples/​All_Boards/​ClockChecker|GitHub]] помимо случая с HSE0, представлен также вариант аварийного перехода на частоту HSI с тактирования от HSE0 через PLL0. Для эмуляции "​аварии"​ в примере просто выключается PLL. В демо-проекте работы с ClockChecker-ом на [[https://​github.com/​StartMilandr/​MDR_Pack_v6/​tree/​master/​PACK_Gen/​Files/​Examples/​All_Boards/​ClockChecker|GitHub]] помимо случая с HSE0, представлен также вариант аварийного перехода на частоту HSI с тактирования от HSE0 через PLL0. Для эмуляции "​аварии"​ в примере просто выключается PLL.
 +
 + <​note important>​ При инициализации блока необходимо сбросить теневые регистры MAX_SHIFT раньше разрешения аварийных переключений на HSI!</​note>​
doc/doclist/clockchecker.txt · Последние изменения: 2019/10/11 17:38 — katya