Easyelectronics.ru

Электроника для всех
Текущее время: 20 ноя 2017, 05:22

Часовой пояс: UTC + 5 часов



    • 10 шт. 2-слоя 100*100mm 2$. Быстрый заказ: JLCPCB.com
    • JLCPCB - это крупнейшая фабрика PCB прототипов в Китае.
    • Имеющий более 290,000 клиентов и выполняющий более 8,000 заказов в день.
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: NRF51822: Проблема с SPI
СообщениеДобавлено: 12 июл 2017, 03:52 
Заглядывает иногда

Зарегистрирован: 12 авг 2012, 19:04
Сообщения: 92
Пытаюсь запустить SPI у контроллера NRF51822. Пока для верности не использую RTOS и SoftDevice, только SDK версии 12.3.0 и всё.

Инициализирую SPI следующим образом:
Код:
static const nrf_drv_spi_t spi = NRF_DRV_SPI_INSTANCE(0);
...     
nrf_drv_spi_config_t spi_config = NRF_DRV_SPI_DEFAULT_CONFIG;
spi_config.ss_pin = SPIM0_SS_PIN;
spi_config.miso_pin = SPIM0_MISO_PIN;
spi_config.mosi_pin = SPIM0_MOSI_PIN;
spi_config.sck_pin = SPIM0_SCK_PIN;
spi_config.mode = NRF_DRV_SPI_MODE_1;
APP_ERROR_CHECK(nrf_drv_spi_init(&spi, &spi_config, NULL));


Затем пытаюсь отправить 1 байт вот так:
Код:
uint8_t tx_buf[] = { 0x11 };
APP_ERROR_CHECK(nrf_drv_spi_transfer(&spi, tx_buf, sizeof(tx_buf), NULL, 0));


И... функция nrf_drv_spi_transfer больше не возвращает управление. Под отладчиком видно, что всё висит вот в этом цикле (функция spi_transfer, файл nrf_drv_spi.c):
Код:
while (!nrf_spi_event_check(p_spi, NRF_SPI_EVENT_READY)) {}


Самое странное для меня заключается в том, что сначала всё отлично работало, а потом перестало. При этом я даже вернул в коде всё как было, но это уже не помогло. Однако раз в несколько десятков перезагрузок или перепрошивок (при этом можно зашить тот же самый код, без изменений) SPI может внезапно заработать (правда, ненадолго - после нескольких десятков вызовов функции передачи данных всё всё равно зависает).

В чём может быть проблема?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB