интерфейс pcf7991at к ардуино

Я хотел попробовать связать pcf7991at с arduino, я собрал плату, содержащую pcf7991at, следуя схеме, показанной в техническом описании. Я видел, что частота 125 кГц должна быть на выводе CLK pcf, поэтому я спрашиваю вас, можно ли использовать внутренний таймер Arduino, чтобы попытаться проверить, работает ли pcf7991at.

, 👍1

Обсуждение

Вы спрашиваете, может ли Arduino выводить сигнал 125 кГц на один из своих контактов? ...о какой схеме вы говорите?, @jsotola


2 ответа


0

Ардуино действительно может генерировать сигнал частотой 125 кГц. В этом примере генерируется сигнал частотой 125 кГц (рабочий цикл 50 %) на цифровом выводе 3 платы Arduino Uno/Nano с использованием таймера 2.

const int pulsePin = 3;  // обратите внимание на контакт OC2B D3 ! ! !
volatile uint32_t pulseCount = 0;

void setup(){

  pinMode(pulsePin, OUTPUT);

  cli() ;
  TCCR2A = 0;
  TCCR2B = 0;
  TCNT2 = 0;
  OCR2A = 127 ; // f = 125 кГц при тактовой частоте 16 МГц
  OCR2B = (float) OCR2A * 0.5 ; 
  TCCR2A |= (1 << WGM21) | (1 << WGM20) | (1 << COM2B1 ) ; // Режим 7 (быстрый ШИМ)
  TCCR2B |= (1 << CS20) | (1 << WGM22) ;   // пс/1 режим 7
  sei() ;
}

void loop() {
}
,

и как я могу проверить повышение таймера? Мне нужно прочитать определенный регистр, чтобы увидеть, поднялся ли таймер и в конечном итоге установлен на 0 после?, @Gastone Krankenwagen


1

Связь между MCU (Arduino) и микросхемой (PCF7991AT) может работать на любой частоте (например, SPI или I2C). Частота антенны 125 кГц генерируется внутри микросхемы. Но вам нужно установить делитель источника тактирования (ваш кристалл подключен к ИС)

https://datasheet.lcsc.com/lcsc/2208260930_NXP-Semicon-PCF7991AT -1081-M_C5143533.pdf

См. стр. 7 –> 8.4 краткое объяснение стр. 13 –> установить регистр

Надеюсь, это поможет!

,