|
SI4432 "пробить" 2 стены |
|
|
|
Sep 10 2014, 12:20
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 1-11-10
Пользователь №: 60 586

|
Здравствуйте,связь в зоне видимости между приемником и передатчиком присутствует(оба SI4432 B1). Есть проблема,как принять пакет с передатчика через две стены(цокольное помещение,2 стены общей тощиной ~45см,кирпич, расстояние между приемником и передатчиком ~10м). Настроено все на работу с 434МГц,передача на максимальной мощности(по измерению тока,очень похоже на заявленные 90мА), модуляция GFSK, 4,8kbps. На стороне приемника в спектре видно следующее( СДР 433 пакет -снято сдр приемником). Используется коаксиальная антенна.( Коаксиальная антенна). В приемнике при чтении статуса видно, что буфер приема не заполняется. Код инициализации чипа: CODE write(0x06, 0x00); // Disable all interrupts write(0x07, 0x01); // Set READY mode write(0x09, 0x7F); // Cap = 12.5pF write(0x0A, 0x05); // Clk output is 2MHz write(0x0B, 0xF4); // GPIO0 is for TX data output write(0x0C, 0xEF); // GPIO1 is RX data input write(0x0D, 0x00); // GPIO2 for MCLK output write(0x0E, 0x00); // GPIO port use default value write(0x0F, 0x70); // NO ADC used write(0x10, 0x00); // no ADC used write(0x12, 0x00); // No temp sensor used write(0x13, 0x00); // no temp sensor used write(0x70, 0x20); // No manchester code, no data whiting, data rate < 30Kbps write(0x1C, 0x1D); // IF filter bandwidth write(0x1D, 0x40); // AFC Loop //write(0x1E, 0x0A); // AFC timing write(0x20, 0xA1); // clock recovery write(0x21, 0x20); // clock recovery write(0x22, 0x4E); // clock recovery write(0x23, 0xA5); // clock recovery write(0x24, 0x00); // clock recovery timing write(0x25, 0x0A); // clock recovery timing write(0x2C, 0x00); write(0x2D, 0x00); write(0x2E, 0x00); write(0x6E, 0x27); // TX data rate 1 4,8kbit write(0x6F, 0x52); // TX data rate 0 write(0x30, 0x88); // Data access control 8c write(0x32, 0xFF); // Header control write(0x33, 0x42); // Header 3, 2, 1, 0 used for head length, fixed packet length, synchronize word length 3, 2, write(0x34, 64); // 64 nibble = 32 byte preamble write(0x35, 0x20); // 0x35 need to detect 20bit preamble write(0x36, 0x2D); // synchronize word write(0x37, 0xD4); write(0x38, 0x00); write(0x39, 0x00); write(0x3A, '*'); // set tx header 3 write(0x3B, 'E'); // set tx header 2 write(0x3C, 'W'); // set tx header 1 write(0x3D, 'S'); // set tx header 0 write(0x3E, PKTSIZE); // set packet length to PKTSIZE bytes (max size: 255 bytes) write(0x3F, '*'); // set rx header write(0x40, 'E'); write(0x41, 'W'); write(0x42, 'S'); write(0x43, 0x00); // check all bits write(0x44, 0x00); // Check all bits write(0x45, 0xFF); // check all bits write(0x46, 0xFF); // Check all bits write(0x56, 0x01); write(REGISTER_TX_POWER, 0x0F); // Tx power to max write(0x79, 0x00); // no frequency hopping write(0x7A, 0x00); // no frequency hopping write(0x71, 0x22); // GFSK, fd[8]=0, no invert for TX/RX data, FIFO mode, txclk-->gpio write(0x72, 0x48); // Frequency deviation setting to 45K=72*625 write(0x73, 0x00); // No frequency offset write(0x74, 0x00); // No frequency offset write(REGISTER_FREQUENCY_BAND_SELECT, 0x53); // frequency set to 434MHz write(REGISTER_NOMINAL_CARRIER_FREQ1, 0x64); // frequency set to 434MHz write(REGISTER_NOMINAL_CARRIER_FREQ2, 0x00); // frequency set to 434Mhz write(0x5A, 0x7F); write(0x59, 0x40); write(0x58, 0x80); write(REGISTER_AGC_OVERRIDE1 ,15); write(0x6A, 0x0B); write(0x68, 0x04); write(0x1F, 0x03); status = read(0x02);
Сообщение отредактировал evsx1 - Sep 10 2014, 13:13
|
|
|
|
|
Sep 11 2014, 08:48
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 1-11-10
Пользователь №: 60 586

|
Цитата(alexf @ Sep 10 2014, 23:26)  А без стенки все работает с этими же настройками? До того как ждать статус "пакет принят" следовало бы посмотреть на статусы "преамбула получена", "код совпал". Мне лениво по коду смотреть настройки, но похоже очень большая девиация частоты. Для такой скорости лучше полосу поуже. в зоне прямой видимости бьет как минимум 7 метров,дальше не разносил.
|
|
|
|
|
Sep 11 2014, 13:09
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 1-11-10
Пользователь №: 60 586

|
Цитата(Aner @ Sep 11 2014, 13:00)  Какое значение RSSI? Может так быть, что плохое согласование с антенной или антенна никакая. У меня без проблем Si4432 обеспечивает 30 метров с 4 стенами. Полоса уже чем у вас, индекс модуляции 2. С китайской антенной в зоне видимости RSSI -106, с коаксиальной 21,с проводком 9. Из соседнего помещения РССИ не читается: 0х00
|
|
|
|
|
Sep 11 2014, 21:10
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 1-11-10
Пользователь №: 60 586

|
Цитата(Aner @ Sep 11 2014, 21:00)  в зоне видимости RSSI -106 ... Это сколько метров? Что-то оч мало. И это при максимальной мощности 18...20dBm( 100мВт)? мощность максимальна. Расстояние было примерно 4-5м
|
|
|
|
|
Sep 12 2014, 09:06
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 1-11-10
Пользователь №: 60 586

|
Цитата(Aner @ Sep 12 2014, 01:54)  Посмотрел у себя на рассоянии 5 метров RSSI в пределах 180..190 единиц на коаксиальной антенне с обоих сторон. Это около -25dBm. У вас 106 получаем около -70dBm. ( Datasheet Figure31) Разница пирмерно в 45dBm, оч много; так что ищите у себя причину. Понимаю,что причина у меня, сколько не смотрел ни у кого подобных проблем не было,вот и хочется понять для начала,проблема софтварная(настройка SI4432) или железная. Смотрел потребляемый ток в момент передачи- примерно, 110мА вместе с работой контроллера,те передатчик похоже работает на максимуме. Вопрос надо ли делать специфические настройки приемника(девиацию уменьшил). Или все же проблема в корявой антенне
|
|
|
|
|
Sep 12 2014, 09:36
|

Гуру
     
Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463

|
1) Если есть чем смотреть, типа анализатора или сканера, посмотрите участок диапазона половину от вашей частоты 215...215 Мгц, может это у вас только вторая гармоника. 2) Если мощность отдается вся то смотрите цепи или разводку платы. Есть фото платы где чип с обеих сторон? 3) Антенна хоть и корявая но такой большой разницы не даст. Смотрите компоненты антенных цепей, обрывы, трещины и тп. 4) Пробуйте запрограммировать на передачу режим ООК на максимальной мощности и измерьте тем же вашим скопом вблизи и на разных рассояниях, если все ок, переходите на модуляции.
megajohn похоже не в теме чипа Si4432 Энергия одна и та же, но по разному распределена. В чипе полоса частот программируется привязаная к девиации. Про стабильность в AN все расписано, если была проблема она также на малых расстояниях проявлялась. Изменение полосы в малых пределах мало что даст заметного. AGC, AFC не даст многого увидеть. Кстати проверьте, работают ли эти системы в вашем чипе.
|
|
|
|
|
Sep 15 2014, 12:16
|

Участник

Группа: Участник
Сообщений: 46
Регистрация: 1-11-10
Пользователь №: 60 586

|
Цитата(Aner @ Sep 12 2014, 16:58)  Похоже этот у вас модуль или его клон: http://www.dorji.com/docs/data/DRF4432F20.pdf1) Оч не любят эти модули флюсы особенно по вч, нужно мыть начисто. 2) пробуйте модуль не подключать к вашей плате в месте где вч антенное соединение. И попробуйте подключить вместо антенны 1/4 волновой штырь. У вас это будет прямой провод ~18 см длины. И посмотрите как изменится RSSI при этом. Спасибо,качественно отмыв от флюса, в пределах 2 метров мы получили RSSI в районе 150. Заметил интересную особенность,если передатчик выключить,то приемник все равно показывает уровень RSSI в районе 0x28. Откуда он берет это значение? Кроме того иногда проходят пакеты,которые заполняют FIFO одним и тем же значением 0xFE(0xBE).(при этом они проходят проверку статуса IntStatus2&&0x80,IntStatus2&&0x40,IntStatus1&&0x02). Тем не менее передатчик из соседней комнаты до сих пор не видим.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|