Из восьми приёмников RFM01 один "плохо ловит", остальные семь в комнатных условиях без замечаний (в условиях outdoor пока не очень понял).
CODE
Инициализация (про power-on delay не забыли):
0x0000 ; чтение статуса = сброс флагов
0xC080 ; выкл. приёмник (на всякий случай?)
0xDA01 ; выкл. the highly sensitive RESET mode
0xCC00 ; disable low duty cycle
0xE000 ; wake-up timer period = 0 (не используем, но пусть будет)
0xC2E0 ; 10 МГц clock наружу
0x898A ; 433, выкл LBD и wakeup timer, crystal load capacitance = ... (???), bw = 134 kHz, не запрещаем clock наружу
0xA640 ; center frequency = ...
0xC847 ; data rate = 4789 bit/sec
0xC6C3 ; AFC (???)
0xC4EC ; data filter (???)
0xCE84 ; выкл. FIFO
0xCE87 ; вкл. FIFO, старт по sync word
0xC041 ; 0 dB gain, enable receiver and crystal osc
Приём (по прерыванию от ноги nIRQ):
читаем первые 8 бит статуса
читаем вторые 8 бит статуса
читаем третьи 8 бит статуса = принятый байт
ложим принятый байт в буфер
прибавляем счётчик, который номер ячейки в буфере = номер байта в пакете
если это был конец пакета:
очищаем внутренний буфер приёмника командой 0xCE84,
приёмник начинает ждать следующего sync word после команды 0xCE87
Или с лыжами - или...
... получилось бы весело, когда
случайно выбрать для отладки из общей кучи модуль именно тот, который "плохо ловит"?
Как бы опыт для будущих.
(для
научного любопытства и эксперимента придумал в "плохо ловящем" модуле заменить кварц на с другого, совсем дохлого его, у которого нога выжжена то ли не помню. лень. когда-нибудь.)
---
И/или вопрос: обычна ли ситуация "не напрягай мозг об ровное место, тупо замени сабж бракованный от рождения либо испорченный в процессе"?