Hola.
Las pistas de USB no solo tienen que tener la misma longitud sino que deben rutearse con 90 ohms de impedancia característica en modo diferencial (+- 15%). No respetar estas condiciones supone un pobre o nulo funcionamiento.
Por otro lado, no veo que estés conectando la señal VBus al LPC, ojo que hay ciertas restricciones en cuanto a la máxima tensión en VBus dependiendo o no de la presencia de VDD en el LPC.
No está la resistencia de 1.5K pull up a VDD en D+ o D- de acuerdo a si el LPC es un full bandwidth device (pull up en D+) o low bandwidth device (pull up en D-). No se pueden utilizar las resistencias internas del puerto de pull up porque el host tiene resistencias pull down de 15K en D+ y D-
También te recomiendo que coloques las resistencias en serie de 33 ohms (si es SMD mejor) en D+ y D-
Otra cosa importante es el clock (aunque supongo que están usando una placa Arduino o similar que ya cumple con las especificaciones)
Lo mejor es ver los diagramas de conexión de la hoja de datos del LPC1769 y los requisitos de los cristales u osciladores a utilizar.
Saludos
Mg. Ing. Sergio Lapilli
Enviado desde Correo para Windows 10
De: gomezax...@gmail.com
Enviado: lunes, 5 de abril de 2021 11:41 p. m.
Para: Embebidos32
Asunto: [embeb32] Problema con USB en LPCXpressoo (LPC1769)
Buenas noches,
Estamos haciendo Proyecto Final para Ingeniería Electrónica en UTN FRA y se nos presentó un problema al querer utilizar USB con el LPCXpresso (el cual ya había utilizado con USB para otro proyecto en el año 2017).
Estoy utilizando LPCXpresso v8.2.2_650 compilando código de ejemplo de LPCOpen (v2.10) de los siguientes proyectos (sin editar):
En ninguno de los ejemplos (habiendo importado los proyectos base lpc_chip_175x_6x y lpc_board_nxp_lpcxpresso_1769) me funciona el USB una vez que compilo, debugueo e intento conectar los pines 36 y 37 (Data+ y Data -) (y GND) a un conector USB Mini como el de la foto adjunta al final de este mensaje.
El problema puntual que encuentro depurando el código es que cuando no hay nada conectado al USB el LPC siempre ingresa a la función de:
void USB_IRQHandler(void)
{
USBD_API->hw->ISR(g_hUsb);
}
Una vez que conecto los pines al USB de la PC (por medio de un cable USB a MiniUSB) el LPC entra al handler una sola vez y luego se queda en el ciclo del while (1) del main.
En ese momento intento listar los USBs disponibles en mi PC y resulta que no veo listado el dispositivo que corresponde.
Una vez que se desconecta, se repite el mismo funcionamiento.
El Vendor | ID esperado es (según hid_desc.c):
ALIGNED(4) const uint8_t USB_DeviceDescriptor[] = {
...
WBVAL(0x1FC9), /* idVendor */
WBVAL(0x0086), /* idProduct */
En la segunda foto el pin de la tira de pines de la derecha en su parte superior está el pin #1 del LPCXpresso. Mientras que en la tira de pines de la izquierda en su parte superior se encuentra el pin #28 del LPCXpresso, teniendo el pin #36 conectado a Data- (no se aprecia bien en la foto) y el #37 conectado a Data+
Tal y como lo indica el esquemático del LPC:
Asimismo, la segunda versión del conector:
El conexionado es exactamente el mismo que el anterior.
Cualquier crítica es bienvenida.
Saludos
--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/embebidos32/a6166725-ad5d-4a5e-bd8c-47f9ea7441c6n%40googlegroups.com.
Hola,
Si no usas VBus, asegúrate que el registro PINSEL de ese pin (no recuerdo cuál es) debe estar en 00. Esto hace que el sensor de conectado VBus esté siempre en 1.
Nunca es tarde para chequear los PINSEL de todas las señales de USB, pero chequeado con el debugger en el medio del programa. A veces, otra parte del programa pisa los registros y alteran el funcionamiento de los periféricos.
La resistencia de 1.5K debería estar conectada para que el host detecte el dispositivo, en este caso el pin de USB_CONN -> PX.X=0. Al usar la señal USB_CONN podés controlar la conexión por software sin necesidad de desconectar el cable.
Podés probar a colocar una resistencia de 1.5K fija en el D- (y desactivar la señal USB_CONN, PX.X=1) para seleccionar menos velocidad y chequear si hay alguna mejora.
Saludos.
Sergio
Enviado desde Correo para Windows 10
De: gomezax...@gmail.com
Enviado: martes, 6 de abril de 2021 4:37 p. m.
Para: Embebidos32
Asunto: Re: [embeb32] Problema con USB en LPCXpressoo (LPC1769)
Hola Sergio,
Como bien comentás claramente mi ruteado no es el ideal y entiendo estoy flaqueando en ese aspecto. En base a ello voy a probar conectar wirerap trenzado para evitar el estaño y sino, deberé ir al ruteado por cobre como prueba definitiva.
En cuanto al VBus realmente nunca lo utilicé. Yo podría alimentar al LPC mediante este
En cuanto a la resistencias lo bueno es que el kit LPCXpresso ya las provee:
En la segunda foto el pin de la tira de pines de la derecha en su parte superior está el pin #1 del LPCXpresso. Mientras que en la tira de pines de la izquierda en su parte superior se encuentra el pin #28 del LPCXpresso, teniendo el pin #36 conectado a Data- (no se aprecia bien en la foto) y el #37 conectado a Data+
Tal y como lo indica el esquemático del LPC:
Asimismo, la segunda versión del conector:
El conexionado es exactamente el mismo que el anterior.
Cualquier crítica es bienvenida.
Saludos
--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/embebidos32/a6166725-ad5d-4a5e-bd8c-47f9ea7441c6n%40googlegroups.com.
--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/embebidos32/eb27af99-b457-424a-8462-a4ab690b84cbn%40googlegroups.com.



