Например TDA7294

Форум РадиоКот • Просмотр темы - Si4463 не взлетает
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн сен 01, 2025 05:52:30

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 78 ]    , , , 4
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Сб авг 02, 2025 05:19:12 
Родился

Зарегистрирован: Сб июл 09, 2022 13:36:24
Сообщений: 16
Рейтинг сообщения: 0
Доброго времени !
Пытаюсь заставить работать на передачу (для начала), но ничего не выходит.
SPI работает, содержимое регистров читаю.
Честно говоря, не могу понять как произвести настройку данного трансивера. Программу скачал (wds3) , полученные "портянки" вроде как отправил по "назначению". Но главный вопрос, как принудительно (не с помощью программы настройки) установить например данное значение:
0x1000 PREAMBLE_TX_LENGTH 0x08 Preamble length
То есть, просто отправляем в начале значение 1000, а затем размер приамбулы ?
Не могу уловить суть этих "портянок" генерируемых программой настройки.. Обычно же есть регистр в которое устанавливаешь значение. Всё просто и понятно


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Сб авг 02, 2025 17:39:31 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 611
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3743
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Ответ на как интерпретировать "портянки" содержится в документации на API работы с этим чипом. И Ваше понимание правильно: для установки длины преамбулы =8 нужно послать в чип 3 байта: 0х10, 0х00, 0х08. Ещё советую почитать мою статью.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Вс авг 03, 2025 00:07:27 
Родился

Зарегистрирован: Сб июл 09, 2022 13:36:24
Сообщений: 16
Рейтинг сообщения: 0
Спасибо ! Дальше разбираюсь )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Пн авг 04, 2025 11:47:38 
Родился

Зарегистрирован: Сб июл 09, 2022 13:36:24
Сообщений: 16
Рейтинг сообщения: 0
Переключаю si4463 в режим передачи, но на выходе тишина. В рацию вроде как чего то есть, но на слух, на уровне помех.. Радио сканер маленькие пики записывает, как будто что то в эфир идёт, но уровень этого сигнала очень маленький... Плата китайская, на входе с антенны установлен переключатель приём-передача (микросхема в 6 выводном корпусе, вывод на плате TX переключаю с микроконтроллера).

Приведён пример переключения в режим передачи:

СпойлерHAL_Delay(100);

while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS

// FIFO_INFO (информацию о буфере tx и rx)
data_lengtn = 2; // lengtn
buff[0] = 0x15; // data
buff[1] = 1; // 0 - не очищаем
si4463_fifo_Write_2 (&buff[0], data_lengtn);


while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS


si4463_fifo_Read (0x44, 0x03); // Used to read CTS and the command response

buffer_lsd[0] = si4463_Package_buffer_rx[0]; // выводим на экран
buffer_lsd[1] = si4463_Package_buffer_rx[1];
buffer_lsd[2] = si4463_Package_buffer_rx[2];


while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS

//
data_lengtn = 4; // lengtn
buff[0] = 0x20; // data
buff[1] = 0;
buff[2] = 0;
buff[3] = 0;
si4463_fifo_Write_2(&buff[0], data_lengtn); //


while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS


si4463_fifo_load(); // загружаем буфер


while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS

// переводим в режим передачи
data_lengtn = 5; // TX
buff[0] = 0x31; // data
buff[1] = 0x00;
buff[2] = 0x70;
buff[3] = 0x00;
buff[4] = 0x00;
si4463_fifo_Write_2 (&buff[0], data_lengtn); // &buff[0] - размер



while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS

// считываем состояние трансивера
data_lengtn = 1;
buff[0] = 0x33; // data, PART_INFO
si4463_fifo_Write_2 (&buff[0], data_lengtn); //

while (si4463_CTS_pressed == 0); // принимаем сигнал CTS

si4463_fifo_Read (0x44, 0x03); // Used to read CTS and the command response

temp_t = si4463_Package_buffer_rx[1]; //temp_t = buffer_lsd[3]; // выводим на экран


Может я не верно включаю в режим передачи ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Пн авг 04, 2025 19:47:17 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 611
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3743
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
На основе приведённой информации ничего сказать не могу. Прежде всего, неясно какая плата с Si4463 используется - на некоторых из них помимо чипа установлен STM8 микроконтроллер, на некоторых нет. Если STM8 на плате модуля нет, то нужно управлять самому выводами 6-пинного антенного коммутатора, запрограммировав соединённые с ним GPIO выводы Si4463 на выход, иначе в антенну ничего не пойдёт. В приведённом коде я этого не вижу. Далее, неясно правильно-ли чип сконфигурирован. И, наконец, правильно-ли работают функции si4463_fifo_Read/Write и как формируется si4463_CTS_pressed. Лучше было-бы привести осциллограммы снятые лог. анализатором типа тех, что в моей статье. Без этого найти проблему на расстоянии мало реально.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Вт авг 05, 2025 14:25:17 
Родился

Зарегистрирован: Сб июл 09, 2022 13:36:24
Сообщений: 16
Рейтинг сообщения: 0
Сергей спасибо за ответы !
Нашёл у себя ошибку, ещё одну. Да, как вы и предполагаете, ошибка у меня в инициализации. При отправке "портянки" файла настроек, все данные отправлялись строка за строкой, без сигнала CTS перед каждой. Код скопировал и упустил момент..

Модуль с трансивером без контроллера, только si4463. Выводы антенного коммутатора выведены на отдельные выводы (подаю с мк напрямую на них).

Описанную мною ошибку исправил, выход появился. Правда вместо отправленных данных идёт не понятно чего в эфир (по радио сканеру, данные набор символов..) Где то ещё ошибка. Функция "si4463_init"
доверия не внушает (не встречал такой записи..), надо её проверить.

Данные, такие как режим работы трансивера, количество содержимого в fifo считывается и выводиться на индикатор, spi работает. Логического анализатора нет к сожалению, только осциллограф.


Спойлер// USER DEFINED PARAMETERS

uint8_t config[] = RADIO_CONFIGURATION_DATA_ARRAY;

// Define your own parameters here

// INPUT DATA
/*
// Crys_freq(Hz): 30000000 Crys_tol(ppm): 20 IF_mode: 2 High_perf_Ch_Fil: 1 OSRtune: 0 Ch_Fil_Bw_AFC: 0 ANT_DIV: 0 PM_pattern: 0
// MOD_type: 2 Rsymb(sps): 10000 Fdev(Hz): 20000 RXBW(Hz): 150000 Manchester: 1 AFC_en: 0 Rsymb_error: 0.0 Chip-Version: 2
// RF Freq.(MHz): 433.92 API_TC: 29 fhst: 250000 inputBW: 0 BERT: 0 RAW_dout: 0 D_source: 0 Hi_pfm_div: 1
// API_ARR_Det_en: 0 Fdev_error: 0 API_ETSI: 0
//
// # RX IF frequency is -468750 Hz
// # WB filter 4 (BW = 82.64 kHz); NB-filter 4 (BW = 82.64 kHz)
//
// Modulation index: 4
*/





// CONFIGURATION COMMANDS

