Forma de onda de CVD diferencial en la foto 18F45K50

0

Estoy usando la imagen 18f45k50 para el botón táctil capacitivo usando un CVD deferencial. Mi botón capacitivo funciona. Sin embargo, no puedo obtener la forma de onda de cfer deferencial estándar sugerida por el microchip.

Alguien ha trabajado en CVD deferencial y podría guiarme o indicarme la dirección correcta

actualmente es así como se ve mi forma de onda en un alcance que es muy diferente a la forma de onda estándar sugerida por el microchip

forma de onda estándar

Edit2:NuevaformadeondayelcódigoparaelcanalADC

Y aquí está el código

unsigned long int result;
ADCON0bits.CHS = 14;// Set channel to the previous sensor
CVD_CHARGE_TRIS=0; Nop();CVD_CHARGE_LAT=1;
channel1=0;trischannel1=0;
// Start Pre-charge
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();
trischannel1=1;//Disconnect current sensor from GND (HI-Z)
GUARD_LAT=1;
//Acquisition 
ADCON0bits.CHS=adcchanselect[0];
Nop();Nop();
ADCON0bits.GO_NOT_DONE = 1; // Start conversion
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();
while (ADCON0bits.GO_NOT_DONE){}
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();
//trischannel1=0;//Ground sensors
//CVD_CHARGE_LAT=0;
result=ADC_GetConversionResult();
//Scan B
ADCON0bits.CHS = 14;// Set channel to the previous sensor
CVD_CHARGE_TRIS = 0;Nop();CVD_CHARGE_LAT = 0;//Set previous sensor to Gnd (discharge internal)
channel1=1;trischannel1=0;//Set current sensor to GND (charge external)
// Start Pre-charge
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
trischannel1=1;//Disconnect current sensor from GND (HI-Z)
GUARD_LAT=0;
//Acquisition
ADCON0bits.CHS=adcchanselect[0];
Nop();Nop();
ADCON0bits.GO_NOT_DONE = 1; // Start conversion 
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();
while (ADCON0bits.GO_NOT_DONE){}
channel1=0;    // Ground sensors
trischannel1=0;
result+=(1024-ADC_GetConversionResult());
return result;
    
pregunta Shravan Singh

1 respuesta

0

En primer lugar, supongo;

  • Se refiere a usar el ADC incorporado sin ningún hardware externo según la nota de aplicación AN1478 de Microchip ( enlace )
  • Su alcance está configurado para acoplamiento de CA (de lo contrario, el pico de -1.5V habría frenado su PIC)

Lo más probable es que simplemente el hecho de configurar su osciloscopio en el acoplamiento de CC le proporcionará una forma de onda que se asemejará mucho más a la imagen que proporcionó (también en la nota de la aplicación que he vinculado). También recomendaría aumentar su tiempo dedicado a la fase de precarga. Es difícil estar seguro en el acoplamiento de CA, pero me parece que no tiene tiempo para alcanzar el voltaje de escala completa antes de la transición a la fase de adquisición.

    
respondido por el Mathieu L.

Lea otras preguntas en las etiquetas