Easyelectronics.ru

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

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



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • 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 Кб | Просмотров: 11893 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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 Кб | Просмотров: 4851 ]
Безымянный1.png
Безымянный1.png [ 9.13 Кб | Просмотров: 4851 ]
Безымянный.png
Безымянный.png [ 19.83 Кб | Просмотров: 4851 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 11 авг 2016, 21:52 
Старожил
Аватара пользователя

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


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

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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

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