微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > Z-Stack Mesh 1.0.0协议栈中与CC2520交互过程的疑惑

Z-Stack Mesh 1.0.0协议栈中与CC2520交互过程的疑惑

时间:10-02 整理:3721RD 点击:

1、Z-Stack Mesh 1.0.0协议栈下的EXP5438支持MSP430+CC2520。但查看源代码并未发现对CC2520初始化、配置、通讯等相关的代码,这些过程是不是都封装到库

     里了,对用户是透明的。光看源程序的话,跟2.5.1a的组网、入网的过程差不多,根本看不出来是MSP430+CC2520的组合。

2、要想正常使用Z-Stack Mesh 1.0.0协议栈中EXP5438的话,如果不是TI的开发板,是不是需要下面的步骤:

(1)把SPI功能启用(默认SPI宏并未打开)

(2)按照CC2520实际使用的SPI管脚进行IO配置。

     还需要其他的步骤吗?

Z-Stack Mesh中EXP5438+CC2520是需要用IAR FOR MSP430打开的

hal_mcu.h定义了MCU为MSP430  

#define HAL_MCU_MSP430

关于CC2520的相关定义在mac_radio.c以及mac_radio_defs.c等文件内

谢谢回复。按照提示找到了底层对CC2520的操作,也找到了相关IO口的初始化函数。

void macDualchipSystemInit(void)

{

  /* initialize modules */

  halMacInit();       //IO口配置

  macMcuTimerInit();

  macSpiInit();       //SPI外设配置

  。。。。。。。。。。。

}

但主程序中并没有调用该函数。

 

其宏定义#define MAC_RADIO_MCU_INIT()  macDualchipSystemInit(),虽然被macLowLevelInit(void)函数调用,

MAC_INTERNAL_API void macLowLevelInit(void)

{

  /* initialize mcu before anything else */

  MAC_RADIO_MCU_INIT();

。。。。。。。。。。。

}

但系统也没有对macLowLevelInit()进行调用。

 

也就是说系统并没有对CC2520进行初始化操作,这部分需要自己加进去吗?按理说TI的例程是不需要额外修改的啊。

请问mesh 里的 *                            TX_ACK_DONE/TX_FRM_DONE Pin / Interrupt Configuration
 * ------------------------------------------------------------------------------------------------
 */
#define HAL_MAC_TX_ACK_DONE_GPIO_BIT            4
#define HAL_MAC_READ_TX_ACK_DONE_PIN()          (P1IN & BV(HAL_MAC_TX_ACK_DONE_GPIO_BIT))
#define HAL_MAC_CONFIG_TX_ACK_DONE_PIN_AS_INPUT()   st( P1DIR &= ~BV(HAL_MAC_TX_ACK_DONE_GPIO_BIT); )
#define HAL_MAC_CONFIG_TX_ACK_DONE_PIN_AS_OUTPUT()  st( P1DIR |=  BV(HAL_MAC_TX_ACK_DONE_GPIO_BIT); )


/* ------------------------------------------------------------------------------------------------
 *                                  TRIGGER Pin Configuration
 * ------------------------------------------------------------------------------------------------
 */
#define HAL_MAC_TRIGGER_GPIO_BIT                2
#define HAL_MAC_CONFIG_TRIGGER_PIN_AS_OUTPUT()  st( P8DIR |=  BV(HAL_MAC_TRIGGER_GPIO_BIT); \
                                                    P8SEL |=  BV(HAL_MAC_TRIGGER_GPIO_BIT);)

#define HAL_MAC_CONFIG_TRIGGER_PIN_AS_INTPUT()  st( P8DIR &= ~BV(HAL_MAC_TRIGGER_GPIO_BIT); \
                                                    P8SEL &= ~BV(HAL_MAC_TRIGGER_GPIO_BIT);)
这两个脚在cc2520里找不到呀。在cc2520手册只看到了CCA  FIFO FIFOP SFD.GPIO0 是时钟输出。GPIO5链接地或电源。另外的TRIGGER和TX_ACK找不到

找到了找到了

就这两个图

就这两个图

就这两个图

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top