클럭 및 타이밍 보정
ADPD188BI는 두 가지 내부 시간 기준을 사용하여 작동합니다. 32kHz 클럭은 샘플 타이밍을 설정하고, 32MHz 클럭은 LED 펄싱 및 데이터 캡처와 같은 내부 기능의 타이밍을 제어합니다. 두 클럭은 내부적으로 생성되며, 장치 간의 변동은 약 10% 정도입니다. ADPD188BI는 두 클럭에 대한 간단한 보정 절차를 제공합니다.
32kHz 클럭 보정
이 절차는 출력 데이터 속도와 관련된 항목들을 보정합니다. 정확한 데이터 속도가 중요한 항목에서는 이 클럭의 보정이 중요합니다. 다음 단계에 따라 32kHz 클럭을 보정할 수 있습니다:
- 시스템이 처리할 수 있는 가장 높은 샘플링 주파수(예: 2000Hz)로 샘플링 주파수를 설정합니다. 32kHz 클럭은 샘플 타이밍을 제어하며, 이 주파수는 GPIO0 핀을 통해 쉽게 접근할 수 있습니다. 레지스터 0x02의 Bits[2:0]에 적절한 값을 써서 인터럽트를 구성하고, 레지스터 0x01의 Bit 5 또는 Bit 6에 0을 써서 샘플링 주파수에서 인터럽트가 발생하도록 설정합니다. GPIO0 핀을 모니터링하여 인터럽트 주파수가 설정된 샘플링 주파수와 일치하는지 확인합니다.
- 모니터링된 인터럽트 주파수가 설정된 샘플링 주파수보다 낮으면 **CLK32K_ADJUST 비트(레지스터 0x4B, Bits[5:0])**를 줄입니다. 모니터링된 주파수가 더 크면 CLK32K_ADJUST 비트를 증가시킵니다.
- 모니터링된 인터럽트 신호 주파수가 설정된 샘플링 주파수와 가까워질 때까지 1단계를 반복합니다.
32MHz 클럭 보정
이 절차는 샘플 기간 내의 세부 타이밍과 관련된 항목들(예: LED 펄스 폭 및 간격)을 보정하며, 32kHz 클럭이 이미 보정되었음을 전제로 합니다. 32MHz 클럭을 보정하려면 다음 단계를 따릅니다:
- 레지스터 0x5F, Bit 0에 0x1을 씁니다.
- CLK_RATIO 계산을 활성화하려면 레지스터 0x50, Bit 5 (CLK32M_CAL_EN)에 0x1을 씁니다. 이 기능은 32kHz 클럭의 두 사이클 동안 32MHz 클럭 사이클 수를 셉니다. 이 기능이 활성화되면, 이 값은 레지스터 0x0A, Bits[11:0]에 저장되며, 이 비율은 일반적으로 2000(0x07D0)입니다.
- 다음 공식을 사용하여 32MHz 클럭 오차를 계산합니다:
클럭 오차 = 32MHz × (1 − CLK_RATIO/2000) - 다음 식을 사용하여 레지스터 0x4D의 Bits[7:0]에 주파수를 조정합니다:
CLK32M_ADJUST = 클럭 오차 / 109kHz - 레지스터 0x50, Bit 5에 0x0을 써서 CLK_RATIO 기능을 재설정합니다.
- 원하는 정확도가 달성될 때까지 1단계부터 5단계까지 반복합니다.
- 레지스터 0x5F, Bit 0에 0x1을 써서 GPIO0 핀을 정상 작동 모드에 맞게 재설정합니다.
이 절차는 32kHz와 32MHz 클럭을 보정하여 정확한 타이밍과 성능을 제공합니다.
GPIO0 및 GPIO1에서 사용할 수 있는 선택적 타이밍 신호
ADPD188BI는 시스템 동기화를 용이하게 하고 유연한 트리거 옵션을 제공하기 위해, 다양한 타이밍 신호를 GPIO0 및 GPIO1 핀을 통해 제공합니다. 각 GPIOx 핀은 다른 드라이버와 버스를 공유하는 경우 오픈 드레인 출력으로 구성할 수 있으며, 항상 버스를 구동하도록 설정할 수도 있습니다. 또한, 두 출력 모두 타이밍 신호가 기본값과 반대로 작동해야 하는 경우에 사용할 수 있는 극성 제어 기능을 가지고 있습니다.
GPIOx 제어 설정 (Table 16)
핀 이름 | 레지스터, 비트 | 설정 값 | 설명 |
---|---|---|---|
GPIO0 | 0x02, Bit 0 | 0: 극성 액티브 하이 1: 극성 액티브 로우 | |
0x02, Bit 1 | 0: 항상 버스를 구동함 1: 어설트 시 버스를 구동함 | ||
0x02, Bit 2 | 0: GPIO0 핀 드라이브 비활성화 1: GPIO0 핀 드라이브 활성화 | ||
GPIO1 | 0x02, Bit 8 | 0: 극성 액티브 하이 1: 극성 액티브 로우 | |
0x02, Bit 9 | 0: 항상 버스를 구동함 1: 어설트 시 버스를 구동함 | ||
0x4F, Bit 6 | 0: GPIO1 핀 드라이브 비활성화 1: GPIO1 핀 드라이브 활성화 |
타이밍 신호 제어
다양한 타이밍 신호는 레지스터 0x0B의 설정을 통해 제어됩니다. 이 레지스터의 **Bits[12:8]**은 GPIO1에서 사용할 수 있는 타이밍 신호를 제어하고, **Bits[4:0]**은 GPIO0에서 사용할 수 있는 타이밍 신호를 제어합니다. 데이터 시트에 설명된 모든 타이밍 신호는 GPIO0, GPIO1 중 하나 또는 양쪽 모두에서 사용할 수 있습니다. 타이밍 다이어그램은 Figure 33 및 Figure 34에 표시되어 있으며, 해당 타이밍 다이어그램에서 사용된 타임 슬롯 설정은 다음과 같습니다.
타이밍 다이어그램에 사용된 ADPD188BI 설정 (Table 17)
레지스터 | 설정 값 | 설명 |
---|---|---|
0x31 | 0x0118 | 타임 슬롯 A: 1개의 LED 펄스 |
0x36 | 0x0418 | 타임 슬롯 B: 4개의 LED 펄스 |
0x15 | 0x0120 | 타임 슬롯 A decimation = 4, 타임 슬롯 B decimation = 2 |
이 설명은 GPIO 핀을 통해 다양한 타이밍 신호를 설정하고 사용할 수 있는 방법을 다루고 있습니다.