#define RF_POWER_UP 0x02, 0x01, 0x00, 0x01, 0xC9, 0xC3, 0x80
#define RF_GPIO_PIN_CFG 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
#define RF_GLOBAL_XO_TUNE_2 0x11, 0x00, 0x02, 0x00, 0x52, 0x00
#define RF_GLOBAL_CONFIG_1 0x11, 0x00, 0x01, 0x03, 0x20
#define RF_INT_CTL_ENABLE_2 0x11, 0x01, 0x02, 0x00, 0x01, 0x20
#define RF_FRR_CTL_A_MODE_4 0x11, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00
#define RF_PREAMBLE_TX_LENGTH_9 0x11, 0x10, 0x09, 0x00, 0x08, 0x14, 0x00, 0x0F, 0x3D, 0x00, 0x00, 0x00, 0x00
#define RF_SYNC_CONFIG_6 0x11, 0x11, 0x06, 0x00, 0x05, 0xB4, 0x2B, 0x00, 0x00, 0x00
#define RF_PKT_CRC_CONFIG_12 0x11, 0x12, 0x0C, 0x00, 0x04, 0x01, 0x08, 0xFF, 0xFF, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x30
#define RF_PKT_RX_THRESHOLD_12 0x11, 0x12, 0x0C, 0x0C, 0x30, 0x00, 0x0A, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
#define RF_PKT_FIELD_3_CRC_CONFIG_12 0x11, 0x12, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
#define RF_PKT_RX_FIELD_1_CRC_CONFIG_12 0x11, 0x12, 0x0C, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
#define RF_PKT_RX_FIELD_4_CRC_CONFIG_5 0x11, 0x12, 0x05, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00
#define RF_PKT_CRC_SEED_31_24_4 0x11, 0x12, 0x04, 0x36, 0x00, 0x00, 0x00, 0x00
#define RF_MODEM_MOD_TYPE_12 0x11, 0x20, 0x0C, 0x00, 0x02, 0x80, 0x07, 0x01, 0x86, 0xA0, 0x01, 0xC9, 0xC3, 0x80, 0x00, 0x05
#define RF_MODEM_FREQ_DEV_0_1 0x11, 0x20, 0x01, 0x0C, 0x76
#define RF_MODEM_TX_RAMP_DELAY_12 0x11, 0x20, 0x0C, 0x18, 0x01, 0x80, 0x08, 0x03, 0x80, 0x00, 0x20, 0x20, 0x00, 0xE8, 0x01, 0x77
#define RF_MODEM_BCR_NCO_OFFSET_2_12 0x11, 0x20, 0x0C, 0x24, 0x01, 0x5D, 0x86, 0x00, 0xAF, 0x02, 0xC2, 0x00, 0x04, 0x23, 0x80, 0x1D
#define RF_MODEM_AFC_LIMITER_1_3 0x11, 0x20, 0x03, 0x30, 0x10, 0x04, 0x80
#define RF_MODEM_AGC_CONTROL_1 0x11, 0x20, 0x01, 0x35, 0xE0
#define RF_MODEM_AGC_WINDOW_SIZE_12 0x11, 0x20, 0x0C, 0x38, 0x11, 0x52, 0x52, 0x80, 0x02, 0xFF, 0xFF, 0x00, 0x2A, 0x0C, 0x84, 0x22
#define RF_MODEM_RAW_CONTROL_10 0x11, 0x20, 0x0A, 0x45, 0x83, 0x01, 0x55, 0x01, 0x00, 0xFF, 0x06, 0x00, 0x18, 0x40
#define RF_MODEM_RAW_SEARCH2_2 0x11, 0x20, 0x02, 0x50, 0x84, 0x0A
#define RF_MODEM_SPIKE_DET_2 0x11, 0x20, 0x02, 0x54, 0x04, 0x07
#define RF_MODEM_RSSI_MUTE_1 0x11, 0x20, 0x01, 0x57, 0x00
#define RF_MODEM_DSA_CTRL1_5 0x11, 0x20, 0x05, 0x5B, 0x40, 0x04, 0x0B, 0x78, 0x20
#define RF_MODEM_CHFLT_RX1_CHFLT_COE13_7_0_12 0x11, 0x21, 0x0C, 0x00, 0xA2, 0x81, 0x26, 0xAF, 0x3F, 0xEE, 0xC8, 0xC7, 0xDB, 0xF2, 0x02, 0x08
#define RF_MODEM_CHFLT_RX1_CHFLT_COE1_7_0_12 0x11, 0x21, 0x0C, 0x0C, 0x07, 0x03, 0x15, 0xFC, 0x0F, 0x00, 0xA2, 0x81, 0x26, 0xAF, 0x3F, 0xEE
#define RF_MODEM_CHFLT_RX2_CHFLT_COE7_7_0_12 0x11, 0x21, 0x0C, 0x18, 0xC8, 0xC7, 0xDB, 0xF2, 0x02, 0x08, 0x07, 0x03, 0x15, 0xFC, 0x0F, 0x00
#define RF_PA_MODE_4 0x11, 0x22, 0x04, 0x00, 0x08, 0x7F, 0x00, 0x1D
#define RF_SYNTH_PFDCP_CPFF_7 0x11, 0x23, 0x07, 0x00, 0x2C, 0x0E, 0x0B, 0x04, 0x0C, 0x73, 0x03
#define RF_MATCH_VALUE_1_12 0x11, 0x30, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
#define RF_FREQ_CONTROL_INTE_8 0x11, 0x40, 0x08, 0x00, 0x38, 0x0E, 0xD9, 0x16, 0x44, 0x44, 0x20, 0xFE


#define RADIO_CONFIGURATION_DATA_ARRAY { \
0x07, RF_POWER_UP, \
0x08, RF_GPIO_PIN_CFG, \
0x06, RF_GLOBAL_XO_TUNE_2, \
0x05, RF_GLOBAL_CONFIG_1, \
0x06, RF_INT_CTL_ENABLE_2, \
0x08, RF_FRR_CTL_A_MODE_4, \
0x0D, RF_PREAMBLE_TX_LENGTH_9, \
0x0A, RF_SYNC_CONFIG_6, \
0x10, RF_PKT_CRC_CONFIG_12, \
0x10, RF_PKT_RX_THRESHOLD_12, \
0x10, RF_PKT_FIELD_3_CRC_CONFIG_12, \
0x10, RF_PKT_RX_FIELD_1_CRC_CONFIG_12, \
0x09, RF_PKT_RX_FIELD_4_CRC_CONFIG_5, \
0x08, RF_PKT_CRC_SEED_31_24_4, \
0x10, RF_MODEM_MOD_TYPE_12, \
0x05, RF_MODEM_FREQ_DEV_0_1, \
0x10, RF_MODEM_TX_RAMP_DELAY_12, \
0x10, RF_MODEM_BCR_NCO_OFFSET_2_12, \
0x07, RF_MODEM_AFC_LIMITER_1_3, \
0x05, RF_MODEM_AGC_CONTROL_1, \
0x10, RF_MODEM_AGC_WINDOW_SIZE_12, \
0x0E, RF_MODEM_RAW_CONTROL_10, \
0x06, RF_MODEM_RAW_SEARCH2_2, \
0x06, RF_MODEM_SPIKE_DET_2, \
0x05, RF_MODEM_RSSI_MUTE_1, \
0x09, RF_MODEM_DSA_CTRL1_5, \
0x10, RF_MODEM_CHFLT_RX1_CHFLT_COE13_7_0_12, \
0x10, RF_MODEM_CHFLT_RX1_CHFLT_COE1_7_0_12, \
0x10, RF_MODEM_CHFLT_RX2_CHFLT_COE7_7_0_12, \
0x08, RF_PA_MODE_4, \
0x0B, RF_SYNTH_PFDCP_CPFF_7, \
0x10, RF_MATCH_VALUE_1_12, \
0x0C, RF_FREQ_CONTROL_INTE_8, \
}



void si4463_init (void) // Apply the radio configuration
{
resetDevice();

//uint8_t buff[17];

for (uint16_t i=0; i < sizeof(config); i++)
{
memcpy (buff, &config[i], sizeof(buff));

data_lengtn = buff[0];

while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS

si4463_fifo_Write_2 (&buff[1], data_lengtn); //

i += buff[0];

}
}

// Reset the RF chip
void resetDevice(void)
{
si4463_SDN_HIGH();
HAL_Delay(150);
si4463_SDN_LOW();
HAL_Delay(50);
}



void si4463_fifo_load (void)
{

data_lengtn = 11;

buff[0] = 0x66; // команда
buff[1] = 0x01; // data
buff[2] = 0x02;
buff[3] = 0x03;
buff[4] = 0x04;
buff[5] = 0x05;
buff[6] = 0x06;
buff[7] = 0x07;
buff[8] = 0x08;
buff[9] = 0x09;
buff[10] = 0x1A;

si4463_fifo_Write_2 (&buff[0], data_lengtn); //

}


void si4463_setTxInterrupt(void)
{
//uint8_t buff[3]={0x01,0x20,0x00}; // enable PACKET_SENT interrupt

data_lengtn = 2;

buff[0] = 0x01;
buff[1] = 0x20;
buff[2] = 0x00;

si4463_fifo_Write_2 (&buff[0], data_lengtn); //

//return setProperties(0x0100, 3, buf); // RF4463_PROPERTY_INT_CTL_ENABLE
}


void si4463_tx (void)
{
//si4463_TX_HIGH();


si4463_CS_LOW(); //Set CS pin low to start communication

uint8_t data_lengtn = 5; // lengtn

buff[0] = 0x31; // data
buff[1] = 0x00;
buff[2] = 0x30; //30
buff[3] = 0x00;
buff[4] = 0x0A;

si4463_fifo_Write_2 (&buff[0], data_lengtn); // &buff[0] - размер


si4463_CS_HIGH(); //Set CS pin high to end communication

}


void si4463_fifo_info (void)
{

si4463_CS_LOW(); //Set CS pin low to start communication

uint8_t data_lengtn = 2; // lengtn

buff[0] = 0x15; // data
buff[1] = 0x01;

si4463_fifo_Write_2 (&buff[0], data_lengtn); // &buff[0] - размер


si4463_CS_HIGH(); //Set CS pin high to end communication

}


void si4463_update_state(void)
{
si4463_CS_LOW(); //Set CS pin low to start communication


data_lengtn = 2;

buff[0] = 0x34;
buff[1] = 0x02;

si4463_fifo_Write_2 (&buff[0], data_lengtn); //


si4463_CS_HIGH(); //Set CS pin high to end communication
}




void si4463_fifo_Write_2 (uint8_t *data, uint8_t data_lengtn)
{
si4463_CS_LOW(); //Set CS pin low to start communication

for (uint8_t i = 0; i < data_lengtn; i++) // data_lengtn
{
while((SPI_si4463->SR & SPI_SR_TXE) == RESET); // функцию отправки данных FIFO

SPI_si4463->DR = (((uint8_t*)data)[i]);

while((SPI_si4463->SR & SPI_SR_TXE) == RESET); // ожидания завершения передачи
while((SPI_si4463->SR & SPI_SR_BSY) != RESET);
}


si4463_CS_HIGH(); //Set CS pin high to end communication
}






