Ruslan-maniak 0 13 января, 2014 Опубликовано 13 января, 2014 (изменено) · Жалоба Доброго дня коллеги. Волею судеб начал работать со своим первым трансивером фирмы Silicon Labs. Модель Si4460. И ничего не получается. Для начала пытаюсь связать его с МК. Запрашиваю данные по SPI но в ответ тишина. На шине просматриваются только запрос в сторону трансивера и тактирование SPI. В ответ же ничего. Пробовал разную скорость. В том числе и максимальную 10 МГц. Опрашивал разные регистры, в том числе и Fast Response Registers и другие настроечные регистры. Но везде тишина. Что я могу делать не так? Подскажите пожалуйста. На любую команду, трансивер отвечает 0xFF. Однако если я отправляю запрос о готовности принять команду по SPI (0x44), то в ответ получаю 0x00. То есть трансивер не готов получать команду. Изменено 14 января, 2014 пользователем Ruslan-maniak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vlad27 0 14 января, 2014 Опубликовано 14 января, 2014 · Жалоба Используете ли Wireless Development Suite для работы с чипом? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan-maniak 0 15 января, 2014 Опубликовано 15 января, 2014 (изменено) · Жалоба Нет, не использую. Чип просто подключен к МК по SPI. Вчера под вечер я наконец сумел считать данные из регистра PART_INFO (0x01). Чип выдавал пару байт 0x44,0x60. Все остальные регистры равны нулю были. Сегодня пришёл, запустил туже самую программу - чип уже не отвечает. И появился ещё вопрос наперёд: а где взять-то значения регистров для конфигурации? В даташите там как-то туманно всё это описано. Вообще документация странная на мой взгляд. Изменено 15 января, 2014 пользователем Ruslan-maniak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vlad27 0 15 января, 2014 Опубликовано 15 января, 2014 · Жалоба Да как раз из примеров Wireless Development Suite и можно позаимствовать последовательность команд для инициализации трансивера. А также получить содержимое регистров под свой проект. Кроме даташита необходимо ознакомится с Programming Guide и API Description. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan-maniak 0 21 января, 2014 Опубликовано 21 января, 2014 (изменено) · Жалоба А, ну вот, в API Description более-менее определены регистры. Но по сути с места я не сдвинулся. Сейчас всё обстоит следующим образом. При отправке в 0х44 я получаю в ответ один байт 0xFF а затем нули, при любой другой команде я получаю бесконечно 0xFF. И всё, других вариантов нет. Как достучаться до чипа ума не приложу ( Изменено 21 января, 2014 пользователем Ruslan-maniak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan-maniak 0 23 января, 2014 Опубликовано 23 января, 2014 (изменено) · Жалоба Ну что, ни у кого нет ни какаих идей почему так может быть? Как вообще впринципе проверить живой ли чип? Изменено 23 января, 2014 пользователем Ruslan-maniak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
UnDerKetzer 0 27 января, 2014 Опубликовано 27 января, 2014 · Жалоба Рискну и спрошу: настройки модуля SPI верные? SDN (1) пин прижат к земле? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vlad27 0 27 января, 2014 Опубликовано 27 января, 2014 · Жалоба Побольше бы информации о подключении, кусок кода, ответственного за инициализацию, обмен по SPI. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 27 января, 2014 Опубликовано 27 января, 2014 (изменено) · Жалоба Ну что, ни у кого нет ни какаих идей почему так может быть? Как вообще впринципе проверить живой ли чип? дно у чипа хорошо припаяно? как уже выше писали - SDN на gnd подключен? питание +3.3 и не шумит? хост с SPI на таком же напряжение? осциллом диаграммы смотрели? все вовремя тактируется? CLKspi<=10MHz? чудес не бывает.. косвенно проверить можно измерив потребление микросхемы и заглянув в даташит - если сильно меньше, то кварц не "завелся" или чип спит.. если сильно больше, то ошибка монтажа или чип дохлый.. Изменено 27 января, 2014 пользователем Jury093 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 27 января, 2014 Опубликовано 27 января, 2014 · Жалоба У меня на 4463 SDN просто на землю недостаточно было, подаю импульс пару мс. Хотя может и не в том дело было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan-maniak 0 3 февраля, 2014 Опубликовано 3 февраля, 2014 (изменено) · Жалоба Извиняюсь что не отвечал. Накосячил я в работе с пином nSel. не отпускал его между отправкой команды и получением ответа. Сейчас всё норм. Но появилась другая проблема. Какие бы данные я не записывал в TX_FIFO, при отправке отправляется пакет с одними и теми же данными. По крайней мере на дублирующем пине TX_DATA, я всегда вижу пакет с одними и теми же данными. При этом преамбула и синхрослово формируются нормально и размер отправляемого пакета изменяется в зависимости от количества отправляемых данных. Но вот сами данные не зависят от того что я записываю в TX_FIFO. Почему так может быть? Изменено 3 февраля, 2014 пользователем Ruslan-maniak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
spf 0 3 февраля, 2014 Опубликовано 3 февраля, 2014 · Жалоба В качестве примера: открытый проект с использование Si4464 - https://github.com/tkrahn/pecanpico4 (http://kt5tk.wordpress.com/2013/07/24/pecan-pico-4-serial-number-1-built-working/) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan-maniak 0 3 февраля, 2014 Опубликовано 3 февраля, 2014 (изменено) · Жалоба Вы уверены что он рабочий? В библиотеке для Si446x толком ничего не реализовано. Только поверхностные настройки. А связаного с передачей данных там вовсе ничего нет. И ещё такой вопрос: Реально ли связать трансиверы разных производителей? Не могут ли возникнуть нестыковки? Кто-нибудь пробовал? Изменено 3 февраля, 2014 пользователем Ruslan-maniak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SergNK 0 15 февраля, 2014 Опубликовано 15 февраля, 2014 · Жалоба Извиняюсь что не отвечал. Накосячил я в работе с пином nSel. не отпускал его между отправкой команды и получением ответа. Сейчас всё норм. Но появилась другая проблема. Какие бы данные я не записывал в TX_FIFO, при отправке отправляется пакет с одними и теми же данными. По крайней мере на дублирующем пине TX_DATA, я всегда вижу пакет с одними и теми же данными. При этом преамбула и синхрослово формируются нормально и размер отправляемого пакета изменяется в зависимости от количества отправляемых данных. Но вот сами данные не зависят от того что я записываю в TX_FIFO. Почему так может быть? А производится ли действительно запись данных в FIFO? Советую поставить WDS3 и заглянуть в c:\Program Files (x86)\SiLabs\WDS3\DemoExample\ и найти там много полезного. В т.ч. драйверы и API. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alux 0 5 декабря, 2015 Опубликовано 5 декабря, 2015 · Жалоба Имею проблему с трансивером si4461. Плата с трансивером из фирменного демокита. За основу был взят проект Si446x_BidirectionalPacket из папки с примерами WDS. Микроконтроллер STM32F0. Проблема в том, что не проходит команда POWER_UP в функции Radio_Init(). При ожидании готовности CTS после отправки команды POWER_UP вылетает в таймаут: 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться