일부 마이크로 컨트롤러에는 왜 그렇게 큰 동기화 지연이 있습니까?


11

Atmel SAM-D21 시리즈 마이크로 컨트롤러에서 많은 주변 장치는 기본 CPU 클록과 비동기식 클록을 사용하며 이러한 주변 장치에 대한 액세스는 동기화 논리를 거쳐야합니다. 클럭이 CPU 시간에 비해 느린 주변 장치에서는 실제로 약간의 지연이 발생할 수 있습니다. 예를 들어, RTC가 1024Hz 클럭을 사용하도록 구성되어 있고 (디자인 의도로 보임) CPU가 48Mhz로 실행중인 경우 "현재 시간"레지스터를 읽으면 버스 로직이 200,000 개 이상의 대기 상태 (최소한)를 삽입하게됩니다. 1024Hz 클럭의 5 사이클). CPU가 읽기 요청을 발행하고, 관련이없는 다른 코드를 실행하고, 시간을 가져 오기 위해 200,000 회 이상주기를 리턴 할 수는 있지만 실제로 시간을 더 빨리 읽을 수있는 방법은없는 것 같습니다.

동기화에 대한 이해를 통해 단일 비트 동기화 회로는 대상 클럭의 2-3 사이클만큼 신호를 지연시킵니다. 멀티 비트 수량을 동기화하는 것은 조금 어렵지만 소스 클록보다 빠른 경우 대상 클록의 5 사이클 내에서 안정적인 동작을 보장하고 그렇지 않은 경우 몇 사이클 만 더 신뢰할 수있는 다양한 접근 방식이 있습니다. Atmel SAM-D21이 수행하는 작업은 소스 클럭 도메인에서 동기화를 위해 6주기가 필요하며 동기화 지연이 필요한만큼 동기화 지연이 필요한 설계보다 선호되는 요소는 무엇입니까? 그러한 인터럽트가 불필요 할 정도로 동기화 지연이 짧습니까?


2
이 질문에 감사드립니다. 마침내 내 문제를 이해하게되었습니다. SAMD20 / 21에서 WDT (Watchdog Timer)를 지우는 데 거의 5 밀리 초가 걸리는 이유를 이해할 수 없기 때문에 여기에 왔습니다. 이제는 하드웨어 설계에 의한 것이지 오류가 아니라는 것을 알고 있습니다. (WDT는 1024Hz로 클럭되며, 이는 현명한 옵션입니다.) 이제 적어도 이에 따라 처리 할 수 ​​있습니다.
T-Bull

2
@ T-Bull : 해당 부분의 워치 독에 대한 정말 재미있는 점은 소프트웨어가 재설정 명령을 실행하는 시간과 명령이 동기화 프로그램을 통과하는 시간 사이에 비활성화된다는 것입니다. 해당 간격 동안 장치가 잠자기 상태가되면 워치 독은 부품 깨어날 때까지 또는 다른 방법으로 깨어날 때까지 실행되지 않습니다 .
supercat

답변:


2

그것은 저에게 일을하는 다른 방법입니다. 레지스터가 CPU 클럭 또는 클럭의 1/2 이상인 아키텍처에 익숙합니다. 따라서 레지스터를 작성하면 바로 준비됩니다. 아마도 그들은 전력 절약을 위해 이런 식으로하고 있습니까? 주변 장치 레지스터를 별도의 느린 클럭 도메인에 배치하는 경우 주 발진기 또는 CPU 클럭을 깨우고 실행할 필요는 없지만 주변 장치의 값을 계속 업데이트 할 수 있습니다.

이 경우 슈퍼 슬로우 주변 장치 블록에 레지스터를 작성하고 전체 CPU 또는 클럭 게이트에 대해 전원 아일랜드를 비활성화 한 다음, 느리게 동기화 프로그램이 만족할 때까지 읽은 다음 CPU를 중단하여 꺼내십시오 수면.

또는 6주기를 돌리고 매 쓰기를 기다리는 대신 깨우는 시간에 최대량의 명령을 넣을 수 있습니다.

왜 그렇게 많은 동기화주기를 사용하는지, 편집증이되거나 고객 중 하나의 높은 신뢰성 표준을 충족시킬 수 있습니다. 확실히 말할 수는 없지만 모든 램과 같은 요구를 가진 고객이 ecc를 가지고 설정 값 등으로 사전로드되는 것을 보았습니다.

나는 그것이 확실한 대답은 아니지만 데이터 시트를 약간 살펴본 후에 내 생각이라고 생각합니다.


2
"6 사이클"은 주변 클럭의 6 사이클입니다. 예를 들어 실시간 클록 모듈을 1024Hz (Atmel의 권장 사항으로 보임)로 공급하도록 설정하고 CPU 클록이 48MHz 인 경우 주변 클록의 6주기는 CPU 클록의 281,250주기이며 이는 상당히 길다 특히 서비스가 필요한 인터럽트가있는 경우 회전 시간. 느린 클럭이 8Mhz (36-CPU 사이클 스핀을 의미) 인 경우 회전은 적당히 끔찍하지만 1024Hz 클럭의 스핀보다 하드 결함이 더 좋습니다.
supercat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.