Здравствуйте. Решил я вернуться к освоению приемопередатчиков от Silicon Labs, а именно SI4463 Есть модули E10-868MS30 на 868 Мгц и с внешним кварцем на 26 МГц. Собрал две отладочные платы. Сконфигурировал в WDS. Передатчик инициализируется без ошибок. После отправки пакета командой 0x31 приходит прерывание. Смотрю прерывание командой 0x20 - GET_INT_STATUS Приходит ответ, который наблюдаю в логическом анализаторе. После чтения CTS командой 0x44 получаю: 0x01, - PH_INT_STATUS_PEND 0x05, - CHIP_INT_STAT , PH_INT_STAT 0x20, - PACKET_SENT_PEND 0x22, - PACKET_SENT, TX_FIFO_EMPTY 0x00, 0x00, 0x10, - STATE_CHANGE_PEND 0x04; - CHIP_READY
То есть по битам прерывания видно, что пакет отправлен, буфер очищается. Всё замечательно. Отправляю пакеты раз в 100 мс. Присоединил токовый монитор, вижу, как каждые 100 мс потребление увеличивается (TX MODE) а затем чуть уменьшается (после отправки переходим в Ready_mode)
В приемник заливаю ту же конфигурацию, устанавливаю прерывание по приему пакета, запись RSSI после преамбулы. Перевожу модуль в режим RX, считываю состояние модуля (REQUEST_DEVICE_STATE). Четко приходит 0x08 после CTS (RX_MODE). Но.. Приемник молчит. Пин NIRQ как был в высоком состоянии так и висит. Чтение буфера с помощью команды 0x77 тоже ничего не дает. Буфер пуст.
В общем разобрал я модуль E10-868MS30. А точнее снял защитную крышку, дабы изучить что там напаяно. Я не знаю, но походу китайцы устроили знатное западло. Открыл я крышку и вижу - стоит SI4463, LDO с 5 на 3.3В, усилитель. Вроде всё как положено. Там же стоит RF свитч HWS421. Начал прозванивать дорожки и злости не хватает. В общем, смотрите сами. Я надеялся что может быть плата многослойная. Так и есть. Но на просвет оказалось, что все обведенные переходные отверстия, что от свича (VC1,VC2), что от самой SI4463 (GPIO2, GPIO3, которые по даташиту должны управлять свичом), просто тупо болтаются в воздухе. Голубым цветом обведена область, где должна по идее быть какая то дорожка от пина VC2 свитча до усилителя. Но там её нет, а просто тупо взяли и вырезали полигон. Либо я чего то не понимаю, либо китайцы не стесняясь и правду пихают какое то говно. Как управляется свитч?!
Промышленно модули на основе Si446x делаются только китайцами и поэтому это всегда будет лотерея в смысле работает/не работает. Поэтому, если хотите 100% гарантию работы, делайте модули сами наподобии тех, что у меня в статье, заказав чипы из надёжного (некитайского) источника. Ещё вариант - купить китайские модули, сдуть с них чип и поставить на его место "кошерный".
Промышленно модули на основе Si446x делаются только китайцами и поэтому это всегда будет лотерея в смысле работает/не работает. Поэтому, если хотите 100% гарантию работы, делайте модули сами наподобии тех, что у меня в статье, заказав чипы из надёжного (некитайского) источника. Ещё вариант - купить китайские модули, сдуть с них чип и поставить на его место "кошерный".
Чип как раз таки нормальный. По SPI коммуницирует без ошибок. Контролирую CTS, NIRQ, всё как надо. Подозреваю, что чип может работает честно и отправляет данные (приходит CMD_SENT, TX_FIFO_EMPTY, CHIP_READY). В общем SPI в соответствии с даташитом работает как часы. Но видимо проблема как раз во внешнем свитче, который по даташиту на Si4463 управляется с помощью GPIO2, GPIO3.
Промышленно модули на основе Si446x делаются только китайцами и поэтому это всегда будет лотерея в смысле работает/не работает. Поэтому, если хотите 100% гарантию работы, делайте модули сами наподобии тех, что у меня в статье, заказав чипы из надёжного (некитайского) источника. Ещё вариант - купить китайские модули, сдуть с них чип и поставить на его место "кошерный".
Заработало. На модуле была плохая пайка 0-ого резистора на GPIO3. Оказалось, что GPIO2 и GPIO3 всё же идут на свитч. Но прозвонил не очень внимательно. Итого залез в WDS, включил на GPIO2 и GPIO3 ногодрыг TX_STATE и RX_STATE (чтобы дергать свитч) и приемник таки увидел пакет. Всё четко. По приему забрал прерывание по NIRQ, считал пакет. Поставил проверку по CRC - тоже без ошибок. Завтра попробую потестировать на дальность.
Да. Но сейчас другая проблема вылезла - дальность связи. По вашему мануалу с такими же настройками (1.2 kbps и 5.2 kbps) легко завел уверенный прием на 800 м на открытой местности. Но с увеличением скорости передачи дальность начинает падать. https://radiokot.ru/forum/viewtopic.php ... 2#p3981082
всем привет, пытаюсь запустить этот же чип (4460 точнее), но в моменты передачи у приёмника срабатывают прерывания о найденном синхрослове и принятом пакете, а буфер пустой, настройки могу выложить, но кратко 2FSK, без CRC, преамбула 1 байт, синхрослово 3, длина пакета при передаче и приёме задаётся максимальная 1FFF (если правильно понял, в этом случае принимается сколько есть), попробовал вывести на GPIO выход демодулятора RX_RAW_DATA, на нём тишина, а если вывести на 2 ноги RX_DATA и RX_CLK, сыпется непрерывный поток мусора независимо от наличия передатчика,
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения