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

 
 
> Вопросы по трансиверам Si446x
Ruslan-maniak
сообщение Jan 13 2014, 09:27
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 27-12-12
Из: Томск
Пользователь №: 74 999



Доброго дня коллеги. Волею судеб начал работать со своим первым трансивером фирмы Silicon Labs. Модель Si4460. И ничего не получается. Для начала пытаюсь связать его с МК. Запрашиваю данные по SPI но в ответ тишина. На шине просматриваются только запрос в сторону трансивера и тактирование SPI. В ответ же ничего. Пробовал разную скорость. В том числе и максимальную 10 МГц. Опрашивал разные регистры, в том числе и Fast Response Registers и другие настроечные регистры. Но везде тишина. Что я могу делать не так? Подскажите пожалуйста.

На любую команду, трансивер отвечает 0xFF. Однако если я отправляю запрос о готовности принять команду по SPI (0x44), то в ответ получаю 0x00. То есть трансивер не готов получать команду.

Сообщение отредактировал Ruslan-maniak - Jan 14 2014, 04:59
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alux
сообщение Dec 5 2015, 14:58
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447



Имею проблему с трансивером si4461. Плата с трансивером из фирменного демокита. За основу был взят проект Si446x_BidirectionalPacket из папки с примерами WDS. Микроконтроллер STM32F0. Проблема в том, что не проходит команда POWER_UP в функции Radio_Init(). При ожидании готовности CTS после отправки команды POWER_UP вылетает в таймаут:
CODE
uint8_t radio_comm_GetResp(uint8_t byteCount, uint8_t* pData)
{
uint8_t ctsVal = 0;
uint16_t errCnt = RADIO_CTS_TIMEOUT;
while (errCnt != 0) //wait until radio IC is ready with the data
{
radio_hal_ClearNsel();
radio_hal_SpiWriteByte(0x44); //read CMD buffer
ctsVal = radio_hal_SpiReadByte();
if (ctsVal == 0xFF)
{
if (byteCount)
{
radio_hal_SpiReadData(byteCount, pData);
}

radio_hal_SetNsel();
break;
}
radio_hal_SetNsel();
errCnt--;
}
if (errCnt == 0)
{
while(1)
{
BSP_LED_Toggle(LED_RED);
/* ERROR!!!! CTS should never take this long. */
}
}
if (ctsVal == 0xFF)
{
ctsWentHigh = 1;
}
return ctsVal;
}

При этом команда PART_INFO выполняется без проблем (см. осциллограммы). Аппаратный сброс трансивера также выполняется. Осциллограммы прилагаю. В чем может быть дело? Буду рад любому дельному совету. Спасибо.
Прикрепленные файлы
Прикрепленный файл  osc.7z ( 757.86 килобайт ) Кол-во скачиваний: 13
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Ruslan-maniak   Вопросы по трансиверам Si446x   Jan 13 2014, 09:27
- - Vlad27   Используете ли Wireless Development Suite для рабо...   Jan 14 2014, 14:30
- - Ruslan-maniak   Нет, не использую. Чип просто подключен к МК по SP...   Jan 15 2014, 02:21
- - Vlad27   Да как раз из примеров Wireless Development Suite ...   Jan 15 2014, 13:04
- - Ruslan-maniak   А, ну вот, в API Description более-менее определен...   Jan 21 2014, 03:26
- - Ruslan-maniak   Ну что, ни у кого нет ни какаих идей почему так мо...   Jan 23 2014, 04:25
|- - Jury093   Цитата(Ruslan-maniak @ Jan 23 2014, 08...   Jan 27 2014, 10:42
- - UnDerKetzer   Рискну и спрошу: настройки модуля SPI верные? SDN ...   Jan 27 2014, 07:39
- - Vlad27   Побольше бы информации о подключении, кусок кода, ...   Jan 27 2014, 10:20
- - DASM   У меня на 4463 SDN просто на землю недостаточно бы...   Jan 27 2014, 16:05
- - Ruslan-maniak   Извиняюсь что не отвечал. Накосячил я в работе с п...   Feb 3 2014, 04:22
|- - SergNK   Цитата(Ruslan-maniak @ Feb 3 2014, 07...   Feb 15 2014, 17:55
- - spf   В качестве примера: открытый проект с использовани...   Feb 3 2014, 05:08
- - Ruslan-maniak   Вы уверены что он рабочий? В библиотеке для Si446x...   Feb 3 2014, 05:22
- - alux   Проблема была связана с SPI STM32F0. С использован...   Dec 7 2015, 10:14


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 14:19
Рейтинг@Mail.ru


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