Включение чипа не устанавливается в нужный момент с помощью SPI - PullRequest
0 голосов
/ 14 октября 2019

Пытаюсь установить, чтобы активация чипа (CE) на выводе поднималась до высокого уровня перед передачей SPI и возвращалась к низкому уровню после завершения передачи (TX или RX). Использую NRF24L01 и Nucleo-F303. Говорят, что когда CE высокий, тогда я могу сделать реальную передачу SPI на NRF24L01. Тем не менее, вывод CE на мгновение становится низким, а затем снова высоким даже до того, как реальная передача не была выполнена

enter image description here

Кажется, что остальные выводы синхронизируютсясоответственно. Как я могу получить, чтобы вывод CE точно поднялся до того, как сделать передачу SPI, а затем низко, когда все сделано или больше не выполняется.

Вот как я пытался решить проблему

int main(void)
{
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_SPI1_Init();
    MX_USART1_UART_Init();

    HAL_Delay(5);

    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_RESET);
    uint8_t data[6] = {0x5C, 0xBA, 0xBB, 0x4D, 0x5E, 0xFB,};
    uint8_t data1[6] = {0};

    while (1)
    {
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_SET);

        if(HAL_SPI_TransmitReceive(&hspi1, data, data1, 6, HAL_MAX_DELAY) == HAL_OK)
        {
            HAL_Delay(1);
            HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_RESET);
        }
    }
}

, и вот как я настроил GPIO_PIN_3 для работы

    GPIO_InitStruct.Pin = GPIO_PIN_3;
    GPIO_InitStruct.Pull = GPIO_PULLDOWN;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // digital Output
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

1 Ответ

0 голосов
/ 14 октября 2019

Обычно сигнал выбора ведомого SPI активен на низком уровне, но вы можете изменить это поведение с помощью бита SSIOP (это имя бита на STM32H7, может отличаться на другом STM32).

О вашем другомвопрос, сигнал Slave Select становится неактивным между двумя байтами, вы можете изменить это поведение благодаря биту SSOM.

Различные конфигурации SPI обычно довольно хорошо описаны в Справочном руководстве.

...