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

 
 
> CC2480, Кто работал? Делимся опытом!
syuha
сообщение Jul 31 2008, 08:04
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 31-07-08
Пользователь №: 39 327



Вобщем до этого работал с IEEE802.15.4 на MC13213 (Freescale),там все предельно ясно,куча примеров, все расписано по шагам,тем более был отличный семинар в Питере в апреле по ZigBee стеку. a14.gif

Теперь попал в руки знаменитый 99$ набор EZ430-RF2480.Там стоит MSP430F2274 и CC2480.
Я засучил рукава и взятся за CC2480 Interface Specification (SWRA175A). Зы выходные прочел, понял на ~80% и начал ваять. Не работает,тогда смотрю примеры от TI:

1. SWRU169: рассмотрены по сути только 3 команды, причем самые элементарные: cc2480HardReset, cc2480SoftReset, getChipId.Они и без примеров были предельно ясны.

2. SWRC097: родная прошивка этого набора (ZASA). Тут наоборот такие дебри,что аж страшно. Программа вроде бы простая, но как наворочена. Я около 20% понял только. Я,честно говоря, программист-то не очень.

Наконец вопрос: кто уже работал с CC2480 поделитесь самым простым примером - отправить/принять.

Вот что делаю я:
a. MSP peripheral initialization (DCO=MCLK=SMCLK=8MHz,GPIO,UART)
b. CC2480 power up procedure (CFG0,CFG1, SPI:SMCLK/3,4-pin,8-bit,master)
c. CC2480 configaration procedure (Coordinator/Router,Short adress,PANID,channel list)
d. Registering application(ZB_APP_REGISTER_REQUEST)
e. Start ZigBee stack (ZB_START_REQUEST)
Вот тут начинаются проблемы. Жду от CC2480 ответа в виде ZB_START_CONFIRM,а в ответ тишина.

Вот main() для координатора:

void main (void)
{
uint8 value8;
uint16 value16;
uint32 value32;

//MSP430 peripheral initialization
BoardInit(); // MCLK=SMCLK=DCO=8MHz,USCIB0:SPI,8-bit,Master,4-pin,SMCLK/3

//CC2480 confiruration procedure
cc2480HardReset(); // Clear all CC2480 Configurations to default values
value8 = 0x00; // Set device type to COORDINATOR
zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, 1, &value8);
printKvpHex8bit("ZCD_NV_LOGICAL_TYPE status is: ", hostMsgBuf[3]); //Смотрю статус в HT - OK
cc2480HardReset();

value16 = 0x2481; // Set short adress to 0x2481
zb_WriteConfiguration(ZCD_NV_USERDESC, 2, &value16);
printKvpHex8bit("ZCD_NV_USERDESC status is: ", hostMsgBuf[3]); //Смотрю статус в HT - OK

value16 = 0x2480; // Set net. PANID to 0x2480
zb_WriteConfiguration(ZCD_NV_PANID, 2, &value16);
printKvpHex8bit("ZCD_NV_PANID status is: ", hostMsgBuf[3]); //Смотрю статус в HT - OK

value32 = 0x00000001; // Set ch. number to 0 value
zb_WriteConfiguration(ZCD_NV_CHANLIST, 4, &value32);
printKvpHex8bit("ZCD_NV_CHANLIST status is: ", hostMsgBuf[3]); //Смотрю статус в HT - OK

value8 = 0x02; // Set STARTUP_OPTION to 0x02
zb_WriteConfiguration(ZCD_NV_STARTUP_OPTION, 1, &value8);
printKvpHex8bit("ZCD_NV_STARTUP_OPTION status is: ", hostMsgBuf[3]); //Смотрю статус в HT - OK
printStr("\n");

//Step 7. CC2480 stack start up procedure
RegApplication(); //Registering the aplication
printKvpHex8bit("Register application status is: ", hostMsgBuf[3]); //Смотрю статус в HT - OK
StartStack(); //Start stack

//После этого CC2480 должна прислать ответ ZB_START_CONFIRM, но она молчит

//Step 8. Data receiving
for(;;)
{
while (ZACCEL_SRDY_IN() != 0);
//Get ZB_RECEIVE_DATA_INDICATION
cc2480RpcPoll(hostMsgBuf);
//Get the length of received packet
value16 = hostMsgBuf[7];
value16 = (value16<<8) + hostMsgBuf[8];
while(value16 != 0)
{
printKvpHex8bit("Received data is:",hostMsgBuf[10+value16]);
value16--;
}
}
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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