Nucleo F446RE - No hay respuesta SPI mientras la transmisión funciona como es debido

0

Estoy intentando leer algunos registros de un transceptor Atmel AT86RF233 a través de SPI con una placa de desarrollo Nucleo F446RE. Como se indica en el título, cada vez que envío algo a través de MOSI, el transceptor no responde, incluso si el mensaje está formateado exactamente de la misma manera especificada en la hoja de datos. El transceptor no está frito (lo probé en un Arduino y funcionó perfectamente), he usado un analizador lógico (que mostraba la señal en MOSI correctamente pero sin entrada MISO) y, como tal, he llegado a la conclusión de que debe ser un problema con SPI. ¿Alguna idea?

Registrar código de lectura:

uint8_t AT86RF2XX::reg_read(const uint8_t addr)
{
    uint8_t value;
    uint8_t readCommand = addr | AT86RF2XX_ACCESS_REG | AT86RF2XX_ACCESS_READ;  //never mind for these constants, they're correct
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET); 
// PA8 is set as GPIO output from CubemMX, and plays the role of the SS pin, now it goes off to wake up the slave

    HAL_SPI_TransmitReceive(spi, &readCommand, &value, 1, 100);
    while(HAL_SPI_GetState(spi) != HAL_SPI_STATE_READY);

    HAL_SPI_TransmitReceive(spi, &readCommand, &value, 1, 100);
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_SET);  // set it back to high to terminate the communication.

    return (uint8_t)value;
}

Gracias de antemano.

    
pregunta lightspot21

0 respuestas

Lea otras preguntas en las etiquetas