void si4463_fifo_Read (uint8_t addres, uint8_t data_lengtn)
{

si4463_CS_LOW(); //Set CS pin low to start communication

// запись - адрес
while((SPI_si4463->SR & SPI_SR_TXE) == RESET); // функцию отправки данных

SPI_si4463->DR = addres; // addres

while((SPI_si4463->SR & SPI_SR_TXE) == RESET); // ожидания завершения передачи
while((SPI_si4463->SR & SPI_SR_BSY) != RESET) //

{
(void)SPI2->DR;
}


for(uint8_t i = 0; i < data_lengtn; i++) // data_lengtn
{
while((SPI_si4463->SR & SPI_SR_TXE) == RESET);
while((SPI_si4463->SR & SPI_SR_BSY) != RESET);
SPI_si4463->DR = 0x02; // Dummy Byte

while((SPI_si4463->SR & SPI_SR_TXE) == RESET); // ожидания завершения передачи
while((SPI_si4463->SR & SPI_SR_BSY) != RESET);


while (!(SPI_si4463->SR & SPI_SR_RXNE)); // чтение - данные

// считываем полученный байт
si4463_Package_buffer_rx[i] = SPI_si4463->DR; // именно такое обращение !!!

while (SPI_si4463->SR & SPI_SR_BSY);
}

si4463_CS_HIGH(); //Set CS pin high to end communication
}




// программа

while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS

data_lengtn = 1;
buff[0] = 1; // data, PART_INFO
si4463_fifo_Write_2 (&buff[0], data_lengtn); //

while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS

si4463_fifo_Read (0x44, 0x08); // Used to read CTS and the command response

if ((si4463_Package_buffer_rx[2] == 68) && (si4463_Package_buffer_rx[3] == 99)) //temp_t = buffer_lsd[3];
{
temp_t = 4463;
}
else temp_t = 0;


DrawCompas(BLACK); // выводим на экран
HAL_Delay(1000);
//
si4463_TX_HIGH();
si4463_RX_LOW();

//




while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS
si4463_update_state();


while (1)
{




while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS



si4463_fifo_info ();

while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS




si4463_fifo_Read (0x44, 0x03); // Used to read CTS and the command response

buffer_lsd[0] = si4463_Package_buffer_rx[0]; // контроль по экрану
buffer_lsd[1] = si4463_Package_buffer_rx[1];
buffer_lsd[2] = si4463_Package_buffer_rx[2];




while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS
si4463_fifo_load();


while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS


data_lengtn = 4; // lengtn
buff[0] = 0x20; //
buff[1] = 0;
buff[2] = 0;
buff[3] = 0;
si4463_fifo_Write_2(&buff[0], data_lengtn); //

while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS

si4463_fifo_Read (0x44, 0x07); // Used to read CTS and the command response

//



while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS



si4463_tx(); // на передачу


while (si4463_CTS_pressed == 0){}; // принимаем сигнал CTS


data_lengtn = 1;
buff[0] = 0x33; // DEVICE_STATE
si4463_fifo_Write_2 (&buff[0], data_lengtn); //

while (si4463_CTS_pressed == 0); // принимаем сигнал CTS

si4463_fifo_Read (0x44, 0x03); // Used to read CTS and the command response

temp_t = si4463_Package_buffer_rx[1]; // просто выводим на lsd для контроля


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Вт авг 05, 2025 18:59:16 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 611
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3743
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
При иницизлизации чипа (установка properties командой 0x11) состояние CTS проверять не требуется. Советую переписать Ваш код инициализации так, хотя и в Вашем случае он работает нормально:
Спойлерvoid si4463_init (void) // Apply the radio configuration
{
resetDevice();
for (uint16_t i=0; i < sizeof(config); i++) {
si4463_fifo_Write_2(&config[i+1], config[i]);
i += config[i];
}
}

По-прежнему не вижу как формируется сигнал CTS и где переключение антенного коммутатора на передачу. Если не работает, советую проверить конфигурацию мeнаджера пакетов в WDS. Можете прислать мне ссылку на радио модуль и .xls файл конфигурации, експортированный из WDS.

Для сравнения высылаю свой код инициализации и отсылки пакета в одном из старых проектов, но для другого МК. Там не используется антенный коммутатор и сигнал CTS считывается с соответственно сконфигурированной ноги радио чипа. Первый байт в параметре функции SI4468_write - это длина отсылаемого по SPI массива.
Вложение:
si4468.c [6.09 KiB]
Скачиваний: 8


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Ср авг 06, 2025 12:31:20 
Родился

Зарегистрирован: Сб июл 09, 2022 13:36:24
Сообщений: 16
Рейтинг сообщения: 0
Ссылка на модуль.
https://aliexpress.ru/item/100500856945 ... 1693303526


Это файл настройки:
Спойлер/*! @file radio_config.h
* @brief This file contains the automatically generated
* configurations.
*
* @n WDS GUI Version: 3.2.11.0
* @n Device: Si4463 Rev.: C2
*
* @b COPYRIGHT
* @n Silicon Laboratories Confidential
* @n Copyright 2017 Silicon Laboratories, Inc.
* @n http://www.silabs.com
*/

#ifndef RADIO_CONFIG_H_
#define RADIO_CONFIG_H_

// USER DEFINED PARAMETERS
// Define your own parameters here

// INPUT DATA
/*
// Crys_freq(Hz): 30000000 Crys_tol(ppm): 20 IF_mode: 2 High_perf_Ch_Fil: 1 OSRtune: 0 Ch_Fil_Bw_AFC: 0 ANT_DIV: 0 PM_pattern: 0
// MOD_type: 2 Rsymb(sps): 10000 Fdev(Hz): 20000 RXBW(Hz): 150000 Manchester: 1 AFC_en: 0 Rsymb_error: 0.0 Chip-Version: 2
// RF Freq.(MHz): 433.92 API_TC: 29 fhst: 250000 inputBW: 0 BERT: 0 RAW_dout: 0 D_source: 0 Hi_pfm_div: 1
// API_ARR_Det_en: 0 Fdev_error: 0 API_ETSI: 0
//
// # RX IF frequency is -468750 Hz
// # WB filter 4 (BW = 82.64 kHz); NB-filter 4 (BW = 82.64 kHz)
//
// Modulation index: 4
*/


// CONFIGURATION PARAMETERS
#define RADIO_CONFIGURATION_DATA_RADIO_XO_FREQ 30000000L
#define RADIO_CONFIGURATION_DATA_CHANNEL_NUMBER 0x00
#define RADIO_CONFIGURATION_DATA_RADIO_PACKET_LENGTH 0x07
#define RADIO_CONFIGURATION_DATA_RADIO_STATE_AFTER_POWER_UP 0x03
#define RADIO_CONFIGURATION_DATA_RADIO_DELAY_CNT_AFTER_RESET 0xF000

#include "..\drivers\radio\Si446x\si446x_patch.h"


// CONFIGURATION COMMANDS

/*
// Command: RF_POWER_UP
// Description: Command to power-up the device and select the operational mode and functionality.
*/
#define RF_POWER_UP 0x02, 0x81, 0x00, 0x01, 0xC9, 0xC3, 0x80

/*
// Command: RF_GPIO_PIN_CFG
// Description: Configures the GPIO pins.
*/
#define RF_GPIO_PIN_CFG 0x13, 0x00, 0x08, 0x13, 0x11, 0x00, 0x00, 0x00

/*
// Set properties: RF_GLOBAL_XO_TUNE_2
// Number of properties: 2
// Group ID: 0x00
// Start ID: 0x00
// Default values: 0x40, 0x00,
// Descriptions:
// GLOBAL_XO_TUNE - Configure the internal capacitor frequency tuning bank for the crystal oscillator.
// GLOBAL_CLK_CFG - Clock configuration options.
*/
#define RF_GLOBAL_XO_TUNE_2 0x11, 0x00, 0x02, 0x00, 0x52, 0x00

/*
// Set properties: RF_GLOBAL_CONFIG_1
// Number of properties: 1
// Group ID: 0x00
// Start ID: 0x03
// Default values: 0x20,
// Descriptions:
// GLOBAL_CONFIG - Global configuration settings.
*/
#define RF_GLOBAL_CONFIG_1 0x11, 0x00, 0x01, 0x03, 0x20

/*
// Set properties: RF_INT_CTL_ENABLE_2
// Number of properties: 2
// Group ID: 0x01
// Start ID: 0x00
// Default values: 0x04, 0x00,
// Descriptions:
// INT_CTL_ENABLE - This property provides for global enabling of the three interrupt groups (Chip, Modem and Packet Handler) in order to generate HW interrupts at the NIRQ pin.
// INT_CTL_PH_ENABLE - Enable individual interrupt sources within the Packet Handler Interrupt Group to generate a HW interrupt on the NIRQ output pin.
*/
#define RF_INT_CTL_ENABLE_2 0x11, 0x01, 0x02, 0x00, 0x01, 0x20

/*
// Set properties: RF_FRR_CTL_A_MODE_4
// Number of properties: 4
// Group ID: 0x02
// Start ID: 0x00
// Default values: 0x01, 0x02, 0x09, 0x00,
// Descriptions:
// FRR_CTL_A_MODE - Fast Response Register A Configuration.
// FRR_CTL_B_MODE - Fast Response Register B Configuration.
// FRR_CTL_C_MODE - Fast Response Register C Configuration.
// FRR_CTL_D_MODE - Fast Response Register D Configuration.
*/
#define RF_FRR_CTL_A_MODE_4 0x11, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00

/*
// Set properties: RF_PREAMBLE_TX_LENGTH_9
// Number of properties: 9
// Group ID: 0x10
// Start ID: 0x00
// Default values: 0x08, 0x14, 0x00, 0x0F, 0x21, 0x00, 0x00, 0x00, 0x00,
// Descriptions:
// PREAMBLE_TX_LENGTH - Configure length of TX Preamble.
// PREAMBLE_CONFIG_STD_1 - Configuration of reception of a packet with a Standard Preamble pattern.
// PREAMBLE_CONFIG_NSTD - Configuration of transmission/reception of a packet with a Non-Standard Preamble pattern.
// PREAMBLE_CONFIG_STD_2 - Configuration of timeout periods during reception of a packet with Standard Preamble pattern.
// PREAMBLE_CONFIG - General configuration bits for the Preamble field.
// PREAMBLE_PATTERN_31_24 - Configuration of the bit values describing a Non-Standard Preamble pattern.
// PREAMBLE_PATTERN_23_16 - Configuration of the bit values describing a Non-Standard Preamble pattern.
// PREAMBLE_PATTERN_15_8 - Configuration of the bit values describing a Non-Standard Preamble pattern.
// PREAMBLE_PATTERN_7_0 - Configuration of the bit values describing a Non-Standard Preamble pattern.
*/
#define RF_PREAMBLE_TX_LENGTH_9 0x11, 0x10, 0x09, 0x00, 0x08, 0x14, 0x00, 0x0F, 0x3D, 0x00, 0x00, 0x00, 0x00

/*
// Set properties: RF_SYNC_CONFIG_6
// Number of properties: 6
// Group ID: 0x11
// Start ID: 0x00
// Default values: 0x01, 0x2D, 0xD4, 0x2D, 0xD4, 0x00,
// Descriptions:
// SYNC_CONFIG - Sync Word configuration bits.
// SYNC_BITS_31_24 - Sync word.
// SYNC_BITS_23_16 - Sync word.
// SYNC_BITS_15_8 - Sync word.
// SYNC_BITS_7_0 - Sync word.
// SYNC_CONFIG2 - Sync Word configuration bits.
*/
#define RF_SYNC_CONFIG_6 0x11, 0x11, 0x06, 0x00, 0x05, 0x50, 0x50, 0x00, 0x00, 0x00

/*
// Set properties: RF_PKT_CRC_CONFIG_12
// Number of properties: 12
// Group ID: 0x12
// Start ID: 0x00
// Default values: 0x00, 0x01, 0x08, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
// Descriptions:
// PKT_CRC_CONFIG - Select a CRC polynomial and seed.
// PKT_WHT_POLY_15_8 - 16-bit polynomial value for the PN Generator (e.g., for Data Whitening)
// PKT_WHT_POLY_7_0 - 16-bit polynomial value for the PN Generator (e.g., for Data Whitening)
// PKT_WHT_SEED_15_8 - 16-bit seed value for the PN Generator (e.g., for Data Whitening)
// PKT_WHT_SEED_7_0 - 16-bit seed value for the PN Generator (e.g., for Data Whitening)
// PKT_WHT_BIT_NUM - Selects which bit of the LFSR (used to generate the PN / data whitening sequence) is used as the output bit for data scrambling.
// PKT_CONFIG1 - General configuration bits for transmission or reception of a packet.
// PKT_CONFIG2 - General packet configuration bits.
// PKT_LEN - Configuration bits for reception of a variable length packet.
// PKT_LEN_FIELD_SOURCE - Field number containing the received packet length byte(s).
// PKT_LEN_ADJUST - Provides for adjustment/offset of the received packet length value (in order to accommodate a variety of methods of defining total packet length).
// PKT_TX_THRESHOLD - TX FIFO almost empty threshold.
*/
#define RF_PKT_CRC_CONFIG_12 0x11, 0x12, 0x0C, 0x00, 0x04, 0x01, 0x08, 0xFF, 0xFF, 0x20, 0x02, 0x00, 0x00, 0x00, 0x00, 0x30

/*
// Set properties: RF_PKT_RX_THRESHOLD_12
// Number of properties: 12
// Group ID: 0x12
// Start ID: 0x0C
// Default values: 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
// Descriptions:
// PKT_RX_THRESHOLD - RX FIFO Almost Full threshold.
// PKT_FIELD_1_LENGTH_12_8 - Unsigned 13-bit Field 1 length value.
// PKT_FIELD_1_LENGTH_7_0 - Unsigned 13-bit Field 1 length value.
// PKT_FIELD_1_CONFIG - General data processing and packet configuration bits for Field 1.
// PKT_FIELD_1_CRC_CONFIG - Configuration of CRC control bits across Field 1.
// PKT_FIELD_2_LENGTH_12_8 - Unsigned 13-bit Field 2 length value.
// PKT_FIELD_2_LENGTH_7_0 - Unsigned 13-bit Field 2 length value.
// PKT_FIELD_2_CONFIG - General data processing and packet configuration bits for Field 2.
// PKT_FIELD_2_CRC_CONFIG - Configuration of CRC control bits across Field 2.
// PKT_FIELD_3_LENGTH_12_8 - Unsigned 13-bit Field 3 length value.
// PKT_FIELD_3_LENGTH_7_0 - Unsigned 13-bit Field 3 length value.
// PKT_FIELD_3_CONFIG - General data processing and packet configuration bits for Field 3.
*/
#define RF_PKT_RX_THRESHOLD_12 0x11, 0x12, 0x0C, 0x0C, 0x30, 0x00, 0x07, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

/*
// Set properties: RF_PKT_FIELD_3_CRC_CONFIG_12
// Number of properties: 12
// Group ID: 0x12
// Start ID: 0x18
// Default values: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
// Descriptions:
// PKT_FIELD_3_CRC_CONFIG - Configuration of CRC control bits across Field 3.
// PKT_FIELD_4_LENGTH_12_8 - Unsigned 13-bit Field 4 length value.
// PKT_FIELD_4_LENGTH_7_0 - Unsigned 13-bit Field 4 length value.
// PKT_FIELD_4_CONFIG - General data processing and packet configuration bits for Field 4.
// PKT_FIELD_4_CRC_CONFIG - Configuration of CRC control bits across Field 4.
// PKT_FIELD_5_LENGTH_12_8 - Unsigned 13-bit Field 5 length value.
// PKT_FIELD_5_LENGTH_7_0 - Unsigned 13-bit Field 5 length value.
// PKT_FIELD_5_CONFIG - General data processing and packet configuration bits for Field 5.
// PKT_FIELD_5_CRC_CONFIG - Configuration of CRC control bits across Field 5.
// PKT_RX_FIELD_1_LENGTH_12_8 - Unsigned 13-bit RX Field 1 length value.
// PKT_RX_FIELD_1_LENGTH_7_0 - Unsigned 13-bit RX Field 1 length value.
// PKT_RX_FIELD_1_CONFIG - General data processing and packet configuration bits for RX Field 1.
*/
#define RF_PKT_FIELD_3_CRC_CONFIG_12 0x11, 0x12, 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

/*
// Set properties: RF_PKT_RX_FIELD_1_CRC_CONFIG_12
// Number of properties: 12
// Group ID: 0x12
// Start ID: 0x24
// Default values: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
// Descriptions:
// PKT_RX_FIELD_1_CRC_CONFIG - Configuration of CRC control bits across RX Field 1.
// PKT_RX_FIELD_2_LENGTH_12_8 - Unsigned 13-bit RX Field 2 length value.
// PKT_RX_FIELD_2_LENGTH_7_0 - Unsigned 13-bit RX Field 2 length value.
// PKT_RX_FIELD_2_CONFIG - General data processing and packet configuration bits for RX Field 2.
// PKT_RX_FIELD_2_CRC_CONFIG - Configuration of CRC control bits across RX Field 2.
// PKT_RX_FIELD_3_LENGTH_12_8 - Unsigned 13-bit RX Field 3 length value.
// PKT_RX_FIELD_3_LENGTH_7_0 - Unsigned 13-bit RX Field 3 length value.
// PKT_RX_FIELD_3_CONFIG - General data processing and packet configuration bits for RX Field 3.
// PKT_RX_FIELD_3_CRC_CONFIG - Configuration of CRC control bits across RX Field 3.
// PKT_RX_FIELD_4_LENGTH_12_8 - Unsigned 13-bit RX Field 4 length value.
// PKT_RX_FIELD_4_LENGTH_7_0 - Unsigned 13-bit RX Field 4 length value.
// PKT_RX_FIELD_4_CONFIG - General data processing and packet configuration bits for RX Field 4.
*/
#define RF_PKT_RX_FIELD_1_CRC_CONFIG_12 0x11, 0x12, 0x0C, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

/*
// Set properties: RF_PKT_RX_FIELD_4_CRC_CONFIG_5
// Number of properties: 5
// Group ID: 0x12
// Start ID: 0x30
// Default values: 0x00, 0x00, 0x00, 0x00, 0x00,
// Descriptions:
// PKT_RX_FIELD_4_CRC_CONFIG - Configuration of CRC control bits across RX Field 4.
// PKT_RX_FIELD_5_LENGTH_12_8 - Unsigned 13-bit RX Field 5 length value.
// PKT_RX_FIELD_5_LENGTH_7_0 - Unsigned 13-bit RX Field 5 length value.
// PKT_RX_FIELD_5_CONFIG - General data processing and packet configuration bits for RX Field 5.
// PKT_RX_FIELD_5_CRC_CONFIG - Configuration of CRC control bits across RX Field 5.
*/
#define RF_PKT_RX_FIELD_4_CRC_CONFIG_5 0x11, 0x12, 0x05, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00

/*
// Set properties: RF_PKT_CRC_SEED_31_24_4
// Number of properties: 4
// Group ID: 0x12
// Start ID: 0x36
// Default values: 0x00, 0x00, 0x00, 0x00,
// Descriptions:
// PKT_CRC_SEED_31_24 - 32-bit seed value for the 32-bit CRC engine
// PKT_CRC_SEED_23_16 - 32-bit seed value for the 32-bit CRC engine
// PKT_CRC_SEED_15_8 - 32-bit seed value for the 32-bit CRC engine
// PKT_CRC_SEED_7_0 - 32-bit seed value for the 32-bit CRC engine
*/
#define RF_PKT_CRC_SEED_31_24_4 0x11, 0x12, 0x04, 0x36, 0x00, 0x00, 0x00, 0x00

/*
// Set properties: RF_MODEM_MOD_TYPE_12
// Number of properties: 12
// Group ID: 0x20
// Start ID: 0x00
// Default values: 0x02, 0x80, 0x07, 0x0F, 0x42, 0x40, 0x01, 0xC9, 0xC3, 0x80, 0x00, 0x06,
// Descriptions:
// MODEM_MOD_TYPE - Selects the type of modulation. In TX mode, additionally selects the source of the modulation.
// MODEM_MAP_CONTROL - Controls polarity and mapping of transmit and receive bits.
// MODEM_DSM_CTRL - Miscellaneous control bits for the Delta-Sigma Modulator (DSM) in the PLL Synthesizer.
// MODEM_DATA_RATE_2 - Unsigned 24-bit value used to determine the TX data rate
// MODEM_DATA_RATE_1 - Unsigned 24-bit value used to determine the TX data rate
// MODEM_DATA_RATE_0 - Unsigned 24-bit value used to determine the TX data rate
// MODEM_TX_NCO_MODE_3 - TX Gaussian filter oversampling ratio and Byte 3 of unsigned 26-bit TX Numerically Controlled Oscillator (NCO) modulus.
// MODEM_TX_NCO_MODE_2 - TX Gaussian filter oversampling ratio and Byte 3 of unsigned 26-bit TX Numerically Controlled Oscillator (NCO) modulus.
// MODEM_TX_NCO_MODE_1 - TX Gaussian filter oversampling ratio and Byte 3 of unsigned 26-bit TX Numerically Controlled Oscillator (NCO) modulus.
// MODEM_TX_NCO_MODE_0 - TX Gaussian filter oversampling ratio and Byte 3 of unsigned 26-bit TX Numerically Controlled Oscillator (NCO) modulus.
// MODEM_FREQ_DEV_2 - 17-bit unsigned TX frequency deviation word.
// MODEM_FREQ_DEV_1 - 17-bit unsigned TX frequency deviation word.
*/
#define RF_MODEM_MOD_TYPE_12 0x11, 0x20, 0x0C, 0x00, 0x02, 0x80, 0x07, 0x01, 0x86, 0xA0, 0x01, 0xC9, 0xC3, 0x80, 0x00, 0x05

/*
// Set properties: RF_MODEM_FREQ_DEV_0_1
// Number of properties: 1
// Group ID: 0x20
// Start ID: 0x0C
// Default values: 0xD3,
// Descriptions:
// MODEM_FREQ_DEV_0 - 17-bit unsigned TX frequency deviation word.
*/
#define RF_MODEM_FREQ_DEV_0_1 0x11, 0x20, 0x01, 0x0C, 0x76

/*
// Set properties: RF_MODEM_TX_RAMP_DELAY_12
// Number of properties: 12
// Group ID: 0x20
// Start ID: 0x18
// Default values: 0x01, 0x00, 0x08, 0x03, 0xC0, 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x4B,
// Descriptions:
// MODEM_TX_RAMP_DELAY - TX ramp-down delay setting.
// MODEM_MDM_CTRL - MDM control.
// MODEM_IF_CONTROL - Selects Fixed-IF, Scaled-IF, or Zero-IF mode of RX Modem operation.
// MODEM_IF_FREQ_2 - the IF frequency setting (an 18-bit signed number).
// MODEM_IF_FREQ_1 - the IF frequency setting (an 18-bit signed number).
// MODEM_IF_FREQ_0 - the IF frequency setting (an 18-bit signed number).
// MODEM_DECIMATION_CFG1 - Specifies three decimator ratios for the Cascaded Integrator Comb (CIC) filter.
// MODEM_DECIMATION_CFG0 - Specifies miscellaneous parameters and decimator ratios for the Cascaded Integrator Comb (CIC) filter.
// MODEM_DECIMATION_CFG2 - Specifies miscellaneous decimator filter selections.
// MODEM_IFPKD_THRESHOLDS -
// MODEM_BCR_OSR_1 - RX BCR/Slicer oversampling rate (12-bit unsigned number).
// MODEM_BCR_OSR_0 - RX BCR/Slicer oversampling rate (12-bit unsigned number).
*/
#define RF_MODEM_TX_RAMP_DELAY_12 0x11, 0x20, 0x0C, 0x18, 0x01, 0x80, 0x08, 0x03, 0x80, 0x00, 0x20, 0x20, 0x00, 0xE8, 0x01, 0x77

/*
// Set properties: RF_MODEM_BCR_NCO_OFFSET_2_12
// Number of properties: 12
// Group ID: 0x20
// Start ID: 0x24
// Default values: 0x06, 0xD3, 0xA0, 0x06, 0xD3, 0x02, 0xC0, 0x00, 0x00, 0x23, 0x83, 0x69,
// Descriptions:
// MODEM_BCR_NCO_OFFSET_2 - RX BCR NCO offset value (an unsigned 22-bit number).
// MODEM_BCR_NCO_OFFSET_1 - RX BCR NCO offset value (an unsigned 22-bit number).
// MODEM_BCR_NCO_OFFSET_0 - RX BCR NCO offset value (an unsigned 22-bit number).
// MODEM_BCR_GAIN_1 - The unsigned 11-bit RX BCR loop gain value.
// MODEM_BCR_GAIN_0 - The unsigned 11-bit RX BCR loop gain value.
// MODEM_BCR_GEAR - RX BCR loop gear control.
// MODEM_BCR_MISC1 - Miscellaneous control bits for the RX BCR loop.
// MODEM_BCR_MISC0 - Miscellaneous RX BCR loop controls.
// MODEM_AFC_GEAR - RX AFC loop gear control.
// MODEM_AFC_WAIT - RX AFC loop wait time control.
// MODEM_AFC_GAIN_1 - Sets the gain of the PLL-based AFC acquisition loop, and provides miscellaneous control bits for AFC functionality.
// MODEM_AFC_GAIN_0 - Sets the gain of the PLL-based AFC acquisition loop, and provides miscellaneous control bits for AFC functionality.
*/
#define RF_MODEM_BCR_NCO_OFFSET_2_12 0x11, 0x20, 0x0C, 0x24, 0x01, 0x5D, 0x86, 0x00, 0xAF, 0x02, 0xC2, 0x00, 0x04, 0x23, 0x80, 0x1D

/*
// Set properties: RF_MODEM_AFC_LIMITER_1_3
// Number of properties: 3
// Group ID: 0x20
// Start ID: 0x30
// Default values: 0x00, 0x40, 0xA0,
// Descriptions:
// MODEM_AFC_LIMITER_1 - Set the AFC limiter value.
// MODEM_AFC_LIMITER_0 - Set the AFC limiter value.
// MODEM_AFC_MISC - Specifies miscellaneous AFC control bits.
*/
#define RF_MODEM_AFC_LIMITER_1_3 0x11, 0x20, 0x03, 0x30, 0x10, 0x04, 0x80

/*
// Set properties: RF_MODEM_AGC_CONTROL_1
// Number of properties: 1
// Group ID: 0x20
// Start ID: 0x35
// Default values: 0xE0,
// Descriptions:
// MODEM_AGC_CONTROL - Miscellaneous control bits for the Automatic Gain Control (AGC) function in the RX Chain.
*/
#define RF_MODEM_AGC_CONTROL_1 0x11, 0x20, 0x01, 0x35, 0xE0

/*
// Set properties: RF_MODEM_AGC_WINDOW_SIZE_12
// Number of properties: 12
// Group ID: 0x20
// Start ID: 0x38
// Default values: 0x11, 0x10, 0x10, 0x0B, 0x1C, 0x40, 0x00, 0x00, 0x2B, 0x0C, 0xA4, 0x03,
// Descriptions:
// MODEM_AGC_WINDOW_SIZE - Specifies the size of the measurement and settling windows for the AGC algorithm.
// MODEM_AGC_RFPD_DECAY - Sets the decay time of the RF peak detectors.
// MODEM_AGC_IFPD_DECAY - Sets the decay time of the IF peak detectors.
// MODEM_FSK4_GAIN1 - Specifies the gain factor of the secondary branch in 4(G)FSK ISI-suppression.
// MODEM_FSK4_GAIN0 - Specifies the gain factor of the primary branch in 4(G)FSK ISI-suppression.
// MODEM_FSK4_TH1 - 16 bit 4(G)FSK slicer threshold.
// MODEM_FSK4_TH0 - 16 bit 4(G)FSK slicer threshold.
// MODEM_FSK4_MAP - 4(G)FSK symbol mapping code.
// MODEM_OOK_PDTC - Configures the attack and decay times of the OOK Peak Detector.
// MODEM_OOK_BLOPK - Configures the slicing reference level of the OOK Peak Detector.
// MODEM_OOK_CNT1 - OOK control.
// MODEM_OOK_MISC - Selects the detector(s) used for demodulation of an OOK signal, or for demodulation of a (G)FSK signal when using the asynchronous demodulator.
*/
#define RF_MODEM_AGC_WINDOW_SIZE_12 0x11, 0x20, 0x0C, 0x38, 0x11, 0x52, 0x52, 0x80, 0x02, 0xFF, 0xFF, 0x00, 0x2A, 0x0C, 0x84, 0x22

/*
// Set properties: RF_MODEM_RAW_CONTROL_10
// Number of properties: 10
// Group ID: 0x20
// Start ID: 0x45
// Default values: 0x02, 0x00, 0xA3, 0x02, 0x80, 0xFF, 0x0C, 0x01, 0x00, 0x40,
// Descriptions:
// MODEM_RAW_CONTROL - Defines gain and enable controls for raw / nonstandard mode.
// MODEM_RAW_EYE_1 - 11 bit eye-open detector threshold.
// MODEM_RAW_EYE_0 - 11 bit eye-open detector threshold.
// MODEM_ANT_DIV_MODE - Antenna diversity mode settings.
// MODEM_ANT_DIV_CONTROL - Specifies controls for the Antenna Diversity algorithm.
// MODEM_RSSI_THRESH - Configures the RSSI threshold.
// MODEM_RSSI_JUMP_THRESH - Configures the RSSI Jump Detection threshold.
// MODEM_RSSI_CONTROL - Control of the averaging modes and latching time for reporting RSSI value(s).
// MODEM_RSSI_CONTROL2 - RSSI Jump Detection control.
// MODEM_RSSI_COMP - RSSI compensation value.
*/
#define RF_MODEM_RAW_CONTROL_10 0x11, 0x20, 0x0A, 0x45, 0x83, 0x01, 0x55, 0x01, 0x00, 0xFF, 0x06, 0x00, 0x18, 0x40

/*
// Set properties: RF_MODEM_RAW_SEARCH2_2
// Number of properties: 2
// Group ID: 0x20
// Start ID: 0x50
// Default values: 0x00, 0x08,
// Descriptions:
// MODEM_RAW_SEARCH2 - Defines and controls the search period length for the Moving Average and Min-Max detectors.
// MODEM_CLKGEN_BAND - Select PLL Synthesizer output divider ratio as a function of frequency band.
*/
#define RF_MODEM_RAW_SEARCH2_2 0x11, 0x20, 0x02, 0x50, 0x84, 0x0A

/*
// Set properties: RF_MODEM_SPIKE_DET_2
// Number of properties: 2
// Group ID: 0x20
// Start ID: 0x54
// Default values: 0x00, 0x00,
// Descriptions:
// MODEM_SPIKE_DET - Configures the threshold for (G)FSK Spike Detection.
// MODEM_ONE_SHOT_AFC - Configures parameters for th e One Shot AFC function and for BCR timing/acquisition.
*/
#define RF_MODEM_SPIKE_DET_2 0x11, 0x20, 0x02, 0x54, 0x04, 0x07

/*
// Set properties: RF_MODEM_RSSI_MUTE_1
// Number of properties: 1
// Group ID: 0x20
// Start ID: 0x57
// Default values: 0x00,
// Descriptions:
// MODEM_RSSI_MUTE - Configures muting of the RSSI to avoid false RSSI interrupts.
*/
#define RF_MODEM_RSSI_MUTE_1 0x11, 0x20, 0x01, 0x57, 0x00

/*
// Set properties: RF_MODEM_DSA_CTRL1_5
// Number of properties: 5
// Group ID: 0x20
// Start ID: 0x5B
// Default values: 0x00, 0x00, 0x00, 0x00, 0x00,
// Descriptions:
// MODEM_DSA_CTRL1 - Configures parameters for the Signal Arrival Detection circuit block and algorithm.
// MODEM_DSA_CTRL2 - Configures parameters for the Signal Arrival Detection circuit block and algorithm.
// MODEM_DSA_QUAL - Configures parameters for the Eye Opening qualification m ethod of the Signal Arrival Detection algorithm.
// MODEM_DSA_RSSI - Signal Arrival Detect RSSI Qualifier Config
// MODEM_DSA_MISC - Miscellaneous detection of signal arrival bits.
*/
#define RF_MODEM_DSA_CTRL1_5 0x11, 0x20, 0x05, 0x5B, 0x40, 0x04, 0x0B, 0x78, 0x20

/*
// Set properties: RF_MODEM_CHFLT_RX1_CHFLT_COE13_7_0_12
// Number of properties: 12
// Group ID: 0x21
// Start ID: 0x00
// Default values: 0xFF, 0xBA, 0x0F, 0x51, 0xCF, 0xA9, 0xC9, 0xFC, 0x1B, 0x1E, 0x0F, 0x01,
// Descriptions:
// MODEM_CHFLT_RX1_CHFLT_COE13_7_0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COE12_7_0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COE11_7_0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COE10_7_0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COE9_7_0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COE8_7_0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COE7_7_0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COE6_7_0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COE5_7_0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COE4_7_0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COE3_7_0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COE2_7_0 - Filter coefficients for the first set of RX filter coefficients.
*/
#define RF_MODEM_CHFLT_RX1_CHFLT_COE13_7_0_12 0x11, 0x21, 0x0C, 0x00, 0xA2, 0x81, 0x26, 0xAF, 0x3F, 0xEE, 0xC8, 0xC7, 0xDB, 0xF2, 0x02, 0x08

/*
// Set properties: RF_MODEM_CHFLT_RX1_CHFLT_COE1_7_0_12
// Number of properties: 12
// Group ID: 0x21
// Start ID: 0x0C
// Default values: 0xFC, 0xFD, 0x15, 0xFF, 0x00, 0x0F, 0xFF, 0xC4, 0x30, 0x7F, 0xF5, 0xB5,
// Descriptions:
// MODEM_CHFLT_RX1_CHFLT_COE1_7_0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COE0_7_0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COEM0 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COEM1 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COEM2 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX1_CHFLT_COEM3 - Filter coefficients for the first set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COE13_7_0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COE12_7_0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COE11_7_0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COE10_7_0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COE9_7_0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COE8_7_0 - Filter coefficients for the second set of RX filter coefficients.
*/
#define RF_MODEM_CHFLT_RX1_CHFLT_COE1_7_0_12 0x11, 0x21, 0x0C, 0x0C, 0x07, 0x03, 0x15, 0xFC, 0x0F, 0x00, 0xA2, 0x81, 0x26, 0xAF, 0x3F, 0xEE

/*
// Set properties: RF_MODEM_CHFLT_RX2_CHFLT_COE7_7_0_12
// Number of properties: 12
// Group ID: 0x21
// Start ID: 0x18
// Default values: 0xB8, 0xDE, 0x05, 0x17, 0x16, 0x0C, 0x03, 0x00, 0x15, 0xFF, 0x00, 0x00,
// Descriptions:
// MODEM_CHFLT_RX2_CHFLT_COE7_7_0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COE6_7_0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COE5_7_0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COE4_7_0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COE3_7_0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COE2_7_0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COE1_7_0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COE0_7_0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COEM0 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COEM1 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COEM2 - Filter coefficients for the second set of RX filter coefficients.
// MODEM_CHFLT_RX2_CHFLT_COEM3 - Filter coefficients for the second set of RX filter coefficients.
*/
#define RF_MODEM_CHFLT_RX2_CHFLT_COE7_7_0_12 0x11, 0x21, 0x0C, 0x18, 0xC8, 0xC7, 0xDB, 0xF2, 0x02, 0x08, 0x07, 0x03, 0x15, 0xFC, 0x0F, 0x00

/*
// Set properties: RF_PA_MODE_4
// Number of properties: 4
// Group ID: 0x22
// Start ID: 0x00
// Default values: 0x08, 0x7F, 0x00, 0x5D,
// Descriptions:
// PA_MODE - Selects the PA operating mode, and selects resolution of PA power adjustment (i.e., step size).
// PA_PWR_LVL - Configuration of PA output power level.
// PA_BIAS_CLKDUTY - Configuration of the PA Bias and duty cycle of the TX clock source.
// PA_TC - Configuration of PA ramping parameters.
*/
#define RF_PA_MODE_4 0x11, 0x22, 0x04, 0x00, 0x08, 0x7F, 0x00, 0x1D

/*
// Set properties: RF_SYNTH_PFDCP_CPFF_7
// Number of properties: 7
// Group ID: 0x23
// Start ID: 0x00
// Default values: 0x2C, 0x0E, 0x0B, 0x04, 0x0C, 0x73, 0x03,
// Descriptions:
// SYNTH_PFDCP_CPFF - Feed forward charge pump current selection.
// SYNTH_PFDCP_CPINT - Integration charge pump current selection.
// SYNTH_VCO_KV - Gain scaling factors (Kv) for the VCO tuning varactors on both the integrated-path and feed forward path.
// SYNTH_LPFILT3 - Value of resistor R2 in feed-forward path of loop filter.
// SYNTH_LPFILT2 - Value of capacitor C2 in feed-forward path of loop filter.
// SYNTH_LPFILT1 - Value of capacitors C1 and C3 in feed-forward path of loop filter.
// SYNTH_LPFILT0 - Bias current of the active amplifier in the feed-forward loop filter.
*/
#define RF_SYNTH_PFDCP_CPFF_7 0x11, 0x23, 0x07, 0x00, 0x2C, 0x0E, 0x0B, 0x04, 0x0C, 0x73, 0x03

/*
// Set properties: RF_MATCH_VALUE_1_12
// Number of properties: 12
// Group ID: 0x30
// Start ID: 0x00
// Default values: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
// Descriptions:
// MATCH_VALUE_1 - Match value to be compared with the result of logically AND-ing (bit-wise) the Mask 1 value with the received Match 1 byte.
// MATCH_MASK_1 - Mask value to be logically AND-ed (bit-wise) with the Match 1 byte.
// MATCH_CTRL_1 - Enable for Packet Match functionality, and configuration of Match Byte 1.
// MATCH_VALUE_2 - Match value to be compared with the result of logically AND-ing (bit-wise) the Mask 2 value with the received Match 2 byte.
// MATCH_MASK_2 - Mask value to be logically AND-ed (bit-wise) with the Match 2 byte.
// MATCH_CTRL_2 - Configuration of Match Byte 2.
// MATCH_VALUE_3 - Match value to be compared with the result of logically AND-ing (bit-wise) the Mask 3 value with the received Match 3 byte.
// MATCH_MASK_3 - Mask value to be logically AND-ed (bit-wise) with the Match 3 byte.
// MATCH_CTRL_3 - Configuration of Match Byte 3.
// MATCH_VALUE_4 - Match value to be compared with the result of logically AND-ing (bit-wise) the Mask 4 value with the received Match 4 byte.
// MATCH_MASK_4 - Mask value to be logically AND-ed (bit-wise) with the Match 4 byte.
// MATCH_CTRL_4 - Configuration of Match Byte 4.
*/
#define RF_MATCH_VALUE_1_12 0x11, 0x30, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

/*
// Set properties: RF_FREQ_CONTROL_INTE_8
// Number of properties: 8
// Group ID: 0x40
// Start ID: 0x00
// Default values: 0x3C, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0xFF,
// Descriptions:
// FREQ_CONTROL_INTE - Frac-N PLL Synthesizer integer divide number.
// FREQ_CONTROL_FRAC_2 - Frac-N PLL fraction number.
// FREQ_CONTROL_FRAC_1 - Frac-N PLL fraction number.
// FREQ_CONTROL_FRAC_0 - Frac-N PLL fraction number.
// FREQ_CONTROL_CHANNEL_STEP_SIZE_1 - EZ Frequency Programming channel step size.
// FREQ_CONTROL_CHANNEL_STEP_SIZE_0 - EZ Frequency Programming channel step size.
// FREQ_CONTROL_W_SIZE - Set window gating period (in number of crystal reference clock cycles) for counting VCO frequency during calibration.
// FREQ_CONTROL_VCOCNT_RX_ADJ - Adjust target count for VCO calibration in RX mode.
*/
#define RF_FREQ_CONTROL_INTE_8 0x11, 0x40, 0x08, 0x00, 0x38, 0x0E, 0xD9, 0x16, 0x44, 0x44, 0x20, 0xFE


// AUTOMATICALLY GENERATED CODE!
// DO NOT EDIT/MODIFY BELOW THIS LINE!
// ----------

#ifndef FIRMWARE_LOAD_COMPILE
#define RADIO_CONFIGURATION_DATA_ARRAY { \
SI446X_PATCH_CMDS, \
0x07, RF_POWER_UP, \
0x08, RF_GPIO_PIN_CFG, \
0x06, RF_GLOBAL_XO_TUNE_2, \
0x05, RF_GLOBAL_CONFIG_1, \
0x06, RF_INT_CTL_ENABLE_2, \
0x08, RF_FRR_CTL_A_MODE_4, \
0x0D, RF_PREAMBLE_TX_LENGTH_9, \
0x0A, RF_SYNC_CONFIG_6, \
0x10, RF_PKT_CRC_CONFIG_12, \
0x10, RF_PKT_RX_THRESHOLD_12, \
0x10, RF_PKT_FIELD_3_CRC_CONFIG_12, \
0x10, RF_PKT_RX_FIELD_1_CRC_CONFIG_12, \
0x09, RF_PKT_RX_FIELD_4_CRC_CONFIG_5, \
0x08, RF_PKT_CRC_SEED_31_24_4, \
0x10, RF_MODEM_MOD_TYPE_12, \
0x05, RF_MODEM_FREQ_DEV_0_1, \
0x10, RF_MODEM_TX_RAMP_DELAY_12, \
0x10, RF_MODEM_BCR_NCO_OFFSET_2_12, \
0x07, RF_MODEM_AFC_LIMITER_1_3, \
0x05, RF_MODEM_AGC_CONTROL_1, \
0x10, RF_MODEM_AGC_WINDOW_SIZE_12, \
0x0E, RF_MODEM_RAW_CONTROL_10, \
0x06, RF_MODEM_RAW_SEARCH2_2, \
0x06, RF_MODEM_SPIKE_DET_2, \
0x05, RF_MODEM_RSSI_MUTE_1, \
0x09, RF_MODEM_DSA_CTRL1_5, \
0x10, RF_MODEM_CHFLT_RX1_CHFLT_COE13_7_0_12, \
0x10, RF_MODEM_CHFLT_RX1_CHFLT_COE1_7_0_12, \
0x10, RF_MODEM_CHFLT_RX2_CHFLT_COE7_7_0_12, \
0x08, RF_PA_MODE_4, \
0x0B, RF_SYNTH_PFDCP_CPFF_7, \
0x10, RF_MATCH_VALUE_1_12, \
0x0C, RF_FREQ_CONTROL_INTE_8, \
0x00 \
}
#else
#define RADIO_CONFIGURATION_DATA_ARRAY { 0 }
#endif

// DEFAULT VALUES FOR CONFIGURATION PARAMETERS
#define RADIO_CONFIGURATION_DATA_RADIO_XO_FREQ_DEFAULT 30000000L
#define RADIO_CONFIGURATION_DATA_CHANNEL_NUMBER_DEFAULT 0x00
#define RADIO_CONFIGURATION_DATA_RADIO_PACKET_LENGTH_DEFAULT 0x10
#define RADIO_CONFIGURATION_DATA_RADIO_STATE_AFTER_POWER_UP_DEFAULT 0x01
#define RADIO_CONFIGURATION_DATA_RADIO_DELAY_CNT_AFTER_RESET_DEFAULT 0x1000

#define RADIO_CONFIGURATION_DATA_RADIO_PATCH_INCLUDED 0x00
#define RADIO_CONFIGURATION_DATA_RADIO_PATCH_SIZE 0x00
#define RADIO_CONFIGURATION_DATA_RADIO_PATCH { }

#ifndef RADIO_CONFIGURATION_DATA_ARRAY
#error "This property must be defined!"
#endif

#ifndef RADIO_CONFIGURATION_DATA_RADIO_XO_FREQ
#define RADIO_CONFIGURATION_DATA_RADIO_XO_FREQ RADIO_CONFIGURATION_DATA_RADIO_XO_FREQ_DEFAULT
#endif

