ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
409309 Топик полностью
fk0, легенда (14.05.2013 14:55, просмотров: 364) ответил fk0 на NRF24L01+. Даташит на стр. 22. содержит иллюстрацию из которой следует, что если делаем PRIM_RX=0 и CE=1, то оно переходит из Standby-1 в Standby-2. И пока не запишем в TX FIFO, даже если сделать CE=0, оно в Standby-1 не вернётся. Это
Ещё один интересный вопрос для приборов с батарейным питанием. Прибор может ожидать приёма пакета, достаточно длинного. Но очевидно, что если в какой-то момент времени приём пакета уже не идёт, то можно выключаться (когда времени осталось на длину пакета или меньше), ибо пакет не будет принят. И на этом экономить энергию. Но регистр статуса не содержит информации о том, идёт приём или нет. Хотя в режиме ожидания подтверждения (с автоматическим ACK, shockburst) именно такой алгоритм и используется (раздел 7.8.7, рис. 24, "No address detected, RX off to save current"). Можно, например, каждый передаваемый пакет предварять ещё одним пакетом минимальной длительности. И на приёмной стороне ожидать вначале пакета длиной 0 или 1 байт. При получении быстренько переконфигурировать на 32 байта. Или использовать 2 приёмных "pipes": одну с длительностью 1 байт, вторую 32 байта (и разные адреса). И сразу интересные вопросы: можно ли сконфигурировать pipe для приёма пакетов длиной 0 байт, можно ли две pipe настроить на один адрес, но с разными размерами (0/1 и 32 байта). Мне почему-то кажется, что да... в последнем случае, кажется, можно заранее знать, что более длинный пакет принимается и, таким образом, завершить приём преждевременно или дождаться конца (по таймауту в 256xbit_interval) более длинного пакета.
[ZX]