LINUX.ORG.RU

nrf24l01 и ретрансмишн

 


0

1

Пытаюсь заставить работать отправку данных в nrf24l01. У меня пока что нет получателя данных. Работаю по такому алгоритму:

  1. выставляю адрес отправки (регистр TX_ADDR 0x10): 0x05 0x04 0x03 0x02 0x01
  2. выставляю конфиг (регистр CONFIG 0x00): 0b00001010 (PWR_UP = 1, бит PRIM_RX = 0)
  3. выключаю auto ack (регистр EN_AA 0x01): 0b00000000
  4. сбрасываю биты TX_DS и MAX_RT в статусе (регистр STATUS 0x07)
  5. дергаю CE на 10 uS
  6. проверяю биты TX_DS и MAX_RT в статусе

В этом случае при проверке статуса через некоторое время получаю в TX_DS значение 1, что значит что доставка завершена, как и ожидаю.

При попытке не выключать EN_AA сколько не проверяю TX_DS и MAX_RT - они всегда равны нулю, а ожидаю через некоторое время получить MAX_RT = 1, т.е. отправка завершена т.к. превышено максимальное количество попыток повторить отправку данных. Почему такое может происходить?

P.s. значения регистров SETUP_RETR и EN_AA какие только не ставил - не выходит MAX_RT хоть ты тресни.

очень странно, вроде бы оно само починилось, хмм, теперь MAX_RT = 1, как положено

настройки такие: SETUP_RETR = 0b00000001, EN_AA = 0b00111111

ft232r ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.