pic18f45550 проблема с USB - PullRequest
0 голосов
/ 09 июля 2011

Я пытаюсь создать очень простое устройство связи USB, используя рис 18f4550 с примером микроэлектроники по умолчанию без изменений (меняются только с аппаратным обеспечением, что у меня нет пары 100nf, подключенных к vusb, поэтому я заменил их на 470 мкФ, и я не сделалНе ставьте pf с моим кварцевым генератором)

Аппаратное обеспечение: Schematic for usb pic18f4550

Код работает очень хорошо с симуляцией Proteus:

unsigned char k;
unsigned char userWR_buffer[64];

const char *text = "MIKROElektronika Compilers ER \r\n";
//**************************************************************************************************
// Main Interrupt Routine
//**************************************************************************************************
void interrupt()
{
  HID_InterruptProc();
}
//**************************************************************************************************
//**************************************************************************************************
// Initialization Routine
//**************************************************************************************************
void Init_Main()
{
        //--------------------------------------
        // Disable all interrupts
        //--------------------------------------
        INTCON = 0;                             // Disable GIE, PEIE, TMR0IE,INT0IE,RBIE
        INTCON2 = 0xF5;
        INTCON3 = 0xC0;
        RCON.IPEN = 0;                          // Disable Priority Levels on interrupts
        PIE1 = 0;
        PIE2 = 0;
        PIR1 = 0;
        PIR2 = 0;

        ADCON1 |= 0x0F;                         // Configure all ports with analog function as digital
        CMCON  |= 7;                            // Disable comparators
        //--------------------------------------
        // Ports Configuration
        //--------------------------------------
        TRISA = 0xFF;
        TRISB = 0xFF;
        TRISC = 0xFF;
        TRISD = 0;
        TRISE = 0x07;

        LATA = 0;
        LATB = 0;
        LATC = 0;
        LATD = 0;
        LATE = 0;
        //--------------------------------------
        // Clear user RAM
        // Banks [00 .. 07] ( 8 x 256 = 2048 Bytes )
        //--------------------------------------
}
//**************************************************************************************************

//**************************************************************************************************
// Main Program Routine
//**************************************************************************************************

void main() {
 char i;

  Init_Main();

  HID_Enable(&userWR_buffer, &userWR_buffer);

  Delay_ms(1000);
  Delay_ms(1000);
  while(1) {
    Delay_ms(1000);
    i=0;
    while(text[i]) {
      userWR_buffer[0]= text[i++];
      while (!HID_Write(&userWR_buffer, 1));
      }
    }

  Delay_ms(1000);
  HID_Disable();
}
//**************************************************************************************************

1 Ответ

0 голосов
/ 24 ноября 2012

Я не ставил pf с моим кварцевым генератором

Не думаю, что это будет работать.Проверьте с помощью осциллографа, что происходит на вашем кристалле.Ваше устройство просто не имеет тактового входа, поэтому оно никогда ничего не выполняет.

...