AnsweredAssumed Answered

STM32W and EmberZNet

Question asked by klubnichkin.konstant on Jan 28, 2012
Latest reply on Jan 29, 2013 by Peter Tan
Hello all!


I've purchased STM32W-RFCKIT for my hobby wireless project based on ZigBee network. 


So I've read in the documentation that both MB950 and MB951 boards are compatible with the EmberZNet stack. 
I've downloaded SDK bundle from the ST site and uploaded sensor firmware into MB950. It started to run just fine, connected to the network formed by Primer2+MB850, started to send data etc.


After it I've uploaded same prebuild firmware to the MB951 USB stick and received an error via serial console:

reset: CRS
ERROR: emberInit 0xB0

[ASSERT:sensor.c:228]
reset: CRS
ERROR: emberInit 0xB0


... and that is for forever.


OK, I've started to dig what that 0xB0 error means and found, that it is EMBER_STACK_AND_HARDWARE_MISMATCH. Well, it is strange, because stm32w_flasher output says opposite:


TM32W flasher utility version 1.3.0b1 (Wed Feb 02 13:10:21 2011)
Part info                        STM32W108HBU6x cut 1.3          
Part Info.Stack Type             SimpleMAC,RF4CE,EmberZNet       
FIB Layout Version               Version 1                       
FIB Bootloader                   Bootloader cut 1.3 (Version 3)
 


I've started to dig deeper with limited success: there is NO information on the ST site regarding how to make MB951 an ZigBee device.


The only thing I've found is the disassembly of the emberInit function on one of the hackers sites. There is a verification that takes 
bytes at the 0x8040796 address, calculates something and either fails or runs to initialization.


OK, I've started to search what that address means and found, that it belongs to the FIB. 
Then I've uploaded nodetest application (again not without pain - there is no inormation in the ST docs how to convert HEX to S37 using 
the tools provided in the SDK) both to MB950 and MB951, and I've finally found, that it's the MFG_PART_DATA token. 
In the MB950 it's 0x0100030000FF, and in MB951 it's 0x0100030100FF, so the stack do care about this difference and refuse to start.


In MB950 there is STM32W108CBU6x chip, and in MB951 is STM32W108HBU6x, as far as I understand the difference is the package and pin count.


So now I'm stuck: there is no information about how to put EmberZNet stack into MB951 on the ST site, no information in Internet, no 
explanation what that MFG_PART_DATA token means etc.


My topic here mainly addressed to ST people, but I would appreciate any help. 


Thanks! 

Outcomes