發新話題
打印

C8051F340 無法燒錄問題..

C8051F340 無法燒錄問題..

打擾了
請問一下...
使用Silicon Lab IDE/使用USB燒錄治具(EC30000EC5F)
連線未燒錄空MCU可以連線
但燒錄完成之後,就再也無法連線下載
想請問一下,程式何處沒設定好
導致無法下載燒錄?
如何重設MCU再度燒錄?


void PCA_Init()
{
         PCA0CN    = 0x40;
         PCA0MD    &= ~0x40;
         PCA0MD    = 0x09; // Timer0 int->0x04
         PCA0CPM0  = 0xC2;
         PCA0CPM1  = 0xC2;
         PCA0CPM2  = 0xC2;
         PCA0CPM3  = 0xC2;
         PCA0CPL0  = 0xFF;
         PCA0CPH0  = 0xFF;
         PCA0CPL1  = 0xFF;
         PCA0CPH1  = 0xFF;
         PCA0CPL2  = 0xFF;
         PCA0CPH2  = 0xFF;
         PCA0CPL3  = 0xFF;
         PCA0CPH3  = 0xFF;


}


void Port_IO_Init()
{
    // P0.0  -  Skipped,     Open-Drain, Digital
    // P0.1  -  Skipped,     Open-Drain, Digital
    // P0.2  -  Skipped,     Open-Drain, Digital
    // P0.3  -  Skipped,     Open-Drain, Digital
    // P0.4  -  Skipped,     Open-Drain, Digital
    // P0.5  -  Skipped,     Open-Drain, Digital
    // P0.6  -  CEX0 (PCA),  Open-Drain, Digital
    // P0.7  -  CEX1 (PCA),  Open-Drain, Digital

    // P1.0  -  CEX2 (PCA),  Open-Drain, Digital
    // P1.1  -  CEX3 (PCA),  Open-Drain, Digital
    // P1.2  -  Skipped,     Open-Drain, Digital
    // P1.3  -  Skipped,     Open-Drain, Analog
    // P1.4  -  Skipped,     Open-Drain, Analog
    // P1.5  -  Skipped,     Open-Drain, Analog
    // P1.6  -  Skipped,     Open-Drain, Analog
    // P1.7  -  Skipped,     Open-Drain, Analog

    // P2.0  -  Unassigned,  Open-Drain, Digital
    // P2.1  -  Unassigned,  Open-Drain, Digital
    // P2.2  -  Unassigned,  Open-Drain, Digital
    // P2.3  -  Unassigned,  Open-Drain, Digital
    // P2.4  -  Unassigned,  Open-Drain, Digital
    // P2.5  -  Unassigned,  Open-Drain, Digital
    // P2.6  -  Unassigned,  Open-Drain, Digital
    // P2.7  -  Unassigned,  Open-Drain, Digital

    P1MDIN    = 0x07;
    P0SKIP    = 0x3F;
    P1SKIP    = 0xFC;
    XBR1      = 0x44;
   
}

void Oscillator_Init()
{
//        OSCICN          = 0x87;
    int i = 0;
    PFE0CN    &= ~0x20;
    FLSCL     = 0x10;
    PFE0CN    |= 0x20;
    CLKMUL    = 0x80;
    for (i = 0; i < 20; i++);    // Wait 5us for initialization
    CLKMUL    |= 0xC0;
    while ((CLKMUL & 0x20) == 0);
    CLKSEL    = 0x02;
    OSCICN    = 0x87;
}

void Interrupts_Init()
{
    EIE1      = 0x10;// fot PCA0 interrupt
    IE        = 0x80;

}

// Initialization function for device,
// Call Init_Device() from your main program
void dvC8051F4XXInitial(void)
{
    PCA_Init();
    Port_IO_Init();
    Oscillator_Init();
    Interrupts_Init();

}
int state_RGB=0;


static void PCAIsr (void) interrupt 11 using 2
{       
        PCA0CN &=0x7F;    // clear CF flag
    switch (state_RGB)
            {
            case 0:
                        PCA0CPL2=0x80;
                        PCA0CPH2=0x80;
                        PCA0CPL1=0xFF;
                        PCA0CPH1=0xFF;
                        PCA0CPL0=0xFF;
                        PCA0CPH0=0xFF;       
                        state_RGB=1;
                        break;       
            case 1:
                        PCA0CPL2=0xFF;
                        PCA0CPH2=0xFF;
                        PCA0CPL1=0x80;
                        PCA0CPH1=0x80;
                        PCA0CPL0=0xFF;
                        PCA0CPH0=0xFF;
                        state_RGB=2;
                        break;

                case 2:
                        PCA0CPL2=0xFF;
                        PCA0CPH2=0xFF;
                        PCA0CPL1=0xFF;
                        PCA0CPH1=0xFF;
                        PCA0CPL0=0x80;
                        PCA0CPH0=0x80;       
                        state_RGB=0;
                        break;               
            }       



}
void main (void)
{
//***
  dvC8051F4XXInitial();
  
  while(1){
  }

}
//-----

TOP

補充說明 :
SYSCLK=24.5Mhz * 2
PCA使用16bit PWM

TOP

對不起...標題誤植
我使用的是8051F410

TOP

從你提供的訊息看不出問題耶。
麻煩請跟 茂宣業務/卜小姐(分機#134) 聯繫,並提供你的硬體及Source code,這樣較能幫你趕快找出問題。

TOP

發新話題