PIC32 med USB-host

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
bos
Inlägg: 2273
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

PIC32 med USB-host

Inlägg av bos »

Jag håller på och petar på ett USB host-projekt i en PIC32MM0128GPM048 men har stött på lite patrull.

Med MCC har jag lagt till modulerna USB-host samt UART (för att skicka debugtext till datorn). Jag har även rakt av kattenpejstat keyboard-exemplet (app_host_hid_keyboard.*) som finns i MLA, och lagt in debug-strängar i nästan alla funktioner, bara för att få ett hum om var körningen befinner sig. Jag strömsätter kretskortet, kopplar in ett USB-tangentbord, och får upp detta i terminalen:

Kod: Markera allt

HOST: Initializing DETACHED state.
app_host: Attach keyboard
[>HOST: Starting settling delay. 
Sen händer ingenting. Exempelkoden ska till debugterminalen eka alla tangenter som trycks, men detta sker inte. Caps lock etc reagerar inte vid tryck, så på något sätt har tangentbordet inte lyckats presentera sig för min PIC32.

Frågan jag ställer mig själv är "Varför?", eftersom koden (exempelkod + USB-stack) kommer direkt från Microchip helt utan modifieringar.

Hur kan jag felsöka detta?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: PIC32 med USB-host

Inlägg av Micke_s »

Inte så MCU:n går i ”hard-fault”, som en ARM kan göra när man petar på minne på fel ställe?

Exemplet borde dock fungera.

Alternativ lite för svag spänningsmatning.
bos
Inlägg: 2273
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Re: PIC32 med USB-host

Inlägg av bos »

CPUn verkar inte låsa sig, men efter att ha petat in debug-strängar på fler ställen såg jag detta:

Kod: Markera allt

app_host: Attach keyboard     <- Keyboard sätts i
[>HOST: Starting settling delay.
SUBSUBSTATE_WAIT_FOR_SETTLING
SUBSUBSTATE_WAIT_FOR_SETTLING
SUBSUBSTATE_WAIT_FOR_SETTLING
SUBSUBSTATE_WAIT_FOR_SETTLING
SUBSUBSTATE_WAIT_FOR_SETTLING
SUBSUBSTATE_WAIT_FOR_SETTLING
SUBSUBSTATE_WAIT_FOR_SETTLING
SUBSUBSTATE_WAIT_FOR_SETTLING
SUBSUBSTATE_WAIT_FOR_SETTLING
SUBSUBSTATE_WAIT_FOR_SETTLING
SUBSUBSTATE_WAIT_FOR_SETTLING
>HOST: Initializing DETACHED state.  <- Keyboard dras ur
SUBSUBSTATE_WAIT_FOR_SETTLING är en case-gren inuti USBHostTasks(), och körningen/enumeration verkar aldrig komma förbi den:

Kod: Markera allt

    case SUBSUBSTATE_WAIT_FOR_SETTLING:
    #if defined (DEBUG_ENABLE)
      DEBUG_PutString( "SUBSUBSTATE_WAIT_FOR_SETTLING\r\n" );
    #endif

    // Wait for the timer to finish in the background.
    break;
Eftersom MCC/MLA-koden bör fungera så är frågan varför det felar här. Tangentbordet fungerar som det ska i valfri dator.
Skriv svar