하나의 결정을 두 개의 마이크로와 공유하는 회로도는 무엇입니까?


20

두 마이크로 사이에 단결정 (완전 발진기 모듈 아님)을 어떻게 공유합니까? 첫 번째 마이크로의 모든 것을 정상적으로 연결하고 XO를 두 번째 마이크로 컨트롤러의 XI에 직접 연결해도 괜찮습니까? 보드에서 마이크로를 서로 가깝게 배치하려고합니다.

답변:


17

마이크로 사이에서 클럭을 공유해야 할 때 한 작업은 크리스털이 하나의 마이크로에서 발진기를 구동 한 다음 해당 마이크로에서 발진기 출력 핀 (일반적으로 CLKOUT 또는 OSCOUT)을 사용하여 두 번째 마이크로를 구동하는 것입니다.

다른 프로세서가 두 프로세서 사이를 이동하는 데 필요한 긴 PCB 트레이스의 커패시턴스가 오작동을 유발하는 것 외에 다른 이유가 없다면 동일한 크리스털에서 두 개의 오실레이터를 구동하는 데 문제가있을 것으로 예상됩니다.

개략도

이 회로 시뮬레이션CircuitLab을 사용하여 작성된 회로도


1
일부 마이크로 컨트롤러에는 크리스탈에 연결되지 않은 별도의 클럭 출력 핀이 있습니다.
joeforker

2
MSP430 프로세서는 내부 클록 (ACLK, SMCLK 또는 MCLK)을 I / O 핀에서 라우팅 할 수 있습니다. ACLK 출력 (32768Hz)을 사용하여 주 전원이 꺼진 시간 동안 RTC 백업 클럭을 GPS 장치에 공급합니다.
uɐɪ

7

그것은 당신이 원하는 것이 아닙니다. 크리스털을 사용하여 발진기를 형성하면 마이크로 컨트롤러 내부의 인버터를 사용하여 크리스털을 구동하게됩니다. 두 마이크로를 동일한 크리스탈에 연결하면 싸우고 작동하지 않습니다.

따라서 크리스탈 드라이버 (데이터 시트의 섹션 6.2.6에 표시된대로 구성)로 사용할 두 마이크로 중 하나를 선택하고 외부 클럭 입력 (데이터 시트의 6.2.1)을 사용하도록 다른 마이크로를 선택해야합니다. 그런 다음 회로도 연결을 다음과 같이 변경하십시오.

개략도

이 회로 시뮬레이션CircuitLab을 사용하여 작성된 회로도

또는 대칭이 필요한 경우 수정 대신 외부 발진기를 사용할 수 있습니다. 그러면 둘 다 외부 클록 모드에서 작동 할 수 있습니다.


크리스털 예측 성의 이점을 최대한 활용하려면이 셋업에서 상부 커패시터를 조정할 필요가있다.
Asmyldof

@ Asmyldof 확실히 결정의 타이밍 정밀도가 필요합니다. 아마도 대칭 솔루션이 필요할까요? 외부 오실레이터는 어떻게 연결되어 있습니까?
GisMofx

1
따라서 C2 = 10pF (CLKI 입력으로 인해 약 10pF 로딩으로 가정)이고 C1 = 22pF로 유지한다면?
MarkU

1
외부 시계를 사용하는 것처럼 그대로 나타납니다.
휴스턴 포트 니

1
@GisMofx 나는 답변을 병합하도록 요청하여 다른 질문으로 넘어 가서 보존 할 수 있도록 플래그를 지정했습니다.
Passerby

3

이 접근 방식의 문제점은 두 번째 오실레이터 입력에 대한 연결이 해당 핀의 커패시턴스에 영향을 미치고 주파수를 약간 변경하고 크리스탈 드라이브를 줄인다는 것입니다. 그러나 중요하지 않을 수 있으며 진동을 막을 가능성은 거의 없습니다. 제품에 대해 그렇게해야 할 때 두 MCU 모두에 수정 발진기 모듈을 사용했습니다.


2
오실레이터 출력 라인에서 약간의 추가 정전 용량은 큰 문제가되지 않습니다. 크리스털의 출력 측에있는 커패시턴스 (오실레이터 입력 라인)는 크리스털에 부하를 형성하며 범위 내에서 적절한 주파수를 얻기 위해 적당해야합니다. 클록을 넓게 분배해야하는 경우 CMOS 버퍼 게이트를 크리스탈과 함께 마이크로 가까이 배치하십시오.
Olin Lathrop

또한 EMI가 보드에서 클럭 신호를 라우팅하지 않는 것이 좋습니다.
joeforker

3

저렴한 인버터 칩 (0.1 $) 또는 특수 클록 생성기 (약간 더 비싸다)를 사용하여 오실레이터를 구축하고 해당 클록을 두 uC에 공급할 수 있습니다.

단순히 크리스탈을 둘 다에 연결하면 작동하지 않을 것입니다.


2

내가 사용한 PIC와 같은 것이면 XTALout과 XTALin 사이에 실제 XTAL과 캡 사이 (약 22pf)가 있습니다. 한 XTALout을 다른 XTALin에 연결하십시오.


작은 직렬 커패시터를 사용하여 첫 번째의 출력에서 ​​두 번째 오실레이터를 구동하는 것이 좋습니다.
stevenvh

1

크리스털로 발진기를 만들고 BarsMonster가 제안한 인버터를 팬 아웃 분배 버퍼 IC 의 입력으로 공급하십시오 . 하나의 팬 아웃 버퍼 출력은 각 MCU의 클럭 입력으로 전달됩니다.

사용중인 마이크로를 모르면 특정 부품을 추천 할 수는 없지만 다음 필터로 시작하고 싶습니다.

  • 유형 : 팬 아웃 버퍼 (분배)
  • 회로 수 : 1
  • 비율-입력 : 출력 : 1 : 2

1
3000 개의 부품 목록은 실제로 유용하지 않습니다. 그중 하나를 선택하고 왜 좋은 선택인지 설명하십시오.
stevenvh

그가 사용하는 로직 레벨 등을 몰라도 특정 부분을 답변에 직접 넣는 것이 주저합니다. 검색 필터 정보를 넣어서 범위를 좁힐 수 있습니다. 가치있는 것을 위해, 나는 현재 TI CDCLVC1102 와 발진기를 사용하고 있습니다. TXCO와 함께 CDC3RL02 를 사용할 수 있고 인버터도 사용할 수없는 것 같습니다 .
Joe Baker
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.