PICkit™2 Firmware'ini PIC18F25K50'ye taşıdım. Bir kontrol edilmesi gerek.

Başlatan ipli jeton, 22 Ekim 2023, 15:02:40

ipli jeton

Merhaba. PICkit2 firware'ini PIC18f2550'den PIC18F25K50'ye taşıma girişiminde bulundumç

Çalışıp çalışmadığının kontrol edilmesi lazım.

UART fonksiyonunda Orjinalde RA2 (TGT_ICSP_DAT) karşılaştırıcının -'sine girilip içerden gelen voltaj referansı ile karşılaştırılıyor. 25K50'nin karşılaştırıcılarını RA2'ye bağlamanın yolunu bulamadığım için VDD_TGT_FB girişini karşılaştırıcıya girip içerden gelen 2.048V ile karşılaştırdım. Özellikle buranın bir test edilmesi gerekiyor. Gerekirse buraya başka çözüm bulmaya çalışacağız.

void EnterUARTMode(unsigned char *usbindex)
{
    INTCONbits.GIE = 0;     // interrupts off

    // stop ADC interrupts
    VppVddADCTMR1_Stop();
    ADCON0 = ADC_VDD_Tgt_Ch;    // but re-enable ADC module.
    ADCON0bits.GO = 1;          // & start a conversion.

    // init UARTStatus values
    UARTStatus.TimerBaudLoadL = inbuffer[(*usbindex)++];// overhead about 3us per bit.
    UARTStatus.TimerBaudLoadH = inbuffer[(*usbindex)++];
    UARTStatus.RXbits = 0;
    UARTStatus.RXbyte = 0;
    UARTStatus.TXbits = 0;
    UARTStatus.TXByte = 0;
    UARTStatus.LastRXByte = 0;
    UARTStatus.NewRX = 0;

    // Set UART mode bit
    Pk2Status.UARTMode = 1;

    // Setup IO.  ICSPCLK = TX, ICSPDAT = RX
    tris_ICSPCLK = 0;   // output
    ICSPCLK_out = 1;    // idle
    tris_ICSPDAT = 1;   // input

    tris_AUX = 1;       // tri-state
    Vpp_ON = 0;         // VPP off
    MCLR_TGT = 0;       // release

    // Setup Comparator & Voltage Reference
 // CMCON = 0x2E;   // C2 inverted, C2 Vin- = RA2 (C1 Vin- = RA3) Mode = 110   //Aşağıdakileri denemek için
 // CVRCON = 0xA5;      // CVref = 2.0V @ Vdd 5.0V                             //devre dışı bıraktım.
    [b]
    VREFCON0 = 0xE0;    // Bunları       //FVR aktif edip 2.048V'a ayarladık.
    CM2CON0 = 0x95;        // bir           //C2+ C12IN1-(RA1-VDD_TGT_FB) bağladık.
    CM2CON1 = 0x30;        // deneyelim.       //C2'nin -'sini FVR'e bağladık.[/b]
                       

    Delay10TCYx(12);    // delay 10us for comparator mode change / CVref settling time

    // Setup Timers
    PIE1bits.TMR1IE = 0;    // RX timer
    PIE2bits.TMR3IE = 0;    // TX timer
    T1CON = 0x91;           // 1:2 prescale, running
    T3CON = 0x91;           // 1:2 prescale, running

    // enable interrupts
   // PIR2bits.CMIF = 0;  // clear flag            //Aşağıdakileri bir
   // PIE2bits.CMIE = 1;  // enable comparator ints.    //deneyelim.

    PIR2bits.C2IF = 0;        // Bir deneyelim
    PIE2bits.C2IE = 0;        //bakalım.
   
   

    INTCONbits.GIE = 1;     // interrupts on
}