그래서이 전에는 단순한 8 비트 Atmel MCU로만 작업했으며 개발 보드 회로도에서 12Mhz 크리스털 만 가지고 있지만 MCU는 최대 100MHz로 작동한다는 것을 알았습니다. (기본값은 80MHz라고 생각합니다. 재미를 위해 한 번만 높였습니다. 코드의 단순한 줄입니다.)
어떻게합니까? 예를 들어 Atmega328이 사용 된 결정 속도로 작동하는 이유는 무엇입니까?
그래서이 전에는 단순한 8 비트 Atmel MCU로만 작업했으며 개발 보드 회로도에서 12Mhz 크리스털 만 가지고 있지만 MCU는 최대 100MHz로 작동한다는 것을 알았습니다. (기본값은 80MHz라고 생각합니다. 재미를 위해 한 번만 높였습니다. 코드의 단순한 줄입니다.)
어떻게합니까? 예를 들어 Atmega328이 사용 된 결정 속도로 작동하는 이유는 무엇입니까?
답변:
이것은 ARM 프로세서 인 코어와 관련이 없습니다. 클럭킹 회로의 작동 방식에 관한 것입니다.
마이크로 컨트롤러, RF 칩, 오디오 칩과 같은 많은 시스템에서… 일부 기준 클록 (예 : 외부 크리스탈)의 정확한 배수 인 더 빠른 클록을 생성해야합니다.
제어 전압을 높이거나 낮추어 주파수를 조정할 수있는 VCO (Voltage-Controlled Oscillator)를 사용하면됩니다.
이제 제어 전압을 설정하기 만하면 정확한 "볼 파크"의 주파수에서 입력 주파수의 정확한 배수가 아닌 진동 할 수 있습니다. 특히, VCO는 약간 표류 할 수 있으므로 주파수가 계속해서 "방황"할 것입니다. 해당 오실레이터를 기준 오실레이터와 비교하여 오실레이터를 제어해야합니다.
이를 수행하는 방법은 위상 고정 루프를 사용하는 것 입니다. 아이디어는 간단하다 :
위의 단계는 제어 루프이므로 단계의 이름에 고정됩니다.
주변 장치가 많고 내부에 여러 개의 클록을 갖는 이점이있는 "풍부한"마이크로 컨트롤러의 경우 일반적으로 최소 1 PLL을 갖는 것이 일반적입니다. ATMega328은 그런 점에서 조금 이상합니다. 여전히 PLL이없는 비교적 전력이 부족하고 주변 장치가 풍부한 마이크로 컨트롤러입니다.