ICD3 + PIC + MPLAB: el ID del dispositivo de destino 0x0 no coincide con el ID del dispositivo esperado

7

Diseñamos una placa con un microchip PIC24HJ256GP610A en él. Hemos utilizado con éxito un ICD3 para programar y depurar el PIC en Explorer 16 junta de desarrollo. Creemos que hemos seguido las pautas de diseño que se encuentran en Guía del usuario del depurador :

Editar:Utilizamosunaresistenciapullupde4.6kentreMCLRyVDD.

NuestrainterfazPCEG/PGEDsonlospines26/27enelPIC.Estaslíneasestánconectadasexclusivamentealchipynoseutilizanparaningunaotracosa.

AlimentamosnuestraplacaexternamenteyelPICestáconectadoaestecircuitodesuministrodeenergía(3.3voltios,suficienteenergíadeestafuente).

Editar:Utilizamosalgunoscondensadoresdedesacoplamientoennuestrosrielesdesuministro(C2,C8,C9yC16,C18):

Sinembargo,cuandointentamosconectarycargarnuestroprogramaalPIC,recibimoselsiguientemensajeenlaventanaderesultadosdeMPLABX:

TargetdetectedTargetDeviceID(0x0)doesnotmatchexpectedDeviceID(0x77b0000).

Esteesunextractodeldiseñodenuestrotablero:

¿Alguien puede ver el error o explicar qué podría salir mal?

    
pregunta Norbert

4 respuestas

3

Editado según la información actualizada proporcionada.

0x0 generalmente significa que no hay comunicación. Ya sea un dispositivo defectuoso, malas conexiones en el ICSP o problemas de alimentación. Confío en que su riel 3V3 "funcione" por ahora.

Su resistencia _MCLR y el uso del puerto ICSP 1 no deberían plantear problemas con el depurador.

¿Tiene suficiente desacoplamiento, según la hoja de datos de PIC24? Los condensadores de desacoplamiento deben instalarse tan físicamente cerca del PIC24 como lo permitan el diseño y los pines:

Puedeverqueparacadapar\$V_{DD}\$y\$V_{SS}\$,necesitaunatapadecerámicade100nFyunatapade10microfaradiosen\$V_{CAP}\$.Loquesemuestraensusesquemasparaelriel3V3noparecesersuficiente,yloqueesmásimportante,notienenadaen\$V_{CAP}\$(locualesmuymalo).)Segúnlapágina20delahojadedatos:

  

SerequiereuncondensadordeESRbajo(<5ohmios)enelpinVCAP,queseusaparaestabilizarelvoltajedesalidadelreguladordevoltaje.ElpinVCAPnodebeestarconectadoaVDD,ydebeteneruncondensadorentre4.7μFy10μF,16Vconectadoatierra.Eltipopuedeserdecerámicaotantalio.ConsultelaSección24.0"Características eléctricas" para obtener más información.   información.

Corrija su desacoplamiento y déjenos saber qué sucede.

    
respondido por el Adam Lawrence
3

Estoy de acuerdo con todo lo que dijo @madmanguruman. Aquí hay algunas cosas más que vería.

1) ¿Qué tan seguro está de que el PIC24 está soldado correctamente? Esto incluye todos los pines que hacen la conexión, ninguno cortocircuitado, orientación correcta, etc. También verifique que su encabezado de programación no esté invertido (6-1 en lugar de 1-6).

2) ¿Se puede probar PCEG / PGED con un alcance para ver si se alternan entre la programación? Si es así, puede eliminar a su programador como una fuente de error. Si no cambian, también podría ser una mala conexión en su tablero al tirarlos hacia abajo.

    
respondido por el Matt
1

Coloque un límite de \ $ 10 \ mu F \ $ en el pin \ $ V_ {reg} \ $ (pin 85). El núcleo PIC24 funciona con 1.8V y está regulado internamente. Esa tapa es necesaria para que la parte funcione. Lee la hoja de datos.

    
respondido por el Matt Young
0

Tuve el mismo tipo de mensaje de error que resultó ser software y no hardware como lo indica el mensaje de error. Había compilado un código que no daba errores y había cargado el objetivo correctamente. Cuando cambié la velocidad en baudios en un cálculo #define para una interfaz serial bit-bang de 4800bps a 1200bprs sin error de compilación e intenté cargar el código en el destino a través de un ICD3, se dio un mensaje de error: "ID de dispositivo de destino (0x2060 ) no coincide con el ID de dispositivo esperado (0x2080) ". El diseño del software utiliza el registro de temporizador de 8 bits sin firma TMR0 para sincronizar la velocidad de bits de comunicaciones en serie. Resulta que al cambiar la velocidad en baudios, el cálculo generó un valor superior a TMR0, lo que generó un mensaje de error en el momento de la carga. Una vez que ajusté el preescalador para TMR0, los cálculos dimensionaron correctamente el valor del temporizador para acomodar el rango del registro del temporizador de 8 bits y se suspendió el mensaje de error de ID del dispositivo de destino.

    
respondido por el Ed Carr

Lea otras preguntas en las etiquetas