Easyelectronics.ru

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

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



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

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

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
Там не только надо настроить gpio. См. AN463 Raw data mode
http://www.silabs.com/Support%20Documen ... /AN463.pdf

Но это не такой уж и удобный режим, как кажется.


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

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

Подскажите, может есть пример взаимодействия модуля и AVR через GPIO si4432?


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

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
Raf00084 писал(а):
Ну вам пакетами? Тут вроде на форуме было про пакетную передачу, RFM22 это тож самое. Есть код в файле это с этого форума что нашел.


спасибо за код.
ну вообще я бы хотел разбирать сигнал сам поимпульсно с учетом длительностей (прием сигнала от погодных датчиков oregon, пульты came&nice, датчики visonic), я конечно понимаю что данный трансивер для моих задач это как из пушки по воробьям. но в данный момент у меня под рукой только эти модули.


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

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

Подскажите, может есть пример взаимодействия модуля и AVR через GPIO si4432?

Как раз именно этот модуль очень хорош для приема сырых данных. Мне удалось разобраться с ним буквально за минуты.
А например сс1101 показался мне очень сложным и глючноватым.


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

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
Raf00084 писал(а):
на пине2 всегда 1 мгц, как по умолчанию все пины 012

Попробуйте изменить эту частоту, чтобы убедиться в правильной работе спи.


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

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
Raf00084 писал(а):
Black Warrior писал(а):
Там не только надо настроить gpio. См. AN463 Raw data mode
http://www.silabs.com/Support%20Documen ... /AN463.pdf

Но это не такой уж и удобный режим, как кажется.

Код:
void SI4432_Init_OOK_433_92(void)
{
   on_cs_rcv1; //óñòàíîâèòü ïèí âûáîðà ÷èïà â 0 àêòèâèðîâàòü ñïè1 äëÿ ýòîãî óñòðîéñòâà
   
   
   read_reg_SI4432(SI4432_REG_Interrupt_Status1);
   read_reg_SI4432(SI4432_REG_Interrupt_Status2);
   write_reg_SI4432 (SI4432_REG_Operating_Function_Control1, 0x80);
   write_reg_SI4432 (SI4432_REG_Interrupt_Enable1, 0x00);
   write_reg_SI4432 (SI4432_REG_Interrupt_Enable2, 0x00);
   read_reg_SI4432(SI4432_REG_Interrupt_Status1);
   read_reg_SI4432(SI4432_REG_Interrupt_Status2);
   
   write_reg_SI4432 (SI4432_REG_GPIO2_Configuration, 0x14);
   //ÎÁÙÈÅ ÍÀÑÒÐÎÉÊÈ
   write_reg_SI4432 (SI4432_REG_Crystal_Oscillator_Load_Capacitance, 0x7F);
      
   //ÍÀÑÒÐÎÉÊÈ ×ÀÑÒÎÒÛ
   write_reg_SI4432 (SI4432_REG_Frequency_Offset, 0x00);
   write_reg_SI4432 (SI4432_REG_Frequency_Channel_Control, 0x00);
   write_reg_SI4432 (SI4432_REG_Frequency_Band_Select, 0x53);
   write_reg_SI4432 (SI4432_REG_Nominal_Carrier_Frequency1, 0x62);
   write_reg_SI4432 (SI4432_REG_Nominal_Carrier_Frequency0, 0x00);
   write_reg_SI4432 (SI4432_REG_Frequency_Hopping_Step_Size, 0x00);
   write_reg_SI4432 (SI4432_REG_Frequency_Hopping_Channel_Select, 0x00);
   //TX Modulation Options
   write_reg_SI4432 (SI4432_REG_TX_Power, 0x1F);
   write_reg_SI4432 (SI4432_REG_TX_Data_Rate1, 0x18);
   write_reg_SI4432 (SI4432_REG_TX_Data_Rate0, 0x93);
   write_reg_SI4432 (SI4432_REG_Modulation_Mode_Control1, 0x2C);
   write_reg_SI4432 (SI4432_REG_Modulation_Mode_Control2, 0x01);
   write_reg_SI4432 (SI4432_REG_Frequency_Deviation, 0x20);
   //RX Modem settings
   write_reg_SI4432 (SI4432_REG_IF_Filter_Bandwidth, 0x01);
   write_reg_SI4432 (SI4432_REG_AFC_Loop_Gearshift_Override, 0x44);
   write_reg_SI4432 (SI4432_REG_AFC_Timing_Control, 0x0A);
   write_reg_SI4432 (SI4432_REG_Clock_Recovery_Gearshift_Override, 0x03);
   write_reg_SI4432 (SI4432_REG_Clock_Recovery_Oversampling_Ratio, 0x64);
   write_reg_SI4432 (SI4432_REG_Clock_Recovery_Offset2, 0x01);
   write_reg_SI4432 (SI4432_REG_Clock_Recovery_Offset1, 0x47);
   write_reg_SI4432 (SI4432_REG_Clock_Recovery_Offset0, 0xAE);
   write_reg_SI4432 (SI4432_REG_Clock_Recovery_Timing_Loop_Gain1, 0x02);
   write_reg_SI4432 (SI4432_REG_Clock_Recovery_Timing_Loop_Gain0, 0x8F);
   write_reg_SI4432 (SI4432_REG_OOK_Counter_Value1, 0x18);
   write_reg_SI4432 (SI4432_REG_OOK_Counter_Value2, 0xBC);
   write_reg_SI4432 (SI4432_REG_Slicer_Peak_Hold, 0x26);
   write_reg_SI4432 (SI4432_REG_AGC_Override1, 0x60);
   //Operation mode
   write_reg_SI4432 (SI4432_REG_Operating_Function_Control2, 0x83);
   write_reg_SI4432 (SI4432_REG_GPIO0_Configuration, 0xD7);   
   write_reg_SI4432 (SI4432_REG_GPIO1_Configuration, 0xD8);   
      
   
   off_cs_rcv1;
};
void SI4432_Reciever_mode (void)
{
   write_reg_SI4432 (SI4432_REG_GPIO2_Configuration, 0xD4);
   write_reg_SI4432 (SI4432_REG_Digital_Test_Bus, 0x54);
   write_reg_SI4432 (SI4432_REG_Operating_Function_Control1, 0x04);
}


