This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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

Other Parts Discussed in Thread: CC2520, Z-STACK

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找不到