TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: dongustavo en 25 de Octubre de 2017, 11:58:53

Título: Comparador en PIC18F97J94
Publicado por: dongustavo en 25 de Octubre de 2017, 11:58:53
Hola a todos,

estoy usando un PIC18F97J94.
Tengo un raro problema con el comparador y el módulo SPI, al cual tengo conectada una memoria flash.

Si habilito la CVREF del comparador desde el pin Vref+, puedo leer bien la memoria.
Si habilito la CVREF del comparador a AVDD, no la puedo leer.

El módulo SPI está mapeado por PPS-Lite:
    //REMAP
    OSCCON2bits.IOLOCK = 0;
    RPINR8_9 = 0x02<<4;    //SDI1 to RP8
    RPOR8_9 = 0x04<<4;    //SDO1 to RP9
    RPOR6_7 = 0x03<<4;    //SCK1 to RP7
    RPOR16_17 = 0x22;  //USART 3
    RPINR4_5 = 0x44;   //USART 3
    OSCCON2bits.IOLOCK = 1;

---------------------------------------------------------------------
Legué a hacer esto para que funcione, pero es desprolijo.
xNHABRPM la llamo cada vez que voy a acceder a la memoria.
xHABRPM luego de accederla.

void xNHABRPM(void){
    CM1CON = 0b10100110; //desah int
    CVRCONL = 0b10010000; // VREF+
    PIR6bits.CMP1IF = 0; //entra flanco x comparador y dispara timer1
    Delay1TCYx(100);
    PIR6bits.CMP1IF = 0; //entra flanco x comparador y dispara timer1
}

void xHABRPM(void){
    CVRCONL = 0b11000000; //AVDD COMO SOURCE
    PIR6bits.CMP1IF = 0; //entra flanco x comparador y dispara timer1
    Delay1TCYx(100);
    PIR6bits.CMP1IF = 0; //entra flanco x comparador y dispara timer1
    CM1CON = 0b10110110;
}


En otro lado ajusto el nivel del comparador y para chequear lo saco por un pin y está OK.
La entrada del comparador está como entrada y como analógica:
ANCON1bits.ANSEL6 = 1;  // INPUT

El comparador genera una interrupción.

En el data sheet:

bit 5-4 CVRPSS<1:0>: Comparator VREF Positive Source (VPOSSRC) Selection bits
11 = Reserved, do not use. Positive source is floating
10 = VBG (Band gap)
01 = VREF+ ------------------------------FUNCIONA LA MEMORIA
00 = AVDD  ------------------------------ NO FUNCIONA LA MEMORIA


La verdad me tiene loco. No encuentro ninguna relación ente CVREF y la SPI o el PPS LIte, ni con el PIN RB0 donde está contectada la SALIDA de la memoria...

Saludos a todos.