#ifndef RADIO_CONFIGURATION_DATA_CHANNEL_NUMBER
#define RADIO_CONFIGURATION_DATA_CHANNEL_NUMBER RADIO_CONFIGURATION_DATA_CHANNEL_NUMBER_DEFAULT
#endif

#ifndef RADIO_CONFIGURATION_DATA_RADIO_PACKET_LENGTH
#define RADIO_CONFIGURATION_DATA_RADIO_PACKET_LENGTH RADIO_CONFIGURATION_DATA_RADIO_PACKET_LENGTH_DEFAULT
#endif

#ifndef RADIO_CONFIGURATION_DATA_RADIO_STATE_AFTER_POWER_UP
#define RADIO_CONFIGURATION_DATA_RADIO_STATE_AFTER_POWER_UP RADIO_CONFIGURATION_DATA_RADIO_STATE_AFTER_POWER_UP_DEFAULT
#endif

#ifndef RADIO_CONFIGURATION_DATA_RADIO_DELAY_CNT_AFTER_RESET
#define RADIO_CONFIGURATION_DATA_RADIO_DELAY_CNT_AFTER_RESET RADIO_CONFIGURATION_DATA_RADIO_DELAY_CNT_AFTER_RESET_DEFAULT
#endif

#define RADIO_CONFIGURATION_DATA { \
Radio_Configuration_Data_Array, \
RADIO_CONFIGURATION_DATA_CHANNEL_NUMBER, \
RADIO_CONFIGURATION_DATA_RADIO_PACKET_LENGTH, \
RADIO_CONFIGURATION_DATA_RADIO_STATE_AFTER_POWER_UP, \
RADIO_CONFIGURATION_DATA_RADIO_DELAY_CNT_AFTER_RESET \
}

