Estoy trabajando en un tablero personalizado usando una computadora Raspberry Pi en el módulo (COM) (información y esquemas aquí: enlace . El tablero se basa en la Raspberry Pi modelo B (aquí se muestra un esquema: enlace ), ya que utiliza el concentrador USB LAN9512 y el controlador IC de Ethernet en la misma configuración que el modelo B de Rasberry Pi (parte relevante del esquema adjunto). El primer puerto USB descendente en mi placa está conectado a una MCU de Arm Cortex M3 en la misma placa, y la otra está conectada al conector USB para enchufar dispositivos USB externos. La Ethernet está conectada a un conector RJ45 molex con magnéticos integrados.
El problema es que, mientras que otras partes de la placa están funcionando bien hasta ahora, no puedo hacer que la LAN9512 funcione. Conecto la Raspberry Pi COM y accedo a ella a través de una consola serie. Puedo ver el LAN9512 detectado y los controladores correctos se cargan en la salida de syslog. Sin embargo, Ethernet no funciona cuando se conecta un cable, no sucede nada cuando se conecta un dispositivo USB (ya sea el mouse, el teclado o la unidad flash) al puerto USB, y la MCU ARM Cortex no aparece en los dispositivos como un USB COM. puerto (como está configurado en el software). Además, la luz "LINK" de Ethernet está siempre encendida. Básicamente, todo se ve bien desde el puerto ascendente hasta la frambuesa pi cuando se detecta el LAN9512 y se cargan los controladores, pero no funciona nada, ni siquiera genera ningún mensaje en syslog o registro de depuración en la COM de frambuesa.
He intentado todo lo que pude pensar hasta ahora. Busqué cortocircuitos en el LAN9512 IC, reemplacé el IC con uno nuevo (el mismo comportamiento), verifiqué los voltajes en todos los pines del LAN9512 IC y los comparé con los voltajes de la Raspberry Pi en el mismo IC (la única diferencia es ENLACE señal de led, como se muestra en el documento adjunto). Me aseguré de que el cristal estuviera oscilando con un o-scope. Quité los diodos de protección U401. Quité el brazo Cortex MCU. Quité el conector Ethernet. Me aseguré de que todos los componentes estén poblados correctamente. Probé un nuevo módulo COM.
Cuando conduzco la línea GPIO6 en el módulo COM bajo, que está vinculado al RESTABLECIMIENTO de la LAN9512 y vuelve al nivel alto nuevamente, obtengo
la siguiente salida:
[ 1041.165108] usb 1-1: USB disconnect, device number 2
[ 1041.165143] usb 1-1.1: USB disconnect, device number 3
[ 1041.165408] smsc95xx 1-1.1:1.0 eth0: unregister 'smsc95xx' usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet
[ 1041.165472] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
lsusb:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Volver a lo alto
[ 1137.826768] Indeed it is in host mode hprt0 = 00021501
[ 1138.006764] usb 1-1: new high-speed USB device number 4 using dwc_otg
[ 1138.006958] Indeed it is in host mode hprt0 = 00001101
[ 1138.207088] usb 1-1: New USB device found, idVendor=0424, idProduct=9512
[ 1138.207123] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 1138.213408] hub 1-1:1.0: USB hub found
[ 1138.213589] hub 1-1:1.0: 3 ports detected
[ 1138.486807] usb 1-1.1: new high-speed USB device number 5 using dwc_otg
[ 1138.587054] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
[ 1138.587086] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 1138.590152] smsc95xx v1.0.4
[ 1138.656927] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:02:d4:3b
[ 1138.839255] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
que es lo mismo que cuando hago eso en una frambuesa pi modelo B (guarda la última línea). Revisé doble y triple el esquema y lo comparé con el modelo B del esquema anterior. Presté atención al enrutamiento de las líneas USB en el diseño y son tan iguales como podría hacerlas siempre que mi software de diseño no tenga los medios para enrutar pares diferenciales.
El apilamiento de la capa es SUPERIOR, se adjunta la señal interna, el gnd interno, la parte inferior y las partes del tablero de interés. Leí todos los documentos que pude encontrar en relación con LAN9512 y no pude encontrar nada que explique esta situación. Tampoco entiendo por qué el led LINK está siempre encendido.
Mi pregunta es si alguien con más experiencia que yo, con este IC o con concentradores Ethernet y USB en general, ¿puede detectar un problema potencial? ¿Es posible que todo esto se deba a que las líneas USB y ETH no se enrutan diferencialmente? Yo esperaría que obtendría algunos errores y todo tipo de comportamiento errático si ese fuera el caso?
Se adjuntan la página de esquema de LAN9512, el diseño de la placa, el registro dmesg en el arranque de la rapsberry pi y los voltajes medidos en mi placa y en un modelo B operativo.
La documentación de LAN9512 está aquí: enlace
Cualquier comentario o ideas muy apreciadas.
Esquema de LAN9512 aquí: enlace
Voltajes en el modelo B y en el tablero personalizado aquí: enlace
Capas de PCB:
TOP
Siglo interno:
Plano interno de GND:
Parte inferior: