Easyelectronics.ru

Электроника для всех
Текущее время: 20 окт 2018, 03:13

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 07 фев 2015, 04:31 
Только пришел

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
Raf00084 писал(а):
Если говорить про каме (12\24) то там ШИМ передача


а ведь точно, также как и у Visonic Powercode, который я пытаюсь считать
получается, что в моем случае это PWM-ASK и Modulation Type регистр нужно выставлять в Unmodulated carrier


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 07 фев 2015, 10:00 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
Несущая частота - это 433,92 МГц.
Длительность 0 и 1 это уже дело десятое :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 08 фев 2015, 03:57 
Только пришел

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
Black Warrior писал(а):
olegef писал(а):
в итоге данные выводятся на экран только при наличии сигнала, но остается непонятным какие данные нужно брать с GPIO.
Правильно ли я делаю беря уровни HIGH/LOW с ноги?

А - длительность бита передатчика
В - длительность бита приемника, которая по AN463 должна быть в 5-10 раз короче.


Так вроде B - это и есть артефакт т.е. ложный переход на 0.

странно что одинаковые уровни идут друг за другом, даже при настроенных прерываниях на GPIO
Код:
level: 0, duration: 100
level: 1, duration: 373
level: 1, duration: 685
level: 1, duration: 340
level: 1, duration: 78
level: 1, duration: 64
level: 0, duration: 83


настройки брал из AN463, частоту подгонял под частоту передатчика, для регистра 1С пробовал разные значения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 08 фев 2015, 10:12 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
olegef писал(а):
Так вроде B - это и есть артефакт т.е. ложный переход на 0.

Да, но это одновременно и битовая частота, с которой модуль анализирует сигнал.
А вы в свою очередь уже должны из данных в перемежку с мусором извлечь только данные.
Предполагается, что ваш алгоритм гораздо удачнее, чем тот, что используется в модуле.
Я сам уже не пробовал данное направление развивать, но в принципе мусора не так уж много и он должен сравнительно легко отсеиваться. Это своего рода "дребезг" на фоне полезного сигнала. Имеющий на порядок бОльшую частоту.

Я одновременно использовал и приемник RR4 (или подобный). Он давал похожий сигнал только без мусора.
И смотрел на осциллографе.
Когда это все визуализированно, все очень наглядно и понятно выглядит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 08 фев 2015, 14:26 
Только пришел

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
Raf00084 писал(а):
не поделитесь настройками, я так понял у вас АМ прием получился? выводите на gpio?


последние настройки которые использовал:
Код:
void rx_mode(){

si4432_rr(0x03);
si4432_rr(0x04);

//SW reset
si4432_wr(0x07, 0x80);

// modem settings
si4432_wr(0x35, 0xF8);
si4432_wr(0x30, 0x84);
si4432_wr(0x32, 0x0F);
si4432_wr(0x33, 0x77);
si4432_wr(0x08, 0x10);
si4432_wr(0x69, 0x60);

si4432_wr(0x09, 0x7F);  //define Si4432_CRYSTAL_OSCILLATOR_LOAD_CAPACITANCE
si4432_wr(0x73, 0x00);  //define Si4432_FREQUENCY_OFFSET_1
si4432_wr(0x74, 0x00);  //define Si4432_FREQUENCY_OFFSET_2
si4432_wr(0x75, 0x53);  //define Si4432_FREQUENCY_BAND
si4432_wr(0x76, 0x4B);  //define Si4432_NOMINAL_CARRIER_FREQUENCY_1
si4432_wr(0x77, 0x00);  //define Si4432_NOMINAL_CARRIER_FREQUENCY_0
si4432_wr(0x7a, 0x00);  //define Si4432_FREQUENCY_HOPPING_STEP_SIZE
si4432_wr(0x79, 0x00);  //define Si4432_FREQUENCY_HOPPING_CHANNEL
si4432_wr(0x6d, 0x18);  //define Si4432_TX_POWER
si4432_wr(0x6e, 0x07);  //define Si4432_TX_DATA_RATE_1
si4432_wr(0x6f, 0xAE);  //define Si4432_TX_DATA_RATE_0
si4432_wr(0x70, 0x0C);  //define Si4432_MODULATION_MODE_CONTROL_1
si4432_wr(0x71, 0x05);  //define Si4432_MODULATION_MODE_CONTROL_2
si4432_wr(0x72, 0x20);  //define Si4432_FREQUENCY_DEVIATION
si4432_wr(0x1c, 0xAE);  //define Si4432_IF_FILTER_BANDWIDTH
si4432_wr(0x1d, 0x40);  //define Si4432_AFC_LOOP_GEARSHIFT_OVERRIDE
si4432_wr(0x1e, 0x0A);  //define Si4432_AFC_TIMING_CONTROL
si4432_wr(0x1f, 0x03);  //define Si4432_CLOCK_RECOVERY_GEARSHIFT_OVERRIDE
si4432_wr(0x20, 0x64);  //define Si4432_CLOCK_RECOVERY_OVERSAMPLING_RATIO
si4432_wr(0x21, 0x01);  //define Si4432_CLOCK_RECOVERY_OFFSET_2
si4432_wr(0x22, 0x47);  //define Si4432_CLOCK_RECOVERY_OFFSET_1
si4432_wr(0x23, 0xAB);  //define Si4432_CLOCK_RECOVERY_OFFSET_0
si4432_wr(0x24, 0x01);  //define Si4432_CLOCK_RECOVERY_TIMING_LOOP_GAIN_1
si4432_wr(0x25, 0x4A);  //define Si4432_CLOCK_RECOVERY_TIMING_LOOP_GAIN_0
si4432_wr(0x2c, 0x28);  //define Si4432_OOK_COUNTER_VALUE_1
si4432_wr(0x2d, 0x29);  //define Si4432_OOK_COUNTER_VALUE_2
si4432_wr(0x2e, 0x28);  //define Si4432_SLICER_PEAK_HOLD_1
si4432_wr(0x69, 0x60);  //define Si4432_AGC_OVERRIDE_1

si4432_wr(0x0b, 0xD0);          //GPIO0 as RX_DATA output

si4432_wr(0x07, 0x04);  //define Si4432_OPERATING_AND_FUNCTION_CONTROL_1
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 11 фев 2015, 17:40 
Только пришел

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
Raf00084 писал(а):
вы пишете что GPIO0 as RX_DATA output значение записываете D0 но по дш это вроде 10000: TX Data input for direct modulation (input), а нам же надо чтоб там был выход разве нет? Т.е 10100: RX Data (output) а это si4432_wr(0x0b, 0xD4);
Или у нас с вами разные дш.


да ошибся, скопировал просто не из той ветки кода.
si4432_wr(0x0b, 0xD4); - для RX


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 14 фев 2015, 03:45 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
Подключил 4432, чтобы вспомнить данный вопрос, и какая то ерунда получается :-)
Слишком много мусора, и тоже режим OOK не работает.
FSK работает.

В режиме 00: Unmodulated carrier время отсутствия несущей заполняется мусором.
Но в принцмпе 0 от 1 отличить можно.


Вложения:
RAW Mode.jpg
RAW Mode.jpg [ 44.89 Кб | Просмотров: 12115 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 14 фев 2015, 19:05 
Только пришел

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
Black Warrior писал(а):
В режиме 00: Unmodulated carrier время отсутствия несущей заполняется мусором.
Но в принцмпе 0 от 1 отличить можно.


это вообще странный режим - в WDS3 его нельзя выбрать для RX, но доступен для TX


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 15 фев 2015, 15:53 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
В том то и дело, что он отлично все принимает!
Но обязательно нужно брать брелок (ну или любой другой передатчик) с кварцем, ну или там saw резонатором.
Я потестил 4 брелка без стабилизации частоты, и только один давал какой то там небольшой сигнал. Остальные просто не попадали в полосу 620 кгц.
Потом потестил брелок с fsk модуляцией, вроде тоже все ок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 15 фев 2015, 15:57 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
olegef писал(а):
Black Warrior писал(а):
В режиме 00: Unmodulated carrier время отсутствия несущей заполняется мусором.
Но в принцмпе 0 от 1 отличить можно.


это вообще странный режим - в WDS3 его нельзя выбрать для RX, но доступен для TX

У меня wds3 не установилась правильно.
Но так по логике - для приема с неизвестной битовой скоростью 00-й режим отлично подходит.
ook - надо попробовать включать для передачи с входным сигналом на гпио.
Потому что если в 00-м режиме включить режим тх, модуль сразу же выдает несущую.
Собственно, так можно тестить прием. На одном модуле настроить частоту и включить тх, а другим принимать этот постоянный сигнал :-)
Но я пока ленюсь спаять второй модуль :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 15 фев 2015, 16:53 
Только пришел

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
Raf00084 писал(а):
У меня вообще не запускается если честно, не пойму в чем косяк, ну если он оок/аск не принимает то мне он не интересен, жаль ля купил таких 4 штуки. Если у кого получилось зпустить сбокру типа как RFM22 с переключателем rx/tx.


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

