답변:
마이크로 사이에서 클럭을 공유해야 할 때 한 작업은 크리스털이 하나의 마이크로에서 발진기를 구동 한 다음 해당 마이크로에서 발진기 출력 핀 (일반적으로 CLKOUT 또는 OSCOUT)을 사용하여 두 번째 마이크로를 구동하는 것입니다.
다른 프로세서가 두 프로세서 사이를 이동하는 데 필요한 긴 PCB 트레이스의 커패시턴스가 오작동을 유발하는 것 외에 다른 이유가 없다면 동일한 크리스털에서 두 개의 오실레이터를 구동하는 데 문제가있을 것으로 예상됩니다.
이 회로 시뮬레이션 – CircuitLab을 사용하여 작성된 회로도
그것은 당신이 원하는 것이 아닙니다. 크리스털을 사용하여 발진기를 형성하면 마이크로 컨트롤러 내부의 인버터를 사용하여 크리스털을 구동하게됩니다. 두 마이크로를 동일한 크리스탈에 연결하면 싸우고 작동하지 않습니다.
따라서 크리스탈 드라이버 (데이터 시트의 섹션 6.2.6에 표시된대로 구성)로 사용할 두 마이크로 중 하나를 선택하고 외부 클럭 입력 (데이터 시트의 6.2.1)을 사용하도록 다른 마이크로를 선택해야합니다. 그런 다음 회로도 연결을 다음과 같이 변경하십시오.
이 회로 시뮬레이션 – CircuitLab을 사용하여 작성된 회로도
또는 대칭이 필요한 경우 수정 대신 외부 발진기를 사용할 수 있습니다. 그러면 둘 다 외부 클록 모드에서 작동 할 수 있습니다.
이 접근 방식의 문제점은 두 번째 오실레이터 입력에 대한 연결이 해당 핀의 커패시턴스에 영향을 미치고 주파수를 약간 변경하고 크리스탈 드라이브를 줄인다는 것입니다. 그러나 중요하지 않을 수 있으며 진동을 막을 가능성은 거의 없습니다. 제품에 대해 그렇게해야 할 때 두 MCU 모두에 수정 발진기 모듈을 사용했습니다.
크리스털로 발진기를 만들고 BarsMonster가 제안한 인버터를 팬 아웃 분배 버퍼 IC 의 입력으로 공급하십시오 . 하나의 팬 아웃 버퍼 출력은 각 MCU의 클럭 입력으로 전달됩니다.
사용중인 마이크로를 모르면 특정 부품을 추천 할 수는 없지만 다음 필터로 시작하고 싶습니다.