уже сил нет биться с ним! Есть может кто помочь разобраться. В коде первой вызываю void SI4432_Init_OOK_433_92(void) потом void SI4432_Reciever_mode (void)
проц работает на 36 мгц, где ошибка ткните носом, спасибо за ссылки читал но там не совсем то. Мне же надо выводить не пакетами данные а сырой эфир но отмодулированный (ну или ка правильно)

Именно что это сырой режим. Но его надо сначала плсмотреть осциллом, чтобв понять что это такое. Там идет много мусора, от которого надо избавляться программно.


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

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
Ну и, грубо говоря, не надо делать лишние настройки. Установили режим ноги, включили прием и смотрим, что у нас получилось. Если все устраивает, то так и оставляем. Нет - читаем АН463 :-)
Для начала желательно взять модуль без рф переключателя. Особенно это будет важно в режиме передачи. Тут лучше вообще начинать с 10 мВт версии чипа.


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

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
решил начать с простой передачи в Direct mode, накидал вот такой код для RaspberryPi:

Код:
#include <wiringPi.h>
#include <wiringPiSPI.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <string>
#include <iostream>
#include <unistd.h>

#define SI4432_SPI_CHANNEL 0
#define SI4432_SDN_PIN 0
#define SI4432_IRQ_PIN 2
#define SI4432_SDO_PIN 13
#define SI4432_SDI_PIN 10

static uint8_t rr(uint8_t);
static void wr(uint8_t,uint8_t);
void SI4432_Reset();
void SI4432_Init();


void SI4432_Init(void)
{
usleep(10);               // 10 ms
SI4432_Reset();        // программный Reset
usleep(10);               // 10 ms

wr(0x06, 0x00);        // не используем прерывания
wr(0x07, 0x01);        // Ready mode
wr(0x09, 0x7f);        // 12.5pf
wr(0x0A, 0x06);        // Clock=1 MHz

wr(0x6d, 0x0F);        // мощность передачи +28dbm
wr(0x71, 0x11);        // Модуляция OOK с прямым входом данных через SDI
wr(0x73, 0x00);        // смещение частоты
wr(0x74, 0x00);        // смещение частоты

wr(0x75, 0x53);        //  433mHz

wr(0x76, 0x4b);        //
wr(0x77, 0x00);        //

wr(0x79, 0x00);       
wr(0x7a, 0x00);       
wr(0x07, 0x09);        // TX Mode
}

uint8_t rr(uint8_t reg)
{
        uint8_t tx_buffer[] = {reg,0x00};
        tx_buffer[0] = reg&0x7f;
        wiringPiSPIDataRW(SI4432_SPI_CHANNEL,(char*)&tx_buffer[0],2);
        return tx_buffer[1];
}

void wr(uint8_t reg, uint8_t value)
{
        uint8_t tx_buffer[] = {reg,value};
        tx_buffer[0] |= 0x80;
        wiringPiSPIDataRW(SI4432_SPI_CHANNEL,(char*)&tx_buffer[0],2);
}


void SI4432_Reset() {
    wr(0x07, 0x80);
    delay(1);
}

int main(int argc, char *argv[]){
        wiringPiSetup();
        delay(16);
        if (wiringPiSPISetup(SI4432_SPI_CHANNEL, 10000000) == -1) {
                printf("Could not initialize SPI\n");
                return false;
        }
        pinMode(SI4432_SDO_PIN, OUTPUT);
       
        pinMode(SI4432_SDN_PIN, OUTPUT);
        digitalWrite(SI4432_SDN_PIN, LOW); // включаем модуль

        delay(20);
        SI4432_Init();
        delay(10);

        digitalWrite(SI4432_SDO_PIN, HIGH);
        usleep(300);
        digitalWrite(SI4432_SDO_PIN, LOW);
        usleep(300);
        digitalWrite(SI4432_SDO_PIN, HIGH);
        usleep(300);
        digitalWrite(SI4432_SDO_PIN, LOW);
        usleep(300);
        digitalWrite(SI4432_SDO_PIN, HIGH);
        usleep(300);
        digitalWrite(SI4432_SDO_PIN, LOW);
        usleep(300);

        printf("done\n");
}


регистры выставляются и считываются, но сигнал генерить пока отказывается. Думаю что проблема с SPI, но квалификация не позволяет сказать где конкретно затык :(

Raf00084, ничего что я в ваш топик вклинился?


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

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


Малина может выступать только как master SPI, поэтому сигнал подаю напрямую на MOSI выход малины который проключен к SDO входу SI4432. Вроде все верно Master Output -> Slave Input.

Делал по аналогии с подключением nrf24l01, хотя сейчас посмотрел библиотеку от mikem и там рекомендованная схема подключения к ардуино выглядит так:
SS pin D10----------NSEL (chip select in)
SCK pin D13----------SCK (SPI clock in)
MOSI pin D11----------SDI (SPI Data in)
MISO pin D12----------SDO (SPI data out)

т.е. MOSI пин цепляют к SDI rfm22b

update. таки сгенерил сигнал, подключение MOSI-SDI, в коде небольшие изменения


Последний раз редактировалось olegef 03 фев 2015, 16:09, всего редактировалось 1 раз.

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

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
olegef, у меня тоже вроде не получалось с ноги запускать передачу.
Вы попробуйте по SPI дать команду. Это точно работает.


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

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
Raf00084, для сс1101 точно такие же настройки SPI.
На всякий случай уточню, вы даете сигнал включения?
Имхо надо первым делом убедиться, что вы можете изменить частоту на гпио2.
Значит все команды проходят и модуль вас понимает.
Дальше уже вроде не должно быть проблем.


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

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
Не может быть, чтобы MOSI подключалось к SDO :-)
Хотя меня просто дико интересует, как микросхемы переживут эту ситуацию.


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

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
Black Warrior писал(а):
Не может быть, чтобы MOSI подключалось к SDO :-)
Хотя меня просто дико интересует, как микросхемы переживут эту ситуацию.


да вы правы, еще раз проверил рабочее подключение - MOSI-SDI, MISO-SDO (выглядит логично).
все живы здоровы и слава богу ;)


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

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
в случае direct rx mode с какой ноги нужно считывать данные? MISO?
а то когда я определяю MISO как INPUT теряется всякая связь с модулем


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

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

А подаете низкий уровень на вывод SDN?


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

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
olegef писал(а):
в случае direct rx mode с какой ноги нужно считывать данные? MISO?
а то когда я определяю MISO как INPUT теряется всякая связь с модулем

Вроде удобнее назначить на гпио.


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

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
Black Warrior писал(а):
olegef писал(а):
в случае direct rx mode с какой ноги нужно считывать данные? MISO?
а то когда я определяю MISO как INPUT теряется всякая связь с модулем

Вроде удобнее назначить на гпио.


глянул доку. если я их правильно понял, то данные передаются только на GPIO : In RX Direct mode, the received RXDATA is output on a physical output pin in real-time.
хотя для TX Direct mode можно использовать как GPIO так и SDI ноги


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

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
Raf00084 писал(а):
регистры читаю вроде статус меняется на прием, а вот если читаю регитр GPIO2 или 1 или 0 то там 0х00.


Судя по вашему коду данные берутся с SPI?
Код:
SPI1->DR

А можете привести пример кода считывания с GPIO2?



Я назначил GPIO0 как RX Data Output (не совсем понял для чего используются старшие биты: gpiodrv), включил режим приемника:
Код:
si4432_wr(0x0B, 0x14);  // gpio0 -> rx_data
si4432_wr(0x07, 0xD4); // enable RX mode


Далее пытаюсь получить значения с GPIO0:
Код:

if(digitalRead(RPI_GPIO0_PIN)==HIGH){
                     printf("1");
                } else {
                     printf("0");
                }