#endif /* RADIO_CONFIG_H_ */



По поводу формирования сигнал CTS, если я правильно установил настройки, просто контролирую высокий уровень сигнала на выводе Q1.

На антенный коммутатор запаял перемычку..

В эфире шум просто, на экране сканера (HackRF) набор символов... И ничего не меняется если подпрограмму переключения в режим TX закомментировать, те же шумы. Похоже нет никакой передачи вовсе, просто шумы от
работы контроллера.
Уже ничего не понимаю..

Режимы трансивера переключаю, в fifo запирсываю. А передачи нет.. Думаю надо заказать модуль на 900 мГц и попробовать на Вашем конфигурационном файле.


Вложения:
radio_config_Si4463.h [35.6 KiB]
Скачиваний: 3
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Ср авг 06, 2025 21:13:42 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 611
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3743
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Я имел в виду прислать мне .xml (не .xls, как указал ранее) файл Вашей конфигурации, чтобы я его смог импортировать в WDS3 и посмотреть как чип сконфигурирован (.h файлы система не читает). Так проще, чем разбираться в битах конфигураяции из .h файла. Вывод сигнала СTS на Q1 сконфигурирован правильно. Остальные... - чтение параметров командой 0х44 работает? Уверены, что первый параметр команды 0х02 должен быть 0х81 а не 0х01? По маркировке чипа возможно узнать его ревизию?

Ещё настоятельно рекомендую приобрести лог. анализатор. Если работаете с МК, то это инструмент N1. Mы можем сколько угодно разбираться с кодом, но если не видно что происходит на линиях связи с радио, то будем тыркаться как слепые котята.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Чт авг 07, 2025 15:58:51 
Родился

Зарегистрирован: Сб июл 09, 2022 13:36:24
Сообщений: 16
Рейтинг сообщения: 0
.xml - не совсем понимаю, как его сделать, надо было..

Первый параметр команды 0х02 должен быть 0х01 а не 0х81, у себя всегда меняю (тут забыл изменить). Ревизия я так понял - 2А, в WDS надо ставить С2 (рекомендуют, как я понял)

Попробовал сконфигурировать (ради интереса) вывод Q2 на передачу, что бы переключались в 1 уровень при передаче, всё работает. При изменении длины передаваемого пакета, длительность принимаемого "шума" на радио сканере увеличивается. Как бы всё работает, но нет нормального сигнала на выходе..

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

Ещё раз Сергей большое спасибо за помощь !


И ещё, может у кого есть проверенный файл настройки на модуль с si4463 частотой 430мГц ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Чт авг 07, 2025 16:14:15 
Друг Кота

Карма: 4
Рейтинг сообщений: 82
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8394
Откуда: .ru
Рейтинг сообщения: 0
нету.
с Si4463 не работал.
надо смотреть даташит.

в соседней на nRF24L01+(2,4 ГГц) делал.
там есть прикольный режим - передача несущей без модуляции.
-переключаем в TX.
-переключаем на разную мощность... уровень мощности 0,1,2,3...
при этом ток потребления меняется от 11 mA... до 130 mA.
по току сразу видно что всё работает как надо.
и в эфир передаётся несущая без модуляции.
даже никаких сканеров и раций не нужно))
:tea:

в нормальных модулях тоже по идеи должен быть такой режим.
надо смотреть даташит.
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Чт авг 07, 2025 16:26:32 
Родился

Зарегистрирован: Сб июл 09, 2022 13:36:24
Сообщений: 16
Рейтинг сообщения: 0
По идее, эти модули нормальные должны быть )
Чего то видно не так делаю. Пока ''рабочего" образца нету, обычно и получается непонятная "канитель"..
По сканеру удобно, сразу и уровень радиосигнала видно.
Провозился до этого с si4432, передача работала идеально. А с приёмом не вышло. Два модуля с али было, один бракованный, даже не включался, не стал новые заказывать. У si4463 характеристики лучше, пытаюсь перейти на них )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Чт авг 07, 2025 20:04:13 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 611
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3743
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Да, можно включить режим передачи немодулированной несущей. См. картинку. На ней-же обведены кружком кнопки для импорта/экспорта файла конфигурации в формате .xml. Также косвенно можно с помощью резистора в цепи питания и скопа посмотреть токопотребление чипа в моменты периодической передачи пакетов на Вашей конфигурации.
Вложение:
save.jpg [55.86 KiB]
Скачиваний: 8


Выбор ревизии чипа в WDS должна соответствовать реальности, указанной на маркировке чипа (последние 2 символа в верхней строке на чипе). Ревизия A2 этой системе неизвестна - какая-то древняя. После неё были ревизии Bx и Cx.

Отладку приёма/передачи пакетов чипами Si446x удобно производить, сначала отладив передатчик, используя в качестве приёмника модуль на cc1101, как рассказано у меня в статье. Он конфигурируется заведомо правильно TI-евской утилитой SmartRF Studio. Для этого придётся вложиться, купив cc1101 модуль и CC-debugger (есть на Али), но оно стоит того. Как только добъётесь приёма на cc1101, можно быть уверенным в правильности работы передатчика на si446x. Тогда уже на si446x приёмник переходить можно. Я всегда так делал.

Однако, сегодня эти дискретные приёмники/передатчики уже неактуальны. Например, у ТИ есть решение на чипах cc13xx, содержащих трансивер и МК в одном корпусе. У Силлабов также есть такие, с интеграцией настройки редио-тракта из их Студио, см. мои статьи про библиотеку Rail и систему Connect, где разработка беспроводных приложений производится просто играючи. Но и эти чипы уже история, уступив дорогу чипам второго поколения, а недавно они анасировали уже третье поколение.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Вс авг 10, 2025 14:07:46 
Потрогал лапой паяльник
Аватар пользователя

Карма: -9
Рейтинг сообщений: -9
Зарегистрирован: Чт май 20, 2021 13:33:05
Сообщений: 319
Рейтинг сообщения: 0
Ser60, я не нашел WDS на сайте silabs , может плохо искал , или там уже что-то другое.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Вс авг 10, 2025 18:06:10 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 611
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3743
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
WDS3 линк: http://www.silabs.com/Support%20Documen ... -Setup.exe
Линк на документацию: https://www.silabs.com/documents/public ... /AN796.pdf


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Пн авг 11, 2025 11:21:31 
Потрогал лапой паяльник
Аватар пользователя

Карма: -9
Рейтинг сообщений: -9
Зарегистрирован: Чт май 20, 2021 13:33:05
Сообщений: 319
Рейтинг сообщения: 0
Ser60, спасибо!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Сб авг 16, 2025 12:09:10 
Родился

Зарегистрирован: Сб июл 09, 2022 13:36:24
Сообщений: 16
Рейтинг сообщения: 0
Доброго !
Получил модули E30-400M20S. Подключил, в начале то же что и со старыми модулями - без результата. Вскрыл модуль, кварц оказался на 26 мГц. Изменил настройки - всё заработало, пока на передачу )
Коммутатора в этих модулях нет. По этому в WDS во вкладке выводы ничего устанавливать не надо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Si4463 не взлетает
СообщениеДобавлено: Вс авг 17, 2025 15:18:46 
Родился

Зарегистрирован: Сб июл 09, 2022 13:36:24
Сообщений: 16
Рейтинг сообщения: 0
Попробовал на приём - всё чётко, без вопросов !
Надо будет на моих первых модулях проверить кварц. Написано 30 мГц, но может там тоже 26 мГц, как и на модулях E30-400M20S.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 78 ]    , , , 4

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


Кто сейчас на форуме

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


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

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


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y