Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola:
Hace algún tiempo que tengo ganas de hacer algún módulo inalámbrico para las placas entrenadoras que hay en la wiki. Así que investigando encontré un modulillo muy interesante y económico de Microchip, de venta en Farnell.
Leyendo los datasheets de Microchip, estos días, así como las notas de aplicación, en ningún lado he encontrado para que sirve ni cómo se utiliza el pin de WAKE del MJ24J40 (o como se llame).
He deducido que un flanco ascendente puede generar una interrupción, pero no tengo donde agarrar. ¿Hace algo más que simplemente generar una interrupción en el micro? Si no lo utilizo, ¿que tengo que poner, un pull up o un pull down?
Por otro lado, aunque aún no me he metido a investigar cómo funcionarían los drivers de software (ya sé que hay librerías, pero quiero/necesito saber cómo funciona), ni los diferentes modos o estados en que puede estar según el estándar 802.15.4, ni cómo lo paso a dormir, ni cómo se cambia de estado (attached, tx, rx, sleep, power-down, etc).
Aunque haya librerías escritas, ¿que pasa si quiero usarlo con otro micro? ¿Que pasa si quiero usar mi propio protocolo? ¿Que cantidad de CPU necesita para tráfico intenso? ¿Que pasa si quiero hacer ciertas funciones extra que no están contempladas en el protocolo, pero que estoy seguro que se pueden hacer, aunque conlleve reescribir parte de los drivers? ¿Tengo que investigar entre las librerías y código fuente para conseguir una información que cualquier otro fabricante de transceivers me da en el datasheet (Atmel, Freescale, Texas Instruments - ChipCon)?
¿Alguien puede echarme una mano?
Gracias por vuestra colaboración y paciencia al aguantarme 😉
Oooops. Pues si y no. Gracias, Ranganok, pero el datasheet que yo tenía del transceiver debe ser una versión vieja que me descargé de Farnell, y sólo tiene 65 páginas...
Así que se me pasó que hubiese un datasheet más actualizado con todas las explicaciones necesarias que tanto echaba en falta, en la página oficial de Microchip.
O sea, que he bajado la versión oficial del datasheet, y efectivamente, ahí está todo explicado.
Gracias por la info.
A ver si pongo ya la PCB que he hecho para usar dicho módulo en las entrenadoras, aunque hay algo que quiero repensarme. A ver si esta tarde lo explico con detalle aquí mismo.
Hola de nuevo:
La historia del módulo para las entrenadoras es sencillo: un simple adaptador del conector SPI al módulo. Sencillo. En un principi.
Pero resulta que las interrupciones son algo muy habitual en las comunicaciones, así que hace falta un segundo conector, para un segundo cable, que vaya al conector I2C o lo que sea, para sacar de ahí la señal de interrupción, y de paso, activar el pin Wake (aunque no creo que sea necesario). Como sobran pines, en otro de ellos le he puesto un led activo a nivel alto, para que el micro pueda indicar lo que le venga en gana al programador. Y para rematar, un último led activo a nivel bajo, en la señal de interrupción. De esta manera se puede ver que hay actividad en el puerto.
¿Estamos todos de acuerdo con este planteamiento? El hecho de que la comunicación SPI ocupe todos los hilos del conector, eliminando cualquier posibilidad de usar ninguna IRQ sobre el mismo puede ser un inconveniente.
Hola,
Tal y como yo lo veo (hablando con el esquemático del módulo de la AVR en la mano):
El conector J7 (SPI) debería ir dedicado directamente ya que las señales son las mismas (SDI, SDO, SCL y CS). El problema esta en las otras señales (INT, WAKE, RESET) y los GPIOx (0-5), la señal de INT debe ir a una de las interrupciones y las demas son I/O.
Yo colocaría los GPIOx en un puerto por si mismos (es decir un conector IDC10), si no se usan.
Las señales que quedan (INT, WAKE y RESET) a un conector IDC10 de la siguiente forma:
- La señal INT en el Rx2 (PD2 -> INT0 para AVR y RB2 -> INT2 para PIC)
- Las demás (WAKE y RESET) en Rx6 y Rx7 para que no molesten.
S2
Ranganok Schahzaman
Me parece bien. Quizás incluso sería interesante poder seleccionar que IRQ queremos, por aquello de las prioridades. Hecho.
Eso es tan sencillo como poner un puente de soldadura para elegir entre Rx0, Rx1, Rx2 y Rx3 como vía pra la interrupción.
S2
Ranganok Schahzaman