NovOleg 0 6 февраля, 2015 Опубликовано 6 февраля, 2015 (изменено) · Жалоба Добрый день. Решил проапгрейдить свой контроллер умного дома на базе raspberry, сейчас для чтения данных rf датчиков используется дешевый приемник 433mHz, чувствительность которого не устраивает. Приобрел на замену трансивер si4432. Оказалось что настроить его не так уж просто. Т.к. имеющиеся датчики генерят сигнал с нестандартной для si4432 преамбулой (0000001 вместо 01010101) требуется настроить единственный режим в котором si4432 будет с ними работать - raw mode. За основу взял настройки из AN463, GPIO0 прописал как RX_DATA, модуляция OOK. Импульсы пытаюсь обработать следующим незамысловатым кодом: while(true){ uint8_t rssi=si4432_rr(0x26); if(rssi>0x34){ if(digitalRead(RPI_GPIO_PIN)==HIGH){ printf("1"); } else { printf("0"); } } И вроде как импульсы считываются при наличии сигнала, но при этом не удается выцепить преамбулу определенной длительности (низкий уровень ~4200мкс) . На настройку каких регистров стоит обратить внимание в первую очередь? Изменено 6 февраля, 2015 пользователем NovOleg Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 3 6 февраля, 2015 Опубликовано 6 февраля, 2015 · Жалоба Так какая модуляция у датчиков и какие скорости передачи. Сколько байт в преамбуле, что с синхрой? Как пакет заканчивается? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NovOleg 0 6 февраля, 2015 Опубликовано 6 февраля, 2015 (изменено) · Жалоба Так какая модуляция у датчиков и какие скорости передачи. Сколько байт в преамбуле, что с синхрой? Как пакет заканчивается? в качестве подопытного взял сенсор Visonic MCT-302: в спецификации указано что модуляция 100% ASK, про скорость ничего не сказано опытным путем выяснил: - преамбула состоит из низкого уровня длительностью ~4000мкс и одного верхнего уровня ~320мкс - сообщение содержит 36 бит судя по всему ООК не подходит для разбора сообщения тк импульсы имеет разную длительность, и нужно использовать режим unmodulated? но для определения преамбулы выбранный режим OOK или unmodulated играть разницы не должен. или я не прав? Изменено 6 февраля, 2015 пользователем NovOleg Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 3 8 февраля, 2015 Опубликовано 8 февраля, 2015 · Жалоба Для si4432 только FSK, GFSK, and OOK никаких ASK нет. OOK вас не устроит тоже, поскольку он переродится в режим модуляции AM, при передаче любых данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
R_vlad 0 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба Для si4432 только FSK, GFSK, and OOK никаких ASK нет. OOK вас не устроит тоже, поскольку он переродится в режим модуляции AM, при передаче любых данных. Отлично подходит ООК. Только надо отключить синхронизацию. А всю обработку полностью провести к контроллере. Делал приемник данных датчиков только на SX1231 и MRF89(49). Не думаю что большая разница. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 3 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба Для поигаться может и да, а так нет конечно. Потеря чувствительности, более широкая полоса нужна. SX1231 и MRF89(49) по другому устроены, их чувствительность в ООК ещё хуже. Да и как без синхры?, кривота однако. Температура изменилась, частота уплыла и запросто прием упал на 30dB. Надо это? Понятно, если использовать только приемный тракт из si4432, можно на порты вывести данные, обойдя внутреннюю пакетную структуру. И обработку делать на контроллере. Этот режим они оставили после тестов чипов на первых ревизиях. Может кому и нужен такой режим для собственного модема, пакета, криптовки. Тут требования более повышенные к темп стаб кварца. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
R_vlad 0 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба В передатчике Visonic MCT-302 сильно не разбирался, но там что то на 2-х транзисторах. Подозреваю что OOK. Но может конечно ошибаюсь. Полосу ставил 300 кГц. А как сделать синхру, если в исходном сигнале нет преамбулы, сразу начинается полезный сигнал? Вообще эти датчики древние, и формат сообщения наверное делался еще под простые приемники без учета возможностей синхронизации. Смотрел как то cc1101 там вообще нет раздельного выбора ASK или OOK, а есть один выбор ASK/OOK. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Owl_ 0 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба Приобрел на замену трансивер si4432. Оказалось что настроить его не так уж просто. Т.к. имеющиеся датчики генерят сигнал с нестандартной для si4432 преамбулой (0000001 вместо 01010101) требуется настроить единственный режим в котором si4432 будет с ними работать - raw mode. Может есть возможность поставить более подходящий в данной ситуации трансивер? Si4432 на сайте производителя стоит как "не рекомендованный к применению", а вот пришедший на смену новый Si446x имеет возможность задать нестандартную преамбулу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
R_vlad 0 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба Вообще то у данных датчиков нет преамбулы 00000001 . Есть просто включение несущьки на 4000 мкс. что видим на выходе приемника как низкий уровень. Каждый бит передается за 1000...1700 мкс. Длительность зависит от напряжения батарейки (320 мкс у автора это как раз примерно 1/3 от 1000 при макс. напряжении 3В). Поэтому никакая синхронизация в принципе не возможна. ASK это более широкое понятие оно включает в себя OOK и M-ASK (см. вики). Если нужен приемник ASK/OOK применяйте например СС1101 или Micrel MICRF211. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NovOleg 0 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба большое спасибо за комментарии Может есть возможность поставить более подходящий в данной ситуации трансивер? Si4432 на сайте производителя стоит как "не рекомендованный к применению", а вот пришедший на смену новый Si446x имеет возможность задать нестандартную преамбулу. на сколько я понял, si446x имеет примерно те же возможности что и si443x. и для моих конкретных задачи так же мало подходит Отлично подходит ООК. Только надо отключить синхронизацию. А всю обработку полностью провести к контроллере. Делал приемник данных датчиков только на SX1231 и MRF89(49). Не думаю что большая разница. Т.е. все таки в raw mode при OOK модуляции есть возможность получить на выходе si4432 ожидаемые импульсы? В передатчике Visonic MCT-302 сильно не разбирался, но там что то на 2-х транзисторах. Подозреваю что OOK. Но может конечно ошибаюсь. Полосу ставил 300 кГц. А как сделать синхру, если в исходном сигнале нет преамбулы, сразу начинается полезный сигнал? Вообще эти датчики древние, и формат сообщения наверное делался еще под простые приемники без учета возможностей синхронизации. Смотрел как то cc1101 там вообще нет раздельного выбора ASK или OOK, а есть один выбор ASK/OOK. я полосу пробовал от узкой до максимально широкой (620Khz) особой разницы вы выводе не заметил. датчик собран на базе pic16f716 Вообще то у данных датчиков нет преамбулы 00000001 . Есть просто включение несущьки на 4000 мкс. что видим на выходе приемника как низкий уровень. Каждый бит передается за 1000...1700 мкс. Длительность зависит от напряжения батарейки (320 мкс у автора это как раз примерно 1/3 от 1000 при макс. напряжении 3В). Поэтому никакая синхронизация в принципе не возможна. ASK это более широкое понятие оно включает в себя OOK и M-ASK (см. вики). Если нужен приемник ASK/OOK применяйте например СС1101 или Micrel MICRF211. полученный сигнал все же в OOK и можно разбирать сигнал по кол-ву 0 и 1, или все же для каждого уровня считать свою длительность? есть ли смысл дальше биться за результат с этим трансивером? я заказал уже cc1101, пока дойдет еще есть время помучить si4432 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
R_vlad 0 9 февраля, 2015 Опубликовано 9 февраля, 2015 · Жалоба Я думаю что ручками придется разбирать сигнал с любым приемником. С1101 преимуществ не даст наверное. Если в документации написано OOK или ASK/OOK, то это скорее всего в любом случае OOK. Вот в микреле нет упоминаний про OOK - только ASK. До SX1231 делал с ним. Разницы в чувствительности не заметил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergNK 0 3 марта, 2015 Опубликовано 3 марта, 2015 · Жалоба Отсутствие преамбулы значительно ухудшает качество приема трансиверами с автоматами-модемами. даже если перевести в режим raw. Проверено. наилучший выигрыш дают простые приемники, например, серии SYN, клонирующие Micrel. Они иногда даже исправляют микреловские ошибки. И полная обработка контроллером. На скорости 8000 с ООК получали -119дБ инструментальную чувствительность. И это без преамбулы! Причем анализировался код сразу трех протоколов, несовместимых между собой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NovOleg 0 9 марта, 2015 Опубликовано 9 марта, 2015 · Жалоба простые приемники, например, серии SYN, клонирующие Micrel а какая модель? не смог найти радиомодулей SYN ни в наших магазинах ни на зарубежных площадках (ebay, aliexpress)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться