|
Вопросы по трансиверам Si446x |
|
|
|
Jan 27 2014, 10:42
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(Ruslan-maniak @ Jan 23 2014, 08:25)  Ну что, ни у кого нет ни какаих идей почему так может быть? Как вообще впринципе проверить живой ли чип? дно у чипа хорошо припаяно? как уже выше писали - SDN на gnd подключен? питание +3.3 и не шумит? хост с SPI на таком же напряжение? осциллом диаграммы смотрели? все вовремя тактируется? CLKspi<=10MHz? чудес не бывает.. косвенно проверить можно измерив потребление микросхемы и заглянув в даташит - если сильно меньше, то кварц не "завелся" или чип спит.. если сильно больше, то ошибка монтажа или чип дохлый..
Сообщение отредактировал Jury093 - Jan 27 2014, 10:44
|
|
|
|
|
Feb 15 2014, 17:55
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 30-03-11
Из: Фаниполь (Минск)
Пользователь №: 63 991

|
Цитата(Ruslan-maniak @ Feb 3 2014, 07:22)  Извиняюсь что не отвечал. Накосячил я в работе с пином nSel. не отпускал его между отправкой команды и получением ответа. Сейчас всё норм. Но появилась другая проблема. Какие бы данные я не записывал в TX_FIFO, при отправке отправляется пакет с одними и теми же данными. По крайней мере на дублирующем пине TX_DATA, я всегда вижу пакет с одними и теми же данными. При этом преамбула и синхрослово формируются нормально и размер отправляемого пакета изменяется в зависимости от количества отправляемых данных. Но вот сами данные не зависят от того что я записываю в TX_FIFO. Почему так может быть? А производится ли действительно запись данных в FIFO? Советую поставить WDS3 и заглянуть в c:\Program Files (x86)\SiLabs\WDS3\DemoExample\ и найти там много полезного. В т.ч. драйверы и API.
|
|
|
|
|
Dec 5 2015, 14:58
|
Знающий
   
Группа: Свой
Сообщений: 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
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|