|
Si4463 не взлетает. |
|
|
|
Aug 11 2015, 08:22
|

Участник

Группа: Участник
Сообщений: 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=0code https://www.dropbox.com/s/53qgkavy50bnedf/code.rar?dl=0WDS https://www.dropbox.com/s/zxnj4slwr14nuom/sets.rar?dl=0 Есть подозрения, что до конца не заводятся внутренние клоки\шины, т.к. получить с GPIO DIV_CLK, 32CLK или BOOT_CLK так и не вышло. Конечно же я их включал. Или где-то не хватает волшебных пауз. В слепую натыкал их - тож ничего. Буду рад любым подсказкам...
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 14)
|
Aug 12 2015, 07:30
|

Участник

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

|
Цитата(drum1987 @ Aug 12 2015, 10:24)  ооо Егор  не покидает тебя радио никак  уже и город сменил, а они все за тобой бегут...то сс430, то теперь si... Дык радиоинженер ж! Кстати да, СС430 оказалось тем ещё гамном, которое не усиливается  А вот к Si прикрутил усилитель и по городу аж 4 километра с хвостиком пробил )Техас курит )
|
|
|
|
|
Aug 13 2015, 09:42
|

Участник

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

|
Цитата(vadimp61 @ Aug 12 2015, 17:52)  И СС1101 тоже усиливается )) 20 км получали на +27dBm Отдельно трансивер работает отлично. Я говорил именно про СС430, хоть на борту та же СС1101. А с СС430 был косяк именно сильного усиления на частотах 450 МГц. И встречал людей с аналогичной проблемой. А вот Si при тех же вводных гораздо лучше себя показал. Сделал вывод. Допускаю, что на 868МГц, использую его же СС1190, всё могло быть лучше. Но я использовал сторонние усилители, довольно широкополосные. Хоть и на согласование потратил много, но не достаточно времени.
|
|
|
|
|
Aug 20 2015, 07:36
|
Группа: Новичок
Сообщений: 5
Регистрация: 20-08-15
Пользователь №: 88 063

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

Участник

Группа: Участник
Сообщений: 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); }
|
|
|
|
|
Aug 20 2015, 09:35
|
Группа: Новичок
Сообщений: 5
Регистрация: 20-08-15
Пользователь №: 88 063

|
Цитата(draksnov @ Aug 12 2015, 09:41)  А причиной была некорректная проверка CTS после записи байтов. А с CTS что было не так? А то в исходнике из поста №1 ничего криминального тоже не вижу... Судя по скринам WDS ты настраиваешь Direct Mode TX. Вот тут у меня тоже вопрос... Если ты работаешь через FIFO, то зачем тогда настраиваешь пины ны TX_DATA и TX_DATA_CLOCK? Либо я чего-то не понимаю, либо смотрю в даташиты и аппноуты и вижу "фигу"... Уже голова от них кругом идет :-D
Сообщение отредактировал CEMA - Aug 20 2015, 09:35
|
|
|
|
|
Aug 20 2015, 10:00
|

Участник

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

|
Цитата(CEMA @ Aug 20 2015, 12:35)  А с CTS что было не так? А то в исходнике из поста №1 ничего криминального тоже не вижу...
Судя по скринам WDS ты настраиваешь Direct Mode TX. Вот тут у меня тоже вопрос... Если ты работаешь через FIFO, то зачем тогда настраиваешь пины ны TX_DATA и TX_DATA_CLOCK? Либо я чего-то не понимаю, либо смотрю в даташиты и аппноуты и вижу "фигу"... Уже голова от них кругом идет :-D Ну про CTS не, есть косяк. Надо его сначала проверять, а потом писать. У меня наоборот было. Поэтому часть команд просто "не глоталось". А WDS это экспериментальный. Пины, т.е. эти самые ДЖПИО у меня выведены на пады на плате для отладки. Я просто смотрю их осцилом, в данном случае состояния в момент передачи:TX_DATA и TX_DATA_CLOCK.
|
|
|
|
|
Aug 20 2015, 10:12
|
Группа: Новичок
Сообщений: 5
Регистрация: 20-08-15
Пользователь №: 88 063

|
Цитата(draksnov @ Aug 20 2015, 13:00)  Ну про CTS не, есть косяк. Надо его сначала проверять, а потом писать. У меня наоборот было. Поэтому часть команд просто "не глоталось". У тебя в коде так же как и в AN633: отправляешь команду, и, отправляя команду 0x44, ждешь, когда в ответ придет 0xFF. А надо так: Убеждаемся, что на команду 0x44 придет ответ 0xFF и только потом отправляем команду. Я тебя правильно понял?
Сообщение отредактировал CEMA - Aug 20 2015, 10:12
|
|
|
|
|
Aug 20 2015, 10:37
|

Участник

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

|
Цитата(CEMA @ Aug 20 2015, 13:12)  У тебя в коде так же как и в AN633: отправляешь команду, и, отправляя команду 0x44, ждешь, когда в ответ придет 0xFF.
А надо так: Убеждаемся, что на команду 0x44 придет ответ 0xFF и только потом отправляем команду.
Я тебя правильно понял? Не очень понял, но вроде ДА. Каждый раз надо ждать FF, о чём мы понимаем, что чип готов принимать дальше наши команды. Там в коде, честно говоря куча косяков. Я уже после начал его вылизывать. Правильно делать так: https://www.dropbox.com/s/q24993qu8ljr6s7/CTS.JPG?dl=0
|
|
|
|
|
Aug 20 2015, 10:48
|
Группа: Новичок
Сообщений: 5
Регистрация: 20-08-15
Пользователь №: 88 063

|
Цитата(draksnov @ Aug 20 2015, 13:37)  Не очень понял, но вроде ДА. Каждый раз надо ждать FF, о чём мы понимаем, что чип готов принимать дальше наши команды. Там в коде, честно говоря куча косяков. Я уже после начал его вылизывать. Правильно делать так: https://www.dropbox.com/s/q24993qu8ljr6s7/CTS.JPG?dl=0Где-то я уже видел эту картинку :-D Слушай... Может у тебя мессенджер какой есть? Там время ответов быстрее
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|