2014-01-30 6 views
1

ADC를 읽는 데 PIC24F16KA101을 사용하고 있습니다. Adc 신호가 무작위로 오게되어 Mcu를 절전 모드로 전환합니다. 저는 신호가 임계 값을 넘을 때 MCU를 깨우고 싶습니다. 내가 이것을봤을 때, 나는 이것과 관련된 많은 주제를 발견했지만, 나는이 문제에서 명확히하고 싶다. 이 문제에 대한 해결책을 찾았지만 최소 전력 소모로 솔루션을 원합니다.ADC 트리거의 PIC 웨이크 업

  1. ADC를 최대 주파수로 샘플링합니다 (신호는 무작위, 고주파 펄스 임). Mcu가 깨어있을 때 시스템 클록 (32MHz FRCPLL을 사용함)을 기반으로 Adc 클럭을 사용하려면 ADC가 슬립 모드로 샘플링 될 수 있도록 슬립 모드로 전환되기 전에 ADRC 내부 클럭으로 변경해야합니다. 이렇게하면 임계 값이 높을 때 ADC 깨우기 우선 순위를 CPU 우선 순위보다 높게 설정하여 모듈을 깨울 수 있기를 바랍니다. 하지만이 점에 대해서는 adc를 사용하여 지속적으로 샘플을 작성했습니다.

  2. 비교기 모듈에 동일한 Adc 입력을 제공하고 처리하지 않는 동안 Mcu를 절전 모드로 전환하고 ADC를 끕니다. 모듈은 입력이 비교기 임계 값보다 높을 때 을 깨우고 ADC를 시작합니다. 내 생각에,이 경우, 비교기는 절전 모드에서 작동합니다. 하지만 중요한 신호 정보를 놓칠 수도 있습니다. (비교기 인터럽트 후 adc를 켜는 데 시간이 걸릴 수 있습니다.)

  3. 타이머를 사용하여 지정된 간격으로 adc를 샘플링하는 다른 방법은 신호가 무작위이므로 신호가 누락 될 수 있습니다.

어느 쪽이 더 좋을까요? 다른 해결책이 있습니까? 제발 도와주세요 .... 또한, 나는 내부 ADRC 발진기의 주파수를 알고 싶습니다.

+0

하이, 누구든지이 문제에 대해 알고 있습니까? – ponnus

답변

0

변환해야 할 신호의 길이에 따라 방법 2가 작동 할 수 있습니다. 전환에 소요되는 시간을 데이터 시트에서 확인할 수 있습니다.

귀하의 ADRC 발진기의 주파수는 귀하에게 달려 있습니다. AD1CON3의 15 번 비트는 내부 오실레이터 또는 외부 오실레이터를 선택할 수있게합니다. 내부를 선택하면 5 : 0 비트를 설정하여 CPU 주파수의 배수로 만들 수 있습니다.