реклама на сайте
подробности

 
 
> Si4463 не взлетает.
draksnov
сообщение Aug 11 2015, 08:22
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 11-08-15
Из: SPB
Пользователь №: 87 942



Добрый день всем!

Который день бьюсь с этим, казалось бы простым, трансивером.
Суть проблемы - нет передачи. в эфире тишина(анализатор спектра есть). Приёмную сторону пока даже не начинал. В эфир бы просто что-нибудь стрельнуть. Младшенький Si4431 проблем не доставил. Этого прокачали и API добавили по сути...

В качестве контроллера использую STM32L0. Её запустили. SPI настроили. К Si4463 подключили.
POWER_UP выполнили. Кварц завёлся. SDO заработало. Настройку чипа сделали, используя то, что нам выдал WDS.
В FIFO записали нужный нам пакетик. Сделали TX_START. В эфире тишина.

Начал копать. Нашёл образец кода от DORJI, всё вроде так же делаю. Настроил прерывания, читаю регистры состояния. Прерывания с nIRQ говорит, что пакет отправлен, чип находится в READY MODE (хорошо), CHANGE_STATE тоже успешно выполнен (хорошо), и даже GET_INT_STATUS говорит "the TX FIFO were transmitted successfully" (отлично). Проверил, пишется ли что-нибудь в FIFO - читаю FIFO_INFO ->количество пустых битов меняется, значит что-то пишем.

Я В тупике. Ниже ссылки на дропбокс на схему, куски кода и иниты...
P.S. Ревизию проверил. B1, как на чипе написано.
P.P.S. Поиграл с настройкой PA, заменил CLE на SWC, как в принципе и схему спроектировал - ничего.

SCH https://www.dropbox.com/s/rv1kl88j2q2v3pn/sch.JPG?dl=0
code https://www.dropbox.com/s/53qgkavy50bnedf/code.rar?dl=0
WDS https://www.dropbox.com/s/zxnj4slwr14nuom/sets.rar?dl=0

Есть подозрения, что до конца не заводятся внутренние клоки\шины, т.к. получить с GPIO DIV_CLK, 32CLK или BOOT_CLK так и не вышло. Конечно же я их включал. Или где-то не хватает волшебных пауз. В слепую натыкал их - тож ничего.

Буду рад любым подсказкам...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
draksnov
сообщение Aug 12 2015, 06:41
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 11-08-15
Из: SPB
Пользователь №: 87 942



Косяк найден. Ткнули Подсказали умные люди. Не проходила инициализация. А причиной была некорректная проверка CTS после записи байтов. Поменял последовательность и всё пашет.

Пишем RX-ную часть....
Go to the top of the page
 
+Quote Post
CEMA
сообщение Aug 20 2015, 07:36
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 20-08-15
Пользователь №: 88 063



Цитата(draksnov @ Aug 12 2015, 09:41) *
Косяк найден. Ткнули Подсказали умные люди. Не проходила инициализация. А причиной была некорректная проверка CTS после записи байтов. Поменял последовательность и всё пашет.

Пишем RX-ную часть....


А исходники на TX-ную часть рабочую можешь кинуть? А то тоже проблема с запуском этой штуки...
Go to the top of the page
 
+Quote Post
draksnov
сообщение Aug 20 2015, 08:28
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 11-08-15
Из: SPB
Пользователь №: 87 942



Цитата(CEMA @ Aug 20 2015, 10:36) *
А исходники на TX-ную часть рабочую можешь кинуть? А то тоже проблема с запуском этой штуки...


В двух словах: очищаем фифо. пишем в фифо пакет. передаём.
Если настройки все правильные, то передача пакета примерно такая:

Код
void tx_data(void){    
    fifo_reset();  //очищаем фифо
    spi_write_fifo(); // пишем в фифо пакетик        
    enable_tx_interrupt();    // опционально. должно в настройках делаться. Смотри настройки 0x11
    clr_interrupt();  //  опционально. Если нужно. Скорее всего да. Смотри настройки 0x11
    tx_start();    // в ТХ мод идём и передаём пакет     
    delay_ms(20);    // люблю паузы ^^)
}

void fifo_reset(void){
    U8 p[2];
    
    //в READY режим  //ВАЖНО. Очистка фифо не возможна в RX\TX режимах. Надо выходить.
    p[0] = 0x34;         // Команда смены режима
    p[1] = 0x03;
    spi_write(2,p);
    
    //Очищаем FIFO
    p[0] = 0x15;     //FIFO_INFO
    p[1] = 0x03;       // reset tx и rx fifo
    spi_write(2,p);
}

void tx_start(void){
    U8 p[5];
    
    p[0] = 0x31; //START_TX start command
    p[1] = 0; //freq_channel 0
    p[2] = 0x30; // 30 return to ready mode after tx // 10 return to STANDBY after tx
    p[3] = 0; // lenght Нулевая, ибо передаём столько, сколько пишем.  
    p[4] = 0; // lenght
    spi_write(5, p);
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- draksnov   Si4463 не взлетает.   Aug 11 2015, 08:22
|- - CEMA   Цитата(draksnov @ Aug 12 2015, 09:41) А п...   Aug 20 2015, 09:35
|- - draksnov   Цитата(CEMA @ Aug 20 2015, 12:35) А с CTS...   Aug 20 2015, 10:00
|- - CEMA   Цитата(draksnov @ Aug 20 2015, 13:00) Ну ...   Aug 20 2015, 10:12
|- - draksnov   Цитата(CEMA @ Aug 20 2015, 13:12) У тебя ...   Aug 20 2015, 10:37
|- - CEMA   Цитата(draksnov @ Aug 20 2015, 13:37) Не ...   Aug 20 2015, 10:48
- - drum1987   ооо Егор не покидает тебя радио никак уже и город ...   Aug 12 2015, 07:24
|- - draksnov   Цитата(drum1987 @ Aug 12 2015, 10:24) ооо...   Aug 12 2015, 07:30
- - drum1987   Усиливается...готовить надо уметь.   Aug 12 2015, 08:42
- - vadimp61   И СС1101 тоже усиливается )) 20 км получали на +27...   Aug 12 2015, 14:52
|- - draksnov   Цитата(vadimp61 @ Aug 12 2015, 17:52) И С...   Aug 13 2015, 09:42
- - draksnov   ЛС мне пока недоступны. Молод и зелен для форума) ...   Aug 20 2015, 11:02
- - CEMA   Цитата(draksnov @ Aug 20 2015, 14:02) ЛС ...   Aug 20 2015, 11:06


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 03:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01357 секунд с 7
ELECTRONIX ©2004-2016