Para los que no lo sepan esto es la interfaz SPI
http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_BusBien, lo que hice fue encontrar los pines
SPI en la placa de este router. Lo que me llevó a esto fue que intentando buscar el chip Si3050 en la placa al que hace referencia la wiki, no era capaz de localizarlo. Esto me tenía mosca ya que otros sitios buscando en google hacían referencia a ese chip en el hg556a. Hasta que me di cuenta que esa información la había añadido yo en la wiki pero simplemente viendo el bootlog. Otros sitios copiaron esta información, error incluido, si hubiese puesto que la placa tenía un condensador de plutonio también lo habrían copiado, ya que nadie verifica nada
.
El caso es el Si3050 también aparece referenciado en el código fuente del hg556a, pero el chip no está. Viendo su datasheet nos muestra un estupendo pinout, con 10 pines, y también un esquema de ejemplo que se parece escandalosamente a una parte de la placa en la que hay componentes sin soldar. Así localicé los pines, no por arte de magia
Ahí va una foto con el pinout, con un GPIO de regalo:
http://wiki.openwrt.org/_media/media/toh/huawei/hg556a-spi.jpgVerifiqué que funcionaba OK conectándo la flash SPI de otro router (un cisco), la cual fue reconocida correctamente, las lecturas también fueron buenas.
Hay que tener en cuenta que usa el Slave Select 1. También hay un Slave Select 2 disponible pero en este caso va conectado al chip VoiP legerity :
http://wiki.openwrt.org/_media/media/toh/huawei/hg556a-spi_le88266.jpgPara hacer más cómoda la conexión hice un cableado a un pin header a modo de conector externo:
El hueco entre los dos RJ11 se ajusta perfectamente a este pinheader de 2.54 mm pitch. Donde están cableados los cuatro pines del SPI + alimentación (GND+VCC)
Sobre la parte de drivers, poco puedo aportar, más que un ejemplo para conectar una SPI externamente. Es necesario añadir código de platform data para que registre nuestro dirver concreto.
http://codepad.org/5rcnLkIyEn este caso hice un particionado de la SPI, de forma que puedo flashear cómodamente la partición que me interese.
Ya tenemos el SPI del hg556a al descubierto, ahora no hay excusas para no experimentar conectando chismes SPI como displays o lo que sea.
¿alguien se atreve?