¿Alguien tiene alguna experiencia con el Microchip MRF49XA sub 1 GHz transceiver ? He estado tratando de conseguir que uno de estos hable con un pic16f886 durante la última semana más o menos sobre SPI y no he tenido la suerte de obtener una respuesta. He seguido correctamente la hoja de datos de las conexiones requeridas y puedo enviar datos desde el SDO, pero cuando extraigo el chip, selecciono un valor bajo y escribo 0x00 en la salida SPI (que debería recibir una respuesta del MRF49XA registro de estado) la línea SDI se mantiene baja. He intentado escribir todo mi propio código utilizando la hoja de datos como mi fuente y cuando eso no funcionó, descargué la aplicación de demostración de muestra y arranqué las partes relevantes, aún sin suerte.
He adjuntado una captura de pantalla de una muestra de un ciclo de escritura SPI, Cap. 1 es el SDO, Ch.2 la línea de selección de chip y Ch. 3 el SCK.
Basta con decir que al ejecutar el SPI, la lectura del SDO es baja, la SDI es baja (lamentablemente) la selección de chip (CS) es baja y el reloj pulsa correctamente. El MRF49XA usa escrituras de Word, por lo que la línea del reloj pulsa 16 veces con un espacio intermedio en el que el CS permanece bajo.
Si alguien ha tenido alguna experiencia con este chip, la ayuda sería excelente, algunos de los artículos que he encontrado en línea han sugerido que puede ser un dolor pero que nada ha ayudado hasta ahora.
Estoy usando un PIC16F886 para hablar sobre esto, corriendo 3.3V y aquí están la configuración y los comandos de SPI:
.
.
.
.
//set up SPI
SSPCON = 0b00100000;
SSPSTAT = 0b11000000;
}
void spiWrite(BYTE data)
{
BYTE i;
PIR1bits.SSPIF = 0;
i = SSPBUF;
SSPBUF = data;
while(PIR1bits.SSPIF == 0){}
}
BYTE spiRead(void){
spiWrite(0x00);
return SSPBUF;
}
void RegisterSet(WORD setting)
{
nCS = 0;
spiWrite(setting >> 8);
spiWrite(setting);
nCS = 1;
}