пока забил на этот трансивер, заказал несколько других: cc1101, aurel и telecontrolli.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 16 фев 2015, 08:00 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
Сорри, но тогда непонятна ваша задача. Если вам надо принимать стандартные форматы, то зачем заморачиваться с режимом RAW данных.
Данный режим интересен для нестандартных посылок и когда надо разобраться с неизвестным сигналом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 17 фев 2015, 19:42 
Только пришел

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
Black Warrior писал(а):
Но я пока ленюсь спаять второй модуль :-)


:) а я вот спаял второй модуль, попробую еще под ардуиной его.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 18 фев 2015, 16:38 
Только пришел

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
в общем по ардуиной все то же самое.

хоть убей не понимаю, что модуль выдает на GPIO и как считается длительность импульсов?
например низкий уровень в 4000мкс это будет серия нулей или один 0 с соответствующей длительностью?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 18 фев 2015, 18:08 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
olegef писал(а):
в общем по ардуиной все то же самое.

хоть убей не понимаю, что модуль выдает на GPIO и как считается длительность импульсов?
например низкий уровень в 4000мкс это будет серия нулей или один 0 с соответствующей длительностью?

Там можно настроить, чтобы наличие несущей выводилось как 0 так и 1.
Еще надо отключить манчестер.
Сорри, сейчас под рукой нет доков, конкретные поля не скажу...
Когда нет несущей, идет мусор грубо говоря с битовой скоростью модуля (я пока ставлю 256 к).
Если брелок не попадает в полосу приемника, то будет только мусор.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 21 фев 2015, 11:54 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
Raf00084 писал(а):
яж до этого писал ка ловить CAME, разбираете по длительностям и расшифровываете принятый сигнл как 0 или 1 или Z.
может ктонибудь кинуть рабочий код для вывода сигнала ам 433 мгц на gpio2.

У меня сейчас под рукой ничего нет, но надеюсь на неделе смогу выложить получившиеся настройки.
Гпио2 не очень удобный вариант, т.к. с него идет тактовая для внешнего мк. Я одной из первых команд изменяю ее, чтобы убедиться, что девайс слушается. Это имхо самый простой и надежный вариант проверки.
Я когда только начинал читать доки, очень ему обрадовался :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 23 фев 2015, 14:19 
Только пришел

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
по разбору came вообще никаких вопросов нет. там все очевидно и просто.
проблема в том как выделить сигнал из того что валится на gpio от модуля.

доехал до меня usb анализатор, попробую еще с ним поиграться.

Raf00084 писал(а):
может ктонибудь кинуть рабочий код для вывода сигнала ам 433 мгц на gpio2.

мне кажется на этом модуле, не получится чистый am принимать. только OOK


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 24 фев 2015, 01:26 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
olegef писал(а):
по разбору came вообще никаких вопросов нет. там все очевидно и просто.
проблема в том как выделить сигнал из того что валится на gpio от модуля.

доехал до меня usb анализатор, попробую еще с ним поиграться.

Raf00084 писал(а):
может ктонибудь кинуть рабочий код для вывода сигнала ам 433 мгц на gpio2.

мне кажется на этом модуле, не получится чистый am принимать. только OOK