в ответе одни нули :(


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

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
изменил Modulation Mode Control 2, вместо OOK поставил umodulated.

Код:
si4432_wr(0x71,0x00);

теперь вроде как на GPIO сыпятся импульсы примерно одинаковой длительности 100-200мкс, но вот вычленить преамбулу длительностью 5000мкс не удается.

в общем то ли лыжи не едут то ли я... :)
датчик который шлет сигнал модулирует в ASK, почему при OOK одни нули непонятно.
но и unmodulated сигнал обработать тоже не получается обработать


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

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
А так я писал, что будет мусор, который надо уже программно обрабатывать.
Также еще раз настоятельно советую глянуть AN - какие они там дают рекомендации.
В т.ч. чтобы не ловилась преамбула, потом по скорости что то. Там все отлично по пунктам расписано, плюс даны конкретные настройки регистров.

Отдельная проблема, если у вас в передатчике амплитудная модуляция, а не манипуляция. 4432 не будет работать.

Как вариант - попробуйте считывать RSSI. Там всегда что то есть. (Этот вариант будет работать и при модуляции у передатчика :-) )


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

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
olegef писал(а):
изменил Modulation Mode Control 2, вместо OOK поставил umodulated.

Код:
si4432_wr(0x71,0x00);

теперь вроде как на GPIO сыпятся импульсы примерно одинаковой длительности 100-200мкс, но вот вычленить преамбулу длительностью 5000мкс не удается.

в общем то ли лыжи не едут то ли я... :)
датчик который шлет сигнал модулирует в ASK, почему при OOK одни нули непонятно.
но и unmodulated сигнал обработать тоже не получается обработать

А у вас с какой частотой происходит передача модулю и вывод на дисплей? Может быть слишком медленно?
Желательно все таки для начала смотреть осциллографом.

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


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

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
Black Warrior писал(а):
А у вас с какой частотой происходит передача модулю и вывод на дисплей? Может быть слишком медленно?
Желательно все таки для начала смотреть осциллографом.

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


тестирую брелок от ворот Came 433mHz и датчик Visonic MCT-302 - частота у которых судя по выводу SDR отличается не сильно.
настроил si4432 на частоту visonic и последовал вашему совету добавил условие проверки rssi, основной цикл программы теперь выглядит так:

Код:
while(true){
  uint8_t rssi=si4432_rr(0x26);
  if(rssi>0x34){
      if(digitalRead(RPI_GPIO_PIN)==HIGH){
         printf("1");
      } else {
         printf("0");
      }
  }


в итоге данные выводятся на экран только при наличии сигнала, но остается непонятным какие данные нужно брать с GPIO.
Правильно ли я делаю беря уровни HIGH/LOW с ноги? длительность импульсов никак не коррелируется с сигналом.
При этом дешевый 433mhz приемник, c тем же кодом сигнал определяет.


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

Зарегистрирован: 02 фев 2015, 03:22
Сообщения: 22
Raf00084 писал(а):
О так че получилось запустить? на GPIO сигнал есть ? Модуляция АМ или ФМ?


сигнал вроде как есть, но что с него толку - если выделить его из шума не получается :)
модуляция АМ


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

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
olegef писал(а):
в итоге данные выводятся на экран только при наличии сигнала, но остается непонятным какие данные нужно брать с GPIO.
Правильно ли я делаю беря уровни HIGH/LOW с ноги?

Да, правильно.
Прикрепил картинку из AN463.
У них там нарисованы некоторые возможные артефакты (я их отметил эллипсами). Также добавил красными линиями дополнительные артефакты.
А - длительность бита передатчика
В - длительность бита приемника, которая по AN463 должна быть в 5-10 раз короче.

PS: у дешевых брелков нет стабилизации несущей частоты. И она может гулять в очень больших пределах. Дешевые приемники имеют полосу чуть ли не неск МГц. А у 4432 полоса максимум 620 кГц (регистр 1С)


Вложения:
an463.jpg
an463.jpg [ 115.81 Кб | Просмотров: 12016 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите запустить SI4432 (rfm22)
СообщениеДобавлено: 06 фев 2015, 19:51 
Старожил

Зарегистрирован: 28 дек 2012, 07:17
Сообщения: 517
Еще необходимые настройки (AN463)

2.2. Raw Data Mode Packet Handler Settings
In raw data mode, the Si443x is set in a mode such that the standard packet mode is deactivated. To achieve this,
the following register settings are required:
 Set preamble detection threshold to maximum.
 Enable all Header comparisons.
 Enable multi packet mode.
 Enable CRC check.
These settings are done to avoid a possible condition where the receiver identifies some noise pattern as a
preamble and receives an incorrect packet as a standard packet.
In the reference code the user_setup.h file will define the correct modem parameters based on the application
parameters for the raw mode initialization.


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

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


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

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


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

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

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