다음은 ADPD188BI의 GPIO 핀을 통해 사용할 수 있는 다양한 기능과 설정에 대한 설명입니다.
인터럽트 기능
레지스터 **0x0B의 Bits[12:8] 또는 Bits[4:0]**에 0x01을 설정하면, 해당 핀을 레지스터 0x01의 설정에 정의된 대로 인터럽트 기능을 수행하도록 구성합니다.
샘플 타이밍
레지스터 **0x0B의 Bits[12:8] 또는 Bits[4:0]**에 0x02를 설정하면, 해당 핀에서 현재 샘플의 첫 번째 타임 슬롯이 시작될 때 신호가 발생하고, 마지막 타임 슬롯이 끝날 때 신호가 해제됩니다. 예를 들어, 두 타임 슬롯이 활성화된 경우, 이 신호는 타임 슬롯 A의 시작에서 발생하고, 타임 슬롯 B의 끝에서 해제됩니다. 한 타임 슬롯만 활성화된 경우, 해당 타임 슬롯의 시작에서 신호가 발생하고, 동일한 타임 슬롯의 끝에서 해제됩니다.
펄스 출력
LED 펄스 출력을 복사하는 세 가지 옵션이 있습니다:
- 0x05: 타임 슬롯 A의 LED 펄스를 해당 핀에 복사.
- 0x06: 타임 슬롯 B의 LED 펄스를 해당 핀에 복사.
- 0x07: 두 타임 슬롯의 펄스를 해당 핀에 복사.
출력 데이터 사이클 신호
출력 데이터가 출력 데이터 레지스터나 FIFO에 기록될 때 신호를 제공하는 세 가지 옵션이 있습니다:
- 0x0C: 타임 슬롯 A에 대한 데이터가 기록되었음을 나타내는 신호.
- 0x0D: 타임 슬롯 B에 대한 데이터가 기록되었음을 나타내는 신호.
- 0x0E: 어느 타임 슬롯에서든 데이터가 기록되었음을 나타내는 신호.
이 신호는 타임 슬롯이 끝날 때 발생하며, 다음 샘플이 시작될 때 해제됩니다. 특히 FIFO를 사용하는 경우 이 신호는 유용합니다. 예를 들어, GPIOx 핀 하나는 FIFO 임계값에 도달했을 때 인터럽트를 제공하도록 설정할 수 있고, 다른 GPIOx 핀은 출력 데이터 사이클 신호를 제공하도록 설정할 수 있습니다. 이 신호는 가속도계와 같은 주변 장치를 트리거하여 프로세서에 시간 정렬된 신호를 제공하는 데 사용할 수 있습니다.
fS/2 출력
레지스터 **0x0B의 Bits[12:8] 또는 Bits[4:0]**에 0x0F를 설정하면, 해당 핀에서 샘플링 속도의 절반(fS/2)으로 토글되는 신호가 출력됩니다. 이 신호는 장치가 대기 모드에서 정상 작동 모드로 전환될 때 항상 액티브 로우 상태로 시작하고, 첫 번째 샘플 완료 시 액티브 하이로 전환됩니다.
로직 0 출력
레지스터 **0x0B의 Bits[12:8] 또는 Bits[4:0]**에 0x10을 설정하면, 해당 핀에서 로직 0 출력이 제공됩니다.
로직 1 출력
레지스터 **0x0B의 Bits[12:8] 또는 Bits[4:0]**에 0x11을 설정하면, 해당 핀에서 로직 1 출력이 제공됩니다.
32kHz 오실레이터 출력
레지스터 **0x0B의 Bits[12:8] 또는 Bits[4:0]**에 0x13을 설정하면, 해당 핀에서 온보드 32kHz 오실레이터의 복사본 신호가 제공됩니다.
이 설정들을 통해 ADPD188BI의 GPIO 핀을 다양한 방식으로 구성하여 시스템 동기화 및 데이터 처리에 유연하게 사용할 수 있습니다.