Амплитудная манипуляция - частный случай амплитудной модуляции.
А ООК - это либо и есть амплитудная манипуляция, либо ее простейший случай.
(но надо еще почитать)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 24 фев 2015, 03:29 
Только пришел

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
я конечно могу ошибаться, но мне разница между am и ook видится так: в случае am длинный низкий уровень будет один, в то время как при OOK он будет разбит на не несколько определенной длительности, при этом как разбивать решает внутренний алгоритм модуля
например имеется низкий уровень длительностью 10000us:
am - 0 (длительностью 10000us)
ook - 00000 (каждый по 2000us)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 26 фев 2015, 04:02 
Только пришел

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
в общем как я и предполагал с помощью анализатора ничего путного с gpio снять не удалось.
сигнал в явном виде на выходе отсутствует :((


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 05 мар 2015, 23:59 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
У меня настройки такого плана. Пока не успел разобраться с инверсией выхода, чтобы наличие несущей показывалось единицей. Данные настройки соотв картинке с прошлой страницы.
Код:
//Microcontroller Output Clock
  WriteRF(0x0a, 0x04);
 
  //TUNE mode
  WriteRF(0x07, 0x02);
 
  //433,92 mhz
 
  WriteRF(0x75, 0x53);
  WriteRF(0x76, 0x62);
  WriteRF(0x77, 0x00);

//GPIO0 - прямой прием
  WriteRF(0x0b, 0x14);
 
  //GPIO2 - прямой прием
  WriteRF(0x0d, 0x14);

//полоса фильтра 620 khz
  //WriteRF(0x1c, 0x8E);
  //полоса фильтра 95.3 кГц
  WriteRF(0x1c, 0x04);

//битовая скорость 256 кбит
 
  WriteRF(0x20, 0x2f);
  WriteRF(0x21, 0x02);
  WriteRF(0x22, 0xbb);
  WriteRF(0x23, 0x0d);
  WriteRF(0x24, 0x02);
  WriteRF(0x25, 0xbb);
  WriteRF(0x25, 0xbb);

//raw data
  //Register 30h. Data Access Control
  WriteRF(0x30, 0x84);

  //Register 32h. Header Control 1
  WriteRF(0x32, 0x0f);

  //Register 33h. Header Control 2
  WriteRF(0x33, 0x77);

  //Register 34h. Preamble Length
  //WriteRF(0x34, 0xff);

  //Register 35h. Preamble Detection Control 1
  WriteRF(0x35, 0xf8);

//Modulation Mode Control 2
  WriteRF(0x71, 0x00);

//agc
  WriteRF(0x69, 0x00);
 
  //OOK Counter Value 1
  WriteRF(0x2c, 0x00);
  WriteRF(0x2d, 0x00);
 
  //RX mode
  WriteRF(0x07, 0x04);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 06 мар 2015, 00:00 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
olegef писал(а):
в общем как я и предполагал с помощью анализатора ничего путного с gpio снять не удалось.
сигнал в явном виде на выходе отсутствует :((

Даже если у вас плохой передатчик, не попадающий в полосу приемника, все равно сигнал должен быть от множества автосигнализаций, все еще работающих ровно на 433.92 МГц.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 11 авг 2016, 20:14 
Здравствуйте!

Зарегистрирован: 23 янв 2015, 19:44
Сообщения: 4
Подскажите, уже больше 2х недель бьюсь с чипами si4432. Генерирую посылку вида как на скрине и пытаюсь принять модулем. Модуль вроде видит преамбулу, но не распознаёт байты синхронизации. Использую манчестер на скорости 1024bps. настраиваюсь конфигуратором в экселе с оф. сайта. Модуляция OOK, Manchester Mode is Enabled, Rb[kbps] 0,5 .
Что я делаю не так?


Вложения:
Безымянный2.png
Безымянный2.png [ 32.02 Кб | Просмотров: 5073 ]
Безымянный1.png
Безымянный1.png [ 9.13 Кб | Просмотров: 5073 ]
Безымянный.png
Безымянный.png [ 19.83 Кб | Просмотров: 5073 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 11 авг 2016, 21:52 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1505
А WDS не помогает ?
Там вроде 100500 настроек и можно реальные модули потестить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 11 авг 2016, 22:33 
Здравствуйте!

Зарегистрирован: 23 янв 2015, 19:44
Сообщения: 4
WDS для чипа 4432 у меня показывает только настройки частоты и модуляции, формат пакета там не настроить. Как подцепить WDS к реальному чипу я так и не понял, хотя не сильно углублялся в этот вопрос. Вроде все настройки в XLS файле для конфигурации понятны но тем не менее не работает...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB