Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: cc2550 работает в соответствии с мануал, с точьностью до наоборот.
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Rf & Microwave Design
rapa
Доброго времени суток.
У меня тут появилась надобность соеденить MSP430f2111 с CC2550. Вроде бы никакой сложности не ожидалось,но не тут то было.
MSP430f2111 с CC2550 соединяются по SPI. В Datasheet черным по белому написано, что в момент инициализации(да и не только. Это так-же верно для передачи в любой момент,просто меня она не интересует), когда я перевожу ногу проца "CS(ChipSelect)" с 1 на 0(чтобы включить трансмиттер), то по ноге "SO(MISO--... Slave Out)" должно прийти подтверждение в виде перехода с 1 на 0. На самом деле всё происходит с точностью до наоборот.
Когда я перевожу ногу проца "CS(ChipSelect)" с 1 на 0(чтобы включить трансмиттер), то нога "SO(MISO--... Slave Out)" переходит с 0 на 1.
Когда же, я перевожу ногу проца "CS(ChipSelect)" с 0 на 1(чтобы выключить трансмиттер), то нога "SO(MISO--... Slave Out)" переходит с 1 на 0.

Кто-нить сталкивался с таким поведением? Если да, то подскажите в чем проблема и,если можно, как она решилась.
Может я чего-то, недоделываю правильно,недоинициализирую или ещё что-то?

Заранее спасибо.

P.S. Все ноги которые работают по интерфейсу SPI определены как GPIO
CS-output.
SO-input.
rezident
Я лично мало что понял из комментариев. sad.gif Тем более, что вы не привели исходных кодов инициализации портов.
К тому же возник встречный вопрос: почему вы выбрали MSP430F2111, а не, например, MSP430F2012 с модулем USI, который аппаратно реализует функции интерфейса SPI?
rapa
Цитата(rezident @ Dec 26 2009, 21:03) *
Я лично мало что понял из комментариев. sad.gif Тем более, что вы не привели исходных кодов инициализации портов.
К тому же возник встречный вопрос: почему вы выбрали MSP430F2111, а не, например, MSP430F2012 с модулем USI, который аппаратно реализует функции интерфейса SPI?


Выбирал не я. Я работаю с тем,что уже выбранно и это изменению не подлежит, т.к. PCB уже готов.
Теперь объясню ещё раз.
MSP430F2111 соединён с CC250 по SPI. SPI-это 4 провода: CS,SI(MOSI),SO(MISO) и SCK(Clock).
А дальше всё как и раньше.В соответствии с Datasheets, чтобы трансмиттер начал работать, нужно его инициализировать и переслать туда пакет, который нужно передать по RF.
Для этого нужно,что бы SPI работал и трансмиттер был готов к к работе.
Это делается(соответствии с Datasheets) опусканием линии CS с 1 на 0 и,как положительный ответ что трансмиттер работает, линия SO(она в МСП430 определена как входная) опускается трансмиттером с 1 на 0.
А то,что у меня происходит,всё наоборот, как я описал выше.
rezident
Цитата(rapa @ Dec 26 2009, 22:26) *
А то,что у меня происходит,всё наоборот, как я описал выше.
Т.е. ваши проблемы связаны с трансивером? Зачем же вы тогда пишете в раздел Микроконтроллеры -> MSP430?

Модератор. Перенес тему в соответствующий раздел.
rx3apf
Цитата(rapa @ Dec 26 2009, 20:26) *
Это делается(соответствии с Datasheets) опусканием линии CS с 1 на 0 и,как положительный ответ что трансмиттер работает, линия SO(она в МСП430 определена как входная) опускается трансмиттером с 1 на 0.
А то,что у меня происходит,всё наоборот, как я описал выше.

Вообще-то при дефолтных установках SO у CC2550 должна быть в высокоимпедансном состоянии, соответственно, микроконтроллер прочитает оттуда "0" или "1" при pull-down или pull-up соответсвенно. Или непредсказуемое состояние (если подтяжек нет). После активации выборки SO должен перейти в "1", а затем, после таймаута готовности (при дефолтных установках порядка 50 uS), в "0". Только после этого можно начинать передачу байтов управления или данных.
rapa
Цитата(rx3apf @ Dec 27 2009, 00:41) *
Вообще-то при дефолтных установках SO у CC2550 должна быть в высокоимпедансном состоянии, соответственно, микроконтроллер прочитает оттуда "0" или "1" при pull-down или pull-up соответсвенно. Или непредсказуемое состояние (если подтяжек нет). После активации выборки SO должен перейти в "1", а затем, после таймаута готовности (при дефолтных установках порядка 50 uS), в "0". Только после этого можно начинать передачу байтов управления или данных.


Так оно и происходит,кроме последнего перехода SO из "1" в "0".Переход SO из "1" в "0" происходит только когда я CS перевожу из "0" в "1",а нужно,что бы было наоборот.
rx3apf
Цитата(rapa @ Dec 27 2009, 08:51) *
Так оно и происходит,кроме последнего перехода SO из "1" в "0".Переход SO из "1" в "0" происходит только когда я CS перевожу из "0" в "1",а нужно,что бы было наоборот.

Для начала надо бы отделить мух от котлет, состояние "0" от high-Z. Потому как если SO и в самом деле уходит в "0" при CS=1, то это вообще ни в какие ворота. Рекомендую включить подтяжку. Если регистр, отвечающий за поведение GDO1 (SO) не модифицировался, то остается только предположить, что либо с опорным кварцем что-то не то, либо с фильтровым конденсатором на четвертой ноге. После активации -CS на GDO0 должен появляться меандр osc/192 - появляется ?
rapa
Цитата(rx3apf @ Dec 27 2009, 14:06) *
Для начала надо бы отделить мух от котлет, состояние "0" от high-Z. Потому как если SO и в самом деле уходит в "0" при CS=1, то это вообще ни в какие ворота. Рекомендую включить подтяжку. Если регистр, отвечающий за поведение GDO1 (SO) не модифицировался, то остается только предположить, что либо с опорным кварцем что-то не то, либо с фильтровым конденсатором на четвертой ноге. После активации -CS на GDO0 должен появляться меандр osc/192 - появляется ?


Нет не появляется.Выяснилось,что кварц не работает, хотя для этого нет ни единой предпосылки. Даже не представляю почему.В CC2500 работает
rx3apf
Цитата(rapa @ Dec 28 2009, 10:02) *
Нет не появляется.Выяснилось,что кварц не работает, хотя для этого нет ни единой предпосылки. Даже не представляю почему.В CC2500 работает

Причин может быть много. От банального непропая или "сопли", или использования некачественного флюса с повышенной утечкой (как вариант - нарушение температурного режима пайки), до просто некачественного кварца. Кстати, эти камешки (CC11xx, 25xx) весьма и весьма чувствительны к статике, угробить можно запросто.
GRJ
а кто нибудь СС2530 использовал? опыт есть у кого-нибудь ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.