Перейти к содержанию
    

repstosw

Участник
  • Постов

    2 650
  • Зарегистрирован

  • Победитель дней

    2

Сообщения, опубликованные repstosw


  1. 6 hours ago, firstvald said:

    только готовое решение, которое можно адаптировать подойдет. 

    Итак... что у нас вырисовывается:  AT86RF215 с минимальной обвязкой (питание, кварц, SPI и суб-ГГц выход).

    Что нужно:

    1. Сделать печатную плату

    2. Купить детали

    3. Припаять детали

     

    Плата будет очень простой, из-за минимального обвеса:

    image.thumb.png.bb549f827bc999f69c3ed846c24afc84.png

  2. 2 hours ago, kpv said:

    https://github.com/maribu/at86rf215-breakout

    Чётко! 🙂

    Жаль, что он на заказ платы не высылает (по кр. мере я не нашёл объявления).

     

    P.S.  Меня напрягает балун (balun) в схеме - его можно заменить на простые L и C?   Подойдут ли балуны, выковыренные из GSM-трубок?

  3. 2 hours ago, dtmf73 said:

    Видел её.  Ценник конский и плата избыточна: зачем-то впаяны SATA-коннекторы. Хочется по-проще:  один суб-гигарцовый выход и ничего лишнего.

  4. 8 hours ago, des00 said:

    но вы же все равно в городе, с детской мощностью 10мвт. Разработка подобного устройства встанет намного дороже, чем пара 5Ж модемов)

    Мощность 10 мВт заявлена исходя из того, что планируется использовать усилитель мощности. Но это уже мои заботы.  От модуля требуется мощность 10 мВт.

     

    6 hours ago, firstvald said:

    Мои 3 копейки. Когда пробовал лору в городе, то 350 метров (5 этаж из глубины квартиры и через угол другого здания). Коллеги с поднятым на 3 этаж передатчиком у окна вдоль проспекта получали 3 км. Так что реалии могут быть очень разными.

    Согласен. Использовал LoRa модули Lora1278F30 с кодеком MELP2400. Дальность связи по прямой в городе вышла более 8 км.

     

    10 hours ago, looser said:

    На хоббийные цели вы готовы выкинуть пару лимонов?

    Конкретизирую задачу:  нужны 2 платы с чипом  AT86RF215 только с распаянным суб-гигагерцовым диапазоном.  Для управления по SPI. IQ распаивать тоже не нужно, так как работа будет с FIFO и тем модемом, что в чипе.

     

  5. 37 minutes ago, des00 said:

    ну так лору и возьмите, готовый чип

    Не даёт 500-1000 кбит/c.

     

    38 minutes ago, des00 said:

    Ваш коллега, в группе по ЦОС, даже разгонял ее, оконечные результаты не помню, но можете у него сами спросить.

    В смысле коллега?  Это я её разгонял - она только до 40% гонится.

     

    38 minutes ago, des00 said:

    А чем вам стандартный 5G модем не угодил? Дешево, быстро и почти из коробки)  

    Потому что он не на 430-470 МГц

  6. 32 minutes ago, Harbinger said:

    Регламентные ограничения. Сделать-то можно, продать - некуда. Разве что где-то в межпланетном пространстве эксплуатировать. LoRa вообще не заточена на большие скорости и непрерывную передачу, по самому замыслу. 

    На самом деле нужна "условная" непрерывность.  По нажатию кнопки PTT (push-to-talk), как в рациях 🙂

    А чип OFDM есть для Sub-GHz : AT86RF215.  Других нет.

    Так что осталось мне себя мотивировать заказать его и сделать тестовую плату.

    Потому что та плата что есть - ATREB215-PRO стоит неоправдано дорого (160  - 200 $ )

  7. 14 minutes ago, Vasil_Riabko said:

    OFDM - чувствительность к допплеровскому смещению частоты, что снижает возможности реализации высокоскоростной связи с движущимися объектами

    Уточнение: скорость до 5 км/ч.  Пеший ход на улицах или в помещениях.

     

    14 minutes ago, Vasil_Riabko said:

    LoRa  - запатентованная, проприетарная технология модуляции маломощной сети передачи данных со скоростью 0,3-50 кб/с и дальностью от 1 до 15 км.

    Уточнение: чирп-несущая, ЛЧМ.   Модулятор и демодулятор - наподобие как в LoRa.

     

    Что нужно от этих модуляций: получить канал связи, устойчивый к многолучевому распространению сигнала.  Либо OFDM, либо ЛЧМ("LoRa")

  8. Для хоббийных целей необходимо разработать модуль приёмо-передатчика для непрерывного потока данных: наземная подвижная радиосвязь в городе (портативный видео-терминал).

    Требования к модулю:

    Диапазон частот: 430-440 МГц

    Выходная мощность: до 10 dBm

    Модуляция: OFDM, LoRa (устойчивая к интерференции, многолучевому распостранению волн)

    Скорость данных:  0 - 1000 кбит/c

    Буфер FIFO:  8 кБ.

    Связь с микроконтроллером: SPI (4-х проводной).

     

    Детали можно уточнить в личке или эл. почте: repstosw2018 @ gmail . com

    Предлагайте свой вариант по возможностям, цене и времени.

  9. 1 hour ago, jcxz said:

    Можно посмотреть на что-то из SX1276/77/78/79. Скорость там правда максимум 300kbps (в режиме FSK/OOK-модема и если работать в 1-й или 2-й полосах). Управляется через SPI.

    Скорость 300 kbps в FSK режиме.  В режиме LoRa скорость у них до 62 kbps.   С таким успехом, я лучше останусь на Si4463, которая до 1 Mbps.

    Лишь только у SX1280 в LoRa режиме скорость до 260 kbps. Но они на 2,4 ГГц.

     

    Интересно, почему ещё никто не сделал RFIC на 430-470 МГц с OFDM или LoRa  со скоростью до 500-1000 kbps?

  10. 53 minutes ago, Harbinger said:

    Суб-ГГц с OFDM - EFR32(F/Z)G25, вышли на рынок в начале этого месяца. Ценник не радостный, порядка $15 в розницу. Больше у Silabs пока что ничего подобного нет. Что будут собой представлять 28 и 31, которые на подходе - не совсем ясно.

    А есть варианты чисто чип трансивера, без ядра CPU?  Мне нужно к Allwinner прикрутить.

    И что с доставаемостью у этих чипов в страну, которая чемпион по количеству санкций?

  11. On 2/24/2023 at 5:31 PM, repstosw said:

    На счёт EFR32.   Там DSSS, и оно уже не 1 мбит/c, а намного меньше.

    Да, тут следует немного уточнить: есть EFR с DSSS, но ограниченные по скорости до 19 кбит/c,  а есть с OFDM, но работающие в диапазоне 2,4 ГГц. Оба варианта не подходят.

    Для моих применений нужен чип с OFDM на диапазон 70 см (430-470 МГц) и с битрейтом 500-1000 кбит/c. А ещё лучше - модуль на чипе, которым можно управлять через SPI.

     

    On 2/24/2023 at 6:36 PM, Aner said:

    Э .. маленькая дальность связи ... проверяйте ксвн, согласование с антенной, ... для широкой полосы простые антеннки оч проблемные. Проверьте согласование на краях полосы. Скорее кпд антенны у вас единицы процентов или того меньше, потому такая дальность.

    Вернулся к 2FSK на 500 кбит/c.  Да - ситуация улучшилась по сравнению с 4FSK 500 ksps.  Приём стал стабильнее- затыков на минимумах меньше.

     

    On 2/25/2023 at 12:11 AM, Harbinger said:

    Что имеется в виду? Формирование пакетов собственного формата? С некоторыми ограничениями да.

    Имеется в виду - пользование примерно в таком виде:

     

    //Инициализация трансивера
    TRX_Init(Freq, Bitrate, Deviation, Power,...);
    
    //Передача
    TRX_WriteFIFO(Buffer, Size)
    
    //Приём
    TRX_ReadFIFO(Buffer, Size)
    
    // + настройка прерываний по приходу пакета и по завершению отправки пакета

     

    12 hours ago, spirit_1 said:

    Попробуйте какой то UWB трансивер
    Например спарк дает до 20 мрс

    или • 50 meter range @ 3Mbps

     

    Не идёт.  Нужна передача видео/звука на дистанцию 1-2 км.

  12. 41 minutes ago, _4afc_ said:

    1. не передавать первые 330 байт с коэф, а вместо них передавать один байт меняющегося "QP";

    Я тоже так сделал c H264.

    Spoiler
    #define QPN 47
    
    const u8 *Header[QPN]=
    {
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x98,0x33,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x88,0x31,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x78,0x2F,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x68,0x2D,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x58,0x2B,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x48,0x29,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x38,0x27,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x28,0x25,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x18,0x23,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x08,0x21,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
    
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x03,0xE1,0xF1,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x03,0xA1,0xD1,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x03,0x61,0xB1,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x03,0x21,0x91,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x02,0xE1,0x71,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x02,0xA1,0x51,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x02,0x61,0x31,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x02,0x21,0x11,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x07,0x8F,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x06,0x8D,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x05,0x8B,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x04,0x89,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
    
     (const u8 []){28, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x0E,0x71,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){28, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x0A,0x51,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){28, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x1B,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
    
     (const u8 []){27, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x31,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
    
     (const u8 []){28, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x12,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){28, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x08,0x41,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){28, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x0C,0x61,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
    
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x04,0x08,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x05,0x0A,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x06,0x0C,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x07,0x0E,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x02,0x01,0x01,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x02,0x41,0x21,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x02,0x81,0x41,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x02,0xC1,0x61,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x03,0x01,0x81,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x03,0x41,0xA1,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x03,0x81,0xC1,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){29, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x03,0xC1,0xE1,0x12,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
    
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x00,0x20,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x10,0x22,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x20,0x24,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x30,0x26,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x40,0x28,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
     (const u8 []){30, 0x00,0x00,0x00,0x01,0x67,0x4D,0x00,0x29,0xDA,0x0A,0x11,0x10,0x00,0x00,0x00,0x01,0x68,0xEE,0x01,0x50,0x2A,0x11,0x20,0x00,0x00,0x00,0x01,0x65,0xB8,0x4F},
    };

     

    41 minutes ago, _4afc_ said:

    2. вставил ресинхронизаторы каждые ~8 клеток;

    Какой размер у одной клетки?  И размер кадра ?

    41 minutes ago, _4afc_ said:

    Т.е. ошибки стали не убивать кадр, а иногда слегка портить.

    Перепишите так H264...

    Скорее всего не выйдет, потому что у H264 скорее всего не ячеистая структура данных.

  13. 18 hours ago, repstosw said:

     

    18 hours ago, k155la3 said:

    Другой вариант - разместите комплекты приемника и передатчика на допустимо-близком расстоянии (метр-2-3) и тестируйте на ошибки при последовательном снижении мощности TX .

    Можно попробовать.

    Попробовал. Выставил мощность передатчика -22..-21 дБм (PA_PWR_LVL=1).

    image.thumb.png.3c2f2db4b1a07aec393dc83d04e3a411.png

    1) Без RS: дистанция 0...1,5м : пакеты целые.  1,5 ...3 м: пакеты битые, только  премамбула и синхрослово.

    2) Добавил RS: 0..3м: успешно восстанавливаются пакеты.  >3м:  даже преамбула/cинхрослово не принимаются.

     

    Выходит, что RS увеличил дальность приёма пакетов, когда их ещё можно восстановить.  Где-то в соседней теме писали, что прикручивать коррекцию ошибок после жёсткого решения нет смысла, так как это ничего не даст.  На практике оказалось, что даёт! 😃

     

    P.S. Никому не кажется странным маленькая дальность связи при Pпер = -22 дБм и Pпрм = -82 дБм ?  Всего 3 метра.

  14. 1 hour ago, Harbinger said:

    М.б. есть смысл посмотреть в сторону не совсем примитивных, наподобие EFR32FG25.

    На счёт EFR32.   Там DSSS, и оно уже не 1 мбит/c, а намного меньше.

    Для голоса мне хватало MELP2400 + LoRa.

    Just now, Aner said:

    Это ближняя зона антенны, там все хорошо, пока не перешли зону Френеля, далее картина сильно меняется, лучевость, переотражения и тп все портит. Да только OFDM и далее спасает, две и более антенны.

    Кроме OFDM есть ещё пути?

    Например несущая на чирпах, как у LoRa.   Кстати, как можно сделать точный чирп несущей?  Допустим ЛЧМ с 430.000 МГц до 430.500 МГц с кванованием прироста частоты хотя бы 256 ступеней? 

    8 minutes ago, Aner said:

    Да только OFDM и далее спасает, две и более антенны.

    Допустим, будет 2 антенны параллельно друг другу в одной плоскости на расстоянии пол-длины волны.  Есть ли способ сложить мощность сигнала с этих двух антенн с учётом фаз? 

    Без использования antenna diversity.

  15. 7 minutes ago, petrov said:

    Вот это оно и есть, замирания у вас ещё плоские, при какой-то более широкой полосе точек уверенного приёма не будет в этих условиях, при перемещении в пространстве будут селективные нули передвигаться по спектру сигнала.

    А полоса всегда фиксирована - она соответствует 4GFSK c BT=0.5, dF+/-250 кГц, 500 ksps.  Что-то около 1 МГц.

  16. 1 hour ago, petrov said:

    Такой точки может и не быть для широкополосной модуляции, представьте объёмный резонатор, где-то пучности, где-то нули, на каждой частоте по-разному, и всё это нестабильно. Возьмите стандарты цифровой связи wi-fi, GSM и т. д., никто бы не стал усложнять модуляции для борьбы с многолучёвым распространением, но без этого принципиально не обойтись.

    Я измерил расстояние между точкой отсутствия приёма и точкой уверенного приёма: выходит приблизительно пол-длины волны. И таких точек очень много: в каждой комнате будет несколько.

     

    58 minutes ago, _4afc_ said:

    Потому что тезис RS(255,239), исправляющий 8 ошибок  - неточный.

    В моей практике RS(255,239) выдавал при декодировании R и S. один указывал номер байта (0-255) другой маску на которую поксорить.

    Т.е. ошибки более чем в одном байте такой код не исправляет.

    Не могу согласиться.  Код RS(255,239)  исправляет 8 ошибок или 16 стираний(ошибки с известной локацией) - неважно в каком байте.

    Я всё проверяю и моделирую на ПК.  Пpиложил проект, который генерирует сообщение из 239 байт, кодирует его Ридом-Соломона, затем вносит 8 ошибок в сообщение и декодирует. Всегда исходное сообщение успешно восстанавливается - если число ошибок не больше 8.   Пример можно переделать под другие значения

     

    RS_255_239.zip

     

    Ещё раз проверил приемник и передатчик : без RS+перемежения битые почти половина из всех пакетов, с RS+перемежением: 7..14% битых пакетов.  Результат намного лучше.

    Причём, RS хорошо работает, когда - преамбула и синхрослово проходят, а пакет немного битый.

     

    54 minutes ago, Harbinger said:

    М.б. есть смысл посмотреть в сторону не совсем примитивных, наподобие EFR32FG25.

    Работа на уровне сырых пакетов возможна?

     

    49 minutes ago, _4afc_ said:

    приемлемое качество изображения - это какой PSNR?

    почему  H264? вы же наверно без межкодрового сжатия пересылаете?

     

    PSNR не скажу,  там задаётся QP: 1 - зе бест, 47 - зе ворст. Начальная точка качества QP=18. Если сжатый фрейм не лезет, то увеличиваем QP (ухудшаем качество на 1 ступень вниз). На практике при QP=18..23  фрейм влазит в буфер 8 кБ.  Ещё и на аудио остаётся (тоже сжимается, но с постоянным битрейтом).

     

    H264 потому что жмёт сильнее, чем MJPEG.   Да, все кадры ключевые (независимые), чтобы следующие кадры не зависели от предыдущего, если тот будет принят с искажением.

    А чем MJPEG (или просто JPEG)  будет лучше?

  17. 8 hours ago, petrov said:

    repstosw

    Если приемник и передатчик в одной комнате, то битые пакеты возникают в зависимости от положения приемника или передатчика.  Может переотражение?

    Разумеется, никакие коды поверх модуляции, не рассчитанной на многолучёвое распространение, не помогут, в примитивных чипах трансиверов этот вопрос не решается.

    Почему на практике применение RS(255,239) + перемежение  уменьшило число битых пакетов до 7% при движении приёмника ?  Изначально их было около 50%.

    В принципе, подвижность приёмника/передатчика не сильно требуется, главное, чтобы можно было найти точку уверенного приёма и обезопасить канал связи от помех и небольших лагов.

     

    9 hours ago, spirit_1 said:

    Не знаю какой у вас запас на замирания но я как то тестировал в пределах 2-3 метров две антенны подключенные одна на выход трекинг генератора анализатора спектра вторая на вход анализатор. Даже простое перемещение руки на расстоянии метра от антенн могла вызвать замирания 15 дб а уж перемещение в пределах комнаты 40дб как пить дать

    Если скорость большая и запас на бюджет небольшой то скорее всего это замирания от многолучевости

    Мощность 10 дБм, антенна штырь L/4, без противовесов.

    Приёмник - чутьё -82 дБм (500 ksps, BW=850 kHz, 4GFSK)

    Диапазон 430 - 470 МГц

     

    10 hours ago, Aner said:

    Si4463 на сегодня для вашего видео не тот чип, чисто по модуляции, эргономике, излучению и тд. С широкой полосой у этого чипа все плохо особено когда антенна никакая. Посмотрите что в G2, G3 стандартах для передачи видео, поможет. Хотя для вхождения в тему, обучения, ваши труды не пропадут даром.

    А для чего эти FSK-трансиверы делают? Зачем они нужны?

    G2, G3 - заманчиво, но наверное по абстракциям как стек TCP-IP поверх Ethernet?  Или всё на уровне "передал-принял пакет"?

  18. 23 minutes ago, k155la3 said:

    На графическом логе видно довольно регулярные "волны". Неплохо было-бы послушать что там в эфире творится в режиме тишины.

    На всякий случай напишу, что этот лог был снят, когда я  в руках держал приёмник и ходил по помещению в разные комнаты.  Остальные замеры битых пакетов также в движении.

    Передатчик всё время неподвижен.

     

    24 minutes ago, k155la3 said:

    Попробуйте сдвинуться по частоте. Если помеха, то ее частота (после демодуляции) может накладываться на полезный сигнал в различных соотношениях, как частоты так и амплитуды.

    По-хорошему нужен "свисток", чтобы оценить где эфир загажен,  а где нет.  Менял частоту - 435, 438, 490 МГц.  Везде одинаково.

     

    26 minutes ago, k155la3 said:

    Другой вариант - разместите комплекты приемника и передатчика на допустимо-близком расстоянии (метр-2-3) и тестируйте на ошибки при последовательном снижении мощности TX .

    Можно попробовать.

  19. Сделал перемежение. Число битых пакетов упало до 7%.

    K=239

    N=255

    L=32

    image.png.0de40a23242b06cc018d7f2382a535a1.png

     

    Передатчик:

     //Interleaver
     for(int j=0;j<L;j++)for(int i=0;i<K;i++)RS[j][i]=Frame[(L*i)+j];
    
     //RS Encoder
     for(int j=0;j<L;j++)encode_data(&RS[j][0],K,&RS[j][0]);
    
     //Former
     for(int i=0;i<N;i++)for(int j=0;j<32;j++)Frame[(L*i)+j]=RS[j][i];
                                                              
     //TX
     Si4463TX(Frame,sizeof(Frame));

     

    Приёмник:

    //RX
    Si4463RX(RXBuffer);
    
    //...
    
    //De-Former
    for(int i=0;i<N;i++)for(int j=0;j<L;j++)RS[j][i]=RXBuffer[(L*i)+j];
    
      for(int j=0;j<L;j++)
      {
       //RS Decoder
       decode_data(&RS[j][0],N);
    
       if(check_syndrome()!=0)
       {
    
        if(correct_errors_erasures(&RS[j][0],N)==FALSE)
        {
        // bad++;
        }
        else OK=1;
       }
       // else bad++;
      }
    
      //De-Interleaver
      for(int j=0;j<L;j++)for(int i=0;i<K;i++)Frame[(L*i)+j]=RS[j][i];

     

    Подсчёт и запись статистики:

      if(OK==1)
      {
       if(*((u64*)&Frame[F-CRC64])==crc64(Frame,F-CRC64)) //CRC64 OK
       {
       }
       else bad++;
      }
      OK=0;
    
    //---
    
    nf++;
      if(nf==15*60*3)
      {
       DMA_Stop();
    
       FatFs_Init();
    
       FIL *f=Fopen("log.raw","wb");
       Fwrite((void*)&bad,1,sizeof(bad),f);
       Fclose(f);
    
       while(1)
       {
        ToggleLED();
        DelayMS(20);
       }
    
      }
    
     }

     

    Что ещё можно придумать?  Может CIRC попробовать - когда RS() по строкам и столбцам.

     

    42 minutes ago, k155la3 said:

    Переотражение в одной комнате - сомневаюсь, хотя оно имеет место быть. А вот если в соседней, особенно если стена жб или много металлических отражающих-экранирующих поверхностей - даже "очень и очень", интерференционные "ямы" наблюдаются даже для вещательного FM. В более ВЧ диапазоне это будет более явно.

    Так и есть: много стен из железо-бетона.

    Бытовой радиовещательный приёмник также в некоторых местах не работает (+/- пол-длины волны).

  20. 19 minutes ago, k155la3 said:

    Если у Вас протокол однонаправленный, без квитирования, можно рассмотреть использование усилителя (хотя это вопрос нарушения требований инспекции эл.связи и стандарта). Передавать с 10 мВт по эфиру скоростной поток длинными пакетами, на расстояние икс, в условиях постоянных/внезапных помех. . . Кроме снижения скорости, избыточного кодирования + вида модуляции - только увеличение мощности. Смотря что у Вас в приоритете - решение прикладной задачи или научные цели.

    Проблема не  в недостатке мощности.  Если приемник и передатчик в одной комнате, то битые пакеты возникают в зависимости от положения приемника или передатчика.  Может переотражение?

     

    19 minutes ago, k155la3 said:

    Google (пока не забанили) "Усилитель мощности BLT53A с si4463"  

    Такой будет лучше:

    image.thumb.jpeg.918aa605ba8613ad48c4af2aa75939b8.jpeg

     

  21. 15 minutes ago, Aner said:

     А зачем вам 4FSK?  ... в вашем варианте с помехами он хуже чем FSK, в плане битых пакетов.

    Скорость 1000 kbps только при 4FSK.

    1000 kbps нужно, чтобы успевать передавать поток сжатых фреймов видео 320x240 15 FPS (H264) приемлемого качества + четыре фрейма сжатого аудио (24 кбит/c)

  22. Добавил RS(255,239), исправляющий 8 ошибок.  Фрейм разделил на 32 части по 255 байт каждая. Число байт на полезные данные уменьшилось с 8192 до 32*239=7648

    Число пакетов, которые успешно исправились + без ошибок - увеличилось до 82% (без RS было 53%).

     

    Есть ли длинные коды RS, например RS(8191,7935), исправляющие 128/256  ошибок?  Делить на куски не очень удобно + ограничивает локацию битых данных в пределах одного куска 255 байт.

  23. 12 minutes ago, V_G said:

    Похоже, вы работаете на пределе скоростных возможностей данной ИС. Есть возможность посмотреть спектр передатчика? Насколько он укладывается в полосу приемника 850 кГц?

    К сожалению, спектр не могу посмотреть из-за отсутствия периборов.

    Если inner deviation = 83,333 кГц, значит Outer = 250 кГц (в 3 раза больше).  Полоса: 500 ksps + 2*Outer = 1000 kHz > 850 kHz - больше чем 850 кГц полоса не ставится.

    Однако, в даташите заявлен режим 4GFSK со скоростью 500 ksps и девиацией 83,333 кГц - даётся чувствительность. Значит, режим имеет место быть.

     

    Меня сейчас интересует какой корректирующий код можно применить?  Моделирование показывает, что при исправлении двух бит в одном байте, число успешно исправленных пакетов возрастёт до 90%.

  24. 7 minutes ago, V_G said:

    У вас точно девиация 83 МГц? Есть ограничения на скорость перестройки PLL, тем более на таких высоких скоростях передачи. На 9 стр. описания есть параметр Modulation deviation range = 1.5 MHz

    Ошибся.  В кГц.  Поправил нуль-пост.

     

    43 minutes ago, GenaSPB said:

    Сократить размер пакета возможно? 

    Термин отбеливание это не про randomizer?

    Я наоборот сделал пакет ровно столько, чтобы в него вместить один сжатый фрейм полностью.

    Отбеливание - это Data Whitening - для де-корелляции данных (размазать спектр) - небольшое скремблирование

×
×
